[PayAndSee] - Версия 2.0
[PayAndSee] — реализует закрытый контент на MODX Revolution. Создание контента и тарифов, клиентов и подписок на контент, подписка на контент через оплату любым методом [miniShop2], а так же через в админку сайта.
Особенности:
Подписка возможна на любой ресурс, товар, тикет и тд.
Демо: PayAndSee
Доки: Документация PayAndSee
Обзор: Обзор компонента PayAndSee от OpenModx
[Установка]
Для работы вам нужен MODX не ниже 2.3 и PHP не ниже 5.4.
— Установите pdoTools — это библиотека для быстрой работы с БД и оформлением, необходима для многих компонентов
— Установите miniShop2 — это магазин на основе которого реализован функционал заказов и оплаты
— Установите Theme.Bootstrap — это тема оформления Twitter Bootstrap для MODX, под неё заточены стандартные чанки
— Установите PayAndSee
[Обновление]
Компонент полностью переписан,ни о каком обновлении со старой версии не может быть и речи.
У кого стоит предыдущая версия, деинсталлируем и устанавливаем/ настраиваем новую.
[Основное]
Основная панель управления находятся в отдельном разделе сайта, доступном через меню.
Содержит следующие вкладки:
— [Контент]
Вкладка, на которой собран контент. Доступна сортировка по статусу контента и поиск.
Для создании контента необходимо указать ресурс к которому он будет привязан. Тарифы и подписки контента будут доступны после его сохранения.
— [Тарифы]
Вкладка, на которой собраны тарифы контента. Доступна сортировка по контенту, сроку действия тарифа и поиск.
Для создании тарифа необходимо указать стоимость, контент к которому он будет привязан и срок подписки.
— [Клиенты]
Вкладка, на которой собраны клиенты. Доступна сортировка по статусу и поиск.
Для создании клиента необходимо выбрать пользователя сайта, либо указать почту. В случае если пользователя с данной почтой не существует он будет автоматически создан.
— [Подписки]
Вкладка, на которой собраны подписки. Доступна сортировка по клиенту, контенту, статусу и поиск.
Для создании подписки необходимо выбрать контент и пользователя сайта. Указать дату начала и окончания подписки.
Доступен для редактирования контент, клиент, статус подписки. Можно скорректировать срок подписки.
— [Статусы]
Вкладка, на которой собраны статусы. Доступна сортировка по классу.
Для создании статусы необходимо задать название и выбрать класс. Указать флаг активности и разрешения.
Дефолтные статусы:
* новый — задается при создании
* активен — характеризует активность
* неактивен — характеризует неактивность
Возможно создание статусов для реализации своей логики работы компонента.
Наличие разрешающих статусов у вышеперечисленных сущностей разрешает, в противном случае запрещает доступ к контенту.
— [Оповещения]
Вкладка, на которой собраны оповещения. Доступна сортировка по классу и поиск.
Оповещение срабатывает в момент смены статуса сущности.
Для создании оповещения необходимо указать класс и статус. Задать почту, тему и тело сообщения.
Для каждой сущности определены методы getClientEmails и getManagerEmails
Результат набивается в переменные:
* $client_email — почта клиента
* $manager_email — почта менеджера
Таким образом вы можете просто указать $client_email|join и для сущности клиент это будет почта клиента, для сущности контент это будет почта всех клиентов с активной подпиской на данный контент и тп.
[Настройки]
Настройки PayAndSee расположены в Системные настройки > PayAndSee
— [Основные]
Содержит основные настройки:
* working_templates — активные шаблоны. Список id шаблонов через запятую, для которых нужно активировать функционал.
* front_css — файл с css для подключения на фронте.
* front_js — файл с javascript для подключения на фронте.
* client_groups — группы регистрации клиентов, через запятую.
* email_manager — почтовые адреса менеджеров, через запятую.
— [Заказ]
Содержит настройки необходимые для заказа:
* order_handler_class — имя класса, который реализует логику оформления заказа.
* order_delivery_id — идентификатор способа доставки [miniShop2], который используется при оформлении заказа.
* order_resource_id — идентификатор страницы заказа, на которой происходит оформление заказа.
[Службы]
Покупка и оформление заказа реализовано своим классом, в конечном счете заказ будет
сформирован и его можно будет увидеть в интерфейсе заказов [miniShop2]
— [Заказ]
Процессом оформления заказа занимается специальный класс PasOrderHandler, который реализует интерфейс PasOrderInterface.
Конечно, вы можете подключить собственный класс для заказа и указать его в системной настройке order_handler_class
— [Корзина]
Не реализован.
— [Доставка]
Никак не используется, нужен только для задания обязательный полей заказа и наименования доставки в заказе.
— [Оплата]
Стандартный [miniShop2]
Пример оформления и покупки можно увидеть тут pas.vgrish.ru/kupit.html?content=1
[События]
Актуальный список доступен в документации docs.modx.pro/components/payandsee/development/events
[Доступ]
Доступ определяется наличием разрешающих статусов у [контент], [клиента], [подписки]
Подписка также имеет дату начала/окончания действия что тоже учитывается при определении доступа.
Для проверки доступа добавлены два модификатора:
* pas_content_access — проверка доступа к контенту. Синоним pascaccess
* pas_resource_access — проверка доступа к ресурсу. Синоним pasraccess
1 параметр — значение по дефолту
2 параметр — идентификатор контента / ресурса. По умолчанию текущий ресурс.
3 параметр — идентификатор клиента. По умолчанию текущий клиент.
[Примеры]
— Закрыть свободный доступ для поля content
— Закрыть свободный доступ для поля content и вывести форму покупки платного контента
— Проверить наличие доступа у текущего клиента к ресурсу 15 и записать в переменную
[Демо сайт]
Доступен демо сайт pas.vgrish.ru
Логин и пароль для входа в test
[Цена]
[PayAndSee] теперь стоит 1490 рублей. Старые покупатели получают новую версию бесплатно.
Компонент в магазине modstore.pro/packages/ecommerce/payandsee
P.S. Всем спасибо за внимание!)
Особенности:
- работа только с новым miniShop2 (version =>2.4.0-beta2)
- сниппет для вывода контента pas.content
- сниппет оформления заказа pas.order
- сниппет вывода оформленного заказа pas.get.order
- сниппет вывода подписок pas.subscription
Подписка возможна на любой ресурс, товар, тикет и тд.
Демо: PayAndSee
Доки: Документация PayAndSee
Обзор: Обзор компонента PayAndSee от OpenModx
[Установка]
Для работы вам нужен MODX не ниже 2.3 и PHP не ниже 5.4.
— Установите pdoTools — это библиотека для быстрой работы с БД и оформлением, необходима для многих компонентов
— Установите miniShop2 — это магазин на основе которого реализован функционал заказов и оплаты
— Установите Theme.Bootstrap — это тема оформления Twitter Bootstrap для MODX, под неё заточены стандартные чанки
— Установите PayAndSee
[Обновление]
Компонент полностью переписан,ни о каком обновлении со старой версии не может быть и речи.
У кого стоит предыдущая версия, деинсталлируем и устанавливаем/ настраиваем новую.
[Основное]
Основная панель управления находятся в отдельном разделе сайта, доступном через меню.
Содержит следующие вкладки:
— [Контент]
Вкладка, на которой собран контент. Доступна сортировка по статусу контента и поиск.
Для создании контента необходимо указать ресурс к которому он будет привязан. Тарифы и подписки контента будут доступны после его сохранения.
— [Тарифы]
Вкладка, на которой собраны тарифы контента. Доступна сортировка по контенту, сроку действия тарифа и поиск.
Для создании тарифа необходимо указать стоимость, контент к которому он будет привязан и срок подписки.
— [Клиенты]
Вкладка, на которой собраны клиенты. Доступна сортировка по статусу и поиск.
Для создании клиента необходимо выбрать пользователя сайта, либо указать почту. В случае если пользователя с данной почтой не существует он будет автоматически создан.
— [Подписки]
Вкладка, на которой собраны подписки. Доступна сортировка по клиенту, контенту, статусу и поиск.
Для создании подписки необходимо выбрать контент и пользователя сайта. Указать дату начала и окончания подписки.
Доступен для редактирования контент, клиент, статус подписки. Можно скорректировать срок подписки.
— [Статусы]
Вкладка, на которой собраны статусы. Доступна сортировка по классу.
Для создании статусы необходимо задать название и выбрать класс. Указать флаг активности и разрешения.
Дефолтные статусы:
* новый — задается при создании
* активен — характеризует активность
* неактивен — характеризует неактивность
Возможно создание статусов для реализации своей логики работы компонента.
Наличие разрешающих статусов у вышеперечисленных сущностей разрешает, в противном случае запрещает доступ к контенту.
— [Оповещения]
Вкладка, на которой собраны оповещения. Доступна сортировка по классу и поиск.
Оповещение срабатывает в момент смены статуса сущности.
Для создании оповещения необходимо указать класс и статус. Задать почту, тему и тело сообщения.
Для каждой сущности определены методы getClientEmails и getManagerEmails
Результат набивается в переменные:
* $client_email — почта клиента
* $manager_email — почта менеджера
Таким образом вы можете просто указать $client_email|join и для сущности клиент это будет почта клиента, для сущности контент это будет почта всех клиентов с активной подпиской на данный контент и тп.
[Настройки]
Настройки PayAndSee расположены в Системные настройки > PayAndSee
— [Основные]
Содержит основные настройки:
* working_templates — активные шаблоны. Список id шаблонов через запятую, для которых нужно активировать функционал.
* front_css — файл с css для подключения на фронте.
* front_js — файл с javascript для подключения на фронте.
* client_groups — группы регистрации клиентов, через запятую.
* email_manager — почтовые адреса менеджеров, через запятую.
— [Заказ]
Содержит настройки необходимые для заказа:
* order_handler_class — имя класса, который реализует логику оформления заказа.
* order_delivery_id — идентификатор способа доставки [miniShop2], который используется при оформлении заказа.
* order_resource_id — идентификатор страницы заказа, на которой происходит оформление заказа.
[Службы]
Покупка и оформление заказа реализовано своим классом, в конечном счете заказ будет
сформирован и его можно будет увидеть в интерфейсе заказов [miniShop2]
— [Заказ]
Процессом оформления заказа занимается специальный класс PasOrderHandler, который реализует интерфейс PasOrderInterface.
Конечно, вы можете подключить собственный класс для заказа и указать его в системной настройке order_handler_class
— [Корзина]
Не реализован.
— [Доставка]
Никак не используется, нужен только для задания обязательный полей заказа и наименования доставки в заказе.
— [Оплата]
Стандартный [miniShop2]
Пример оформления и покупки можно увидеть тут pas.vgrish.ru/kupit.html?content=1
[События]
Актуальный список доступен в документации docs.modx.pro/components/payandsee/development/events
[Доступ]
Доступ определяется наличием разрешающих статусов у [контент], [клиента], [подписки]
Подписка также имеет дату начала/окончания действия что тоже учитывается при определении доступа.
Для проверки доступа добавлены два модификатора:
* pas_content_access — проверка доступа к контенту. Синоним pascaccess
* pas_resource_access — проверка доступа к ресурсу. Синоним pasraccess
1 параметр — значение по дефолту
2 параметр — идентификатор контента / ресурса. По умолчанию текущий ресурс.
3 параметр — идентификатор клиента. По умолчанию текущий клиент.
[Примеры]
— Закрыть свободный доступ для поля content
{$content|pasraccess}
— Закрыть свободный доступ для поля content и вывести форму покупки платного контента
{$content|pasraccess:('pas.content'|snippet:['resource'=>$id])}
— Проверить наличие доступа у текущего клиента к ресурсу 15 и записать в переменную
{set $access = 1|pasraccess:0:15}
{* далее можно использовать для проверки доступа переменную $access *}
{if $access}
Есть доступ
{else}
Нет доступа
{/if}
[Демо сайт]
Доступен демо сайт pas.vgrish.ru
Логин и пароль для входа в test
[Цена]
[PayAndSee] теперь стоит 1490 рублей. Старые покупатели получают новую версию бесплатно.
Компонент в магазине modstore.pro/packages/ecommerce/payandsee
P.S. Всем спасибо за внимание!)
Поблагодарить автора
Отправить деньги
Комментарии: 55
Ааааааа!!! Бегу обновлять, как раз ждал. Спасибо.
Пожалуйста!)
Здорово, спасибо!
А вопрос: можно с помощью этого пакета реализовать платную подписку на услуги, и потом проверять их по всему сайту? В прошлой версии я делал это костылями, подписывал на скрытый ресурс, и потом отдельным сниппетом проверял по базе подписан на него пользователь или нет.
Пример такой реализации: подписка на Премиум-аккаунт, открывающий различные возможности на сайте.
А вопрос: можно с помощью этого пакета реализовать платную подписку на услуги, и потом проверять их по всему сайту? В прошлой версии я делал это костылями, подписывал на скрытый ресурс, и потом отдельным сниппетом проверял по базе подписан на него пользователь или нет.
Пример такой реализации: подписка на Премиум-аккаунт, открывающий различные возможности на сайте.
а почему нет? Можно вполне, реализаций может быть несколько.
Пример для VIP клиента имеющего доступ ко всему контенту сразу github.com/vgrish/Docs-1/blob/master/ru/01_%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B/22_PayAndSee/03_%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0/03_%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F.md
реализуется просто отдельным статусом
Пример для VIP клиента имеющего доступ ко всему контенту сразу github.com/vgrish/Docs-1/blob/master/ru/01_%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D1%8B/22_PayAndSee/03_%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0/03_%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F.md
реализуется просто отдельным статусом
Супер, да, пример проверки доступа даже в последнем примере описан.
Спасибо, будем осторожно обновляться…
Спасибо, будем осторожно обновляться…
Спасибо, будем осторожно обновляться…Не, не… обновление не прокатит! Только с нуля.
Сейчас добавлю это в описание.
Ок, я так и думал. Просто вводит в заблуждение эта фраза:
Старые покупатели обновляются бесплатно.:)
уже понял, тоже поправил чтобы не вводить в заблуждение.
Спасибо!
Спасибо!
А старый компонент еще таблицы свои не удалял, я зачистил вручную перед установкой нового (если, конечно, это не лишняя перестраховка).
(если, конечно, это не лишняя перестраховка).Вполне разумно если эти данные тебе не нужны
Здравствуйте Владимир! Есть ли какая то статейка или гайд как правильно съехать со старого компонента на новый? Пользуемся старым компонентом с 6000 подписанных юзеров. Трудозатратно ли обновится на новый?
Добрый вечер. Нет никакого подобного гайда нет.
Необходимо выполнение следующих условий
— новая версия minishop2
— шаблонизатор fenon
Далее установить новую версию компонента.
Клиенты могут быть созданы в главной панели, надо просто нажать на кнопку обновления. А вот контент и подписки потребуется набросать скрипт для переноса из старых таблиц в новые.
Так же нужно будет изменить чанки вывода и покупки подписок.
Вероятно проще сделать бекап сайта и все это спокойно выполнить на нем…
Необходимо выполнение следующих условий
— новая версия minishop2
— шаблонизатор fenon
Далее установить новую версию компонента.
Клиенты могут быть созданы в главной панели, надо просто нажать на кнопку обновления. А вот контент и подписки потребуется набросать скрипт для переноса из старых таблиц в новые.
Так же нужно будет изменить чанки вывода и покупки подписок.
Вероятно проще сделать бекап сайта и все это спокойно выполнить на нем…
Если в доках будет небольшая инструкция по переезду это облегчит жизнь) Спасибо за компонент!
Пока что мне этого не приходилось делать. А писать просто теоретически нет никакого желания. Если представится такой случай то инструкция появится.
Спасибо за понимание!
Спасибо за понимание!
Спасибо! Удалил, установил, пошел читать доки, а то, вроде, следил за процессом в трелло, но выход новой версии стал неожиданностью)) Приятной, конечно.
Пожалуйста!)
Мдя, знал бы не обновлял.
В описании ни чего не написано, что все глобально переделывать надо.
И поддержки нет (
В описании ни чего не написано, что все глобально переделывать надо.
И поддержки нет (
То есть, по этой фразе было непонятно, что «всё глобально переделывать надо»?
[Обновление]
Компонент полностью переписан, ни о каком обновлении со старой версии не может быть и речи.
У кого стоит предыдущая версия, деинсталлируем и устанавливаем/ настраиваем новую.
Не прочел это пояснение и обновил. Пришлось откат делать. И вероятно нужен будет скрипт писать на перенос. В принцыпе это новое дополнение. Не помню, чтоб после обновления нужно было глобально все переписывать.
Заметил, что появилась версия 2.0.6 и происходит что-то необычное) При обновлении пакет дублируется, при этом кнопка «обновить» остается активной. Думал, так и нужно, удалил не обновленный вариант, но перестала отображаться страница компонента (при переходе через меню). Выдает:
Could not find action file at: controllers/default/index.phpОпять установил версию 2.0.0, перезагрузил права доступа — все вернулось на круги своя. Удалил версию 2.0.6, снова попытался обновить, повторно два пакета висят. Опасаюсь чего-то испортить. Это нормально, так и должно быть?
Заметил, что появилась версия 2.0.6 и происходит что-то необычное)
это необычное никак не связано в пакетом. Обновляйте, чистите кеш…
Опасаюсь чего-то испортить.Понятно что удалять ничего не надо.
Это нормально, так и должно быть?нет конечно, это не нормально. Но я на данное поведение повлиять не могу.
Возможно кто-то прояснит ситуацию…
Тогда подожду пока) Кеш чистил. Из-за разницы в названии такого случиться не могло? В смысле, с указанием цены в скобках и без него?
Из-за разницы в названии такого случиться не могло? В смысле, с указанием цены в скобках и без него?я не пишу нигде никаких цен… название формируется с репозитория магазина.
Тогда подожду пока)
Попробуй деинсталируй все версии пакета и затем установи последнюю.
Туплю(( Очевидное же решение. Да, так все получилось. Пакет один в установленных, работает все отлично
Хорошо что разобрались. Спасибо!
Володя привет, подскажи куда копать
мне нужно ограничить список разделов в форме создания тикета
т.е. вывести только те на которые есть активная подписка у пользователя
пытаюсь это сделать указав в параметрах снипета ticketForm &where предварительно загрузив модель &loadModels=`payandsee`, не могу сообразить какие поля подцеплять
ведь надо получить ид пользователя и выдернуть по его ид статус подписки
а потом в select отобрать только с активным статусом
подскажи в правильном ли направлении думаю
заранее Спасибо!
мне нужно ограничить список разделов в форме создания тикета
т.е. вывести только те на которые есть активная подписка у пользователя
пытаюсь это сделать указав в параметрах снипета ticketForm &where предварительно загрузив модель &loadModels=`payandsee`, не могу сообразить какие поля подцеплять
ведь надо получить ид пользователя и выдернуть по его ид статус подписки
а потом в select отобрать только с активным статусом
подскажи в правильном ли направлении думаю
заранее Спасибо!
Привет.
{'!TicketForm'|snippet:[
'tplSectionRow' => '@INLINE <option value="{$id}" {$selected} {""|pasraccess:"disabled":$id}>{$pagetitle}</option>'
]}
Спасибо дружище.
уже второй день изучаю эти запросы голова кругом
поэтому забыл уточнить, что у меня 2 одинаковых раздела
в один подписываются в другой пишут
вот поэтому то я попросил помощи в том как можно организовать выборку и возможно ли это используя сниппет ticketForm
Спасибо за терпение :)
уже второй день изучаю эти запросы голова кругом
поэтому забыл уточнить, что у меня 2 одинаковых раздела
в один подписываются в другой пишут
вот поэтому то я попросил помощи в том как можно организовать выборку и возможно ли это используя сниппет ticketForm
[[!TicketForm?
&parents=`7`
&loadModels=`payandsee`
&leftJoin=`{
"contents":{
"class" : "TicketsSection",
"on" : "ticket.id = "(таблица payandsee_contents).resource",
},
"subscribe":{
"class":"payandsee",
"on" : " payandsee.client ="{$_modx->user.id}"
}
}`
&where=`{"subscribe.status.2"}`
]]
вот как-то так я думаюСпасибо за терпение :)
Пожалуйста!
Так будет проще и понятнее.
Спасибо!
поэтому забыл уточнить...Пишите в ТП с указанием доступов к админке сайта и ссылкой на форму вызова.
Так будет проще и понятнее.
Спасибо!
я покупал компонент в 15 году и тока сейчас он понадобился :), поэтому не могу написать в ТП
просто приджойнить не получится, там много всего…
— таблица контента
— таблица клиента
— таблица подписок
— статусы ко всем этим сущностям
все это определяет наличие доступа.
— таблица контента
— таблица клиента
— таблица подписок
— статусы ко всем этим сущностям
все это определяет наличие доступа.
да я уже смотрел все таблицы компонента payandsee
вроде даже понятна логика того что мне нужно но как реализовать не знаю, знаний не хватает
с джойнами то я бы еще справился но написать сниппет мне пока не под силу
в любом случае Спасибо дружище!
вроде даже понятна логика того что мне нужно но как реализовать не знаю, знаний не хватает
с джойнами то я бы еще справился но написать сниппет мне пока не под силу
в любом случае Спасибо дружище!
Добавлена ссылка на обзор компонента PayAndSee от OpenModx.
От себя хочу сказать Modstore и OpenModx за обзор — большое спасибо!!!
От себя хочу сказать Modstore и OpenModx за обзор — большое спасибо!!!
Привет!
На сайте хотим сделать 3 варианта оплаты — за 1 урок, за конкретный месяц (в нем несколько уроков) и за годовой доступ ко всем урокам. 9 учебных месяцев в курсе. Как лучше логику отстроить.
Пока сообразил проверку через вложенные
Подскажите как вывести форму оплаты за годовой доступ?
Пока сообразил так:
{getContentId($parrentyear, 10, $cache)|pasraccess:('pas.content'|snippet:['resource'=>$parrentyear])}
что значит параметр 10 сам не понял, взял из документации расширения, вроде сработало. Где лежит код функции getContentId?
Прикол в том что в 1 уроке все норм работает, а в следующих (входящем в месяц 1) не работает.
Контент и тарифы зада на годовой курс (он корневой ресурс), на месяцы (они включают в себя уроки) и на сами уроки.
На сайте хотим сделать 3 варианта оплаты — за 1 урок, за конкретный месяц (в нем несколько уроков) и за годовой доступ ко всем урокам. 9 учебных месяцев в курсе. Как лучше логику отстроить.
Пока сообразил проверку через вложенные
{If} {else} {/if}
.Подскажите как вывести форму оплаты за годовой доступ?
Пока сообразил так:
...
{set $parrentmounth = $_modx->resource.parent}
{set $parrentmounthObject = $modx->getObject('modResource',$parrentmounth)}
{set $parrentyear = $parrentmounthObject ->get('parent')}
{set $accessyear = ''|pasraccess:0:$parrentyear}
{if !$accessyear}
Вы можете оплатить курс за год по цене
<p class="bg-danger"> Оплатить доступ</p>
{getContentId($parrentyear, 10, $cache)|pasraccess:('pas.content'|snippet:['resource'=>$parrentyear])}
{else}
Год оплачен {$parrentyear}
{/if}
{set $accessmounth = $parrentmounth|pasraccess:0:$parrentmounth}
{if !$accessmounth}
<pre class="alert alert-info">
Нет оплаты к курсу [[!pdoField? &id=`[[*id]]` &field=`pagetitle` &top=`2`]]
</pre>
<!-- как вывести форму оплаты за месяц? -->
{getContentId($parrentmounth, 10, $cache)|pasraccess:('pas.content'|snippet:['resource'=>$parrentmounth])}
{else}
<!-- для тестирования вывожу номера ресурсов -->
У вас активная подписка ко всем урокам месяца ({$parrentmounth}) "[[!pdoField? &id=`[[*id]]` &field=`pagetitle` &top=`1` ]]" курса ({$parrentyear}) [[!pdoField? &id=`[[*id]]` &field=`pagetitle` &top=`2` ]]
{/if}
<!--смотрим доступ к уроку -->
{set $access = $_modx->resource.id|pasraccess:0}
<!--Если вообще никакого доступа нет то выводим форму оплаты за урок-->
{if !$access and !$accessmounth and !$accessyear}
<p class="bg-danger"> Оплатить доступ</p>
{$_modx->resource.content|pasraccess:('pas.content'|snippet:['resource'=>''])}
{else}
<div id="lessonvideo" data-video-1080="тут полезный платный контент"></div>
{/if}
то есть вывод формы оплаты сделал так:{getContentId($parrentyear, 10, $cache)|pasraccess:('pas.content'|snippet:['resource'=>$parrentyear])}
что значит параметр 10 сам не понял, взял из документации расширения, вроде сработало. Где лежит код функции getContentId?
Прикол в том что в 1 уроке все норм работает, а в следующих (входящем в месяц 1) не работает.
Контент и тарифы зада на годовой курс (он корневой ресурс), на месяцы (они включают в себя уроки) и на сами уроки.
сам не поняля из всего вышеизложенного ничего не понял, извини.
я понял почему в 1 уроке форма выводится а в остальных не выводились. Оказалось что я ресурсы оставил на другие уроки в статусе «Неопубликовано». Проставил везде опубликовано и все заработало.
и еще как можно сделать одно выпадающее окно выбора подписки для разных ресурсов (контентов)?
И как можно повесить на свою кнопку?
И как можно повесить на свою кнопку?
и еще вопрос не совсем понятно как работает настройка контента «Активен для потомков». Можно ли сделать логику что если оплатили доступ к родительскому ресурсу, то доступы к дочерним автоматически добавлялись (сделать бы доп. настройку для выбора схемы подчиненности?)?
Еще бы добавить возможность использовать тариф для разных контентов. А то когда много страниц — тяжело добавлять и менять вручную цены на десятки ресурсов. Было бы круто прописывать например переменную из clientconfig.
Можно ли сделать логику что если оплатили доступ к родительскому ресурсу, то доступы к дочерним автоматически добавлялись (сделать бы доп. настройку для выбора схемы подчиненности?)?docs.modx.pro/components/payandsee/development/extensions
написать кастомный
getResourceAccess
я посмотрел пример расширения. Сделал по своемому как в посте выше в выше и все заработало.
В описании расширения для примеров не указаны какие параметры задавать надо — где их посмотреть я не нашел. Можете документацию дополнить описанием параметров?
$cache — что за переменная? Надо ее как-то задавать?
$PayAndSee->getStore('access', $key)) — это я так понимаю можно считать доступ к ресурсу для любого ресурса?
В описании расширения для примеров не указаны какие параметры задавать надо — где их посмотреть я не нашел. Можете документацию дополнить описанием параметров?
$cid = $PayAndSee->getContentId($rid, 10, $cache);
— вот тут второй параметр из документации — почему 10? $access = $PayAndSee->getContentAccess($cid, $uid, $cache);
— я так понимаю этим способом можно присвоить доступ? $uid как подхватывается? Из примера не понял как он присваивается переменной, вроде задана пустая? Это id клиента (скорее всего) или пользователя?$PayAndSee->addStore('access', $key, $access);
— это мы добавляем по ключу я так понимаю доступ? $cache — что за переменная? Надо ее как-то задавать?
$PayAndSee->getStore('access', $key)) — это я так понимаю можно считать доступ к ресурсу для любого ресурса?
getPls — в каком виде данные получаются?
Извините, что вопросов много задаю :) PayAndSee супер вещь, но многое не понятно.
Извините, что вопросов много задаю :) PayAndSee супер вещь, но многое не понятно.
и еще как можно сделать одно выпадающее окно выбора подписки для разных ресурсов (контентов)?как тут pas.vgrish.ru/katalog/?
И как можно повесить на свою кнопку?написать какой то обработчик на нажание своей кнопки.
Посмотрите пожалуйста пост выше — наверное не заметили — про Активен для потомков?
там же и дан ответ — modx.pro/components/13202/#comment-93716
Олег не нужно бомбить тут вопросами, посмотри демо, почитай описание
docs.modx.pro/search?query=%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B5%D0%BD+%D0%B4%D0%BB%D1%8F+%D0%BF%D0%BE%D1%82%D0%BE%D0%BC%D0%BA%D0%BE%D0%B2
подумай…
Так или иначе ответы на твои вопросы есть.
Спасибо!
Олег не нужно бомбить тут вопросами, посмотри демо, почитай описание
docs.modx.pro/search?query=%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B5%D0%BD+%D0%B4%D0%BB%D1%8F+%D0%BF%D0%BE%D1%82%D0%BE%D0%BC%D0%BA%D0%BE%D0%B2
подумай…
Так или иначе ответы на твои вопросы есть.
Спасибо!
Спасибо за обратную связь!
Вопрос сюда пишу потому что в других ветках вижу люди также делятся наработками.
Мне пришлось делать треххуровневый доступ с разными тарифами оплаты.
Несколько бессонных дней и ночей уже делаю сайт, многое не сразу стало понятно, но разобрался вроде. Ваше приложение очень крутое, сильно выручило!
Вопрос сюда пишу потому что в других ветках вижу люди также делятся наработками.
Мне пришлось делать треххуровневый доступ с разными тарифами оплаты.
Несколько бессонных дней и ночей уже делаю сайт, многое не сразу стало понятно, но разобрался вроде. Ваше приложение очень крутое, сильно выручило!
Предлагаю добавить во вкладку Тарифы возможность указывать цену используя некий шаблонный тариф — который был бы не привязан только к одному контенту, а чтобы его можно было привязать к нескольким разным контентам. И если мне понадобилось поднять цену сразу для всех контентов. Это сильно упростит жизнь если нам вдруг надо будет везде поменять цену — меняем в одном месте, а не в сотне разных мест.
Или еще как вариант используя плейсхолдеры ClientConfig. Для этого надо добавить возможность прописывать их в поле цены — сейчас плейсхолдер ClientConfig туда не вставишь :).
Или еще как вариант используя плейсхолдеры ClientConfig. Для этого надо добавить возможность прописывать их в поле цены — сейчас плейсхолдер ClientConfig туда не вставишь :).
А что за изменения в новой версии?
2.0.12-beta (23.02.2018)
— Add «checkStat» [PayAndSee]
— Change «Order.submit» [js]
2.0.12-beta (23.02.2018)
— Add «checkStat» [PayAndSee]
— Change «Order.submit» [js]
Автора прошу сделать нормальную документацию, до много приходится додумывать как пользоваться (без претензии, это просьба).
Что за изменения в последних версиях?
Что за изменения в последних версиях?
Все основны моменты изложены в документации.
Не нужно ичего додумывать, если у вас какие либо сложности стоит писать в ТП.
Какие либо новшества будут документированы после обкатки…
Спасибо.
Не нужно ичего додумывать, если у вас какие либо сложности стоит писать в ТП.
Какие либо новшества будут документированы после обкатки…
Спасибо.
удалил
Не работает дополнение.
modx 2.8.3
Minishop 2.8.3
PAS 2.0.24-beta
Поднимал на modhost разные тестовые сайты с PAS 2.0.24 и разными modx (2.6.5, 2.7.0, 2.8.0) — ни на одном хосте PAS не работает.
Например, конструкция в шаблоне:
modx 2.8.3
Minishop 2.8.3
PAS 2.0.24-beta
Поднимал на modhost разные тестовые сайты с PAS 2.0.24 и разными modx (2.6.5, 2.7.0, 2.8.0) — ни на одном хосте PAS не работает.
Например, конструкция в шаблоне:
{set $access = 1|pasraccess:0}
{* далее можно использовать для проверки доступа переменную $access *}
{if $access}
Есть доступ
{else}
Нет доступа
{/if}
{$_modx->resource.content|pasraccess:('!pas.content'|snippet:['resource'=>$_modx->resource.id])}
дает всегда один результат — Есть доступ.
Добрый день.
Дополнение работает, никто в ТП не писал о каких либо проблемах с пакетом.
Если у вас какие либо сложности пишите в ТП — решим.
Дополнение работает, никто в ТП не писал о каких либо проблемах с пакетом.
Если у вас какие либо сложности пишите в ТП — решим.
Я пакет покупал в 2020. С тех пор так до него руки и не дошли. Сейчас вот взялся настраивать по инструкции — не хочет работать =( Написать в ТП modstore уже не позволяет =(
В лог modx пишется следующее:
[2024-04-22 10:18:14] (ERROR @ /var/www/site.ru/core/xpdo/xpdo.class.php: 644) Could not load class: PasValidator from payandsee.pasvalidator.
В лог modx пишется следующее:
[2024-04-22 10:18:14] (ERROR @ /var/www/site.ru/core/xpdo/xpdo.class.php: 644) Could not load class: PasValidator from payandsee.pasvalidator.
Данная ошибка в логе никак не связана с проверкой доступа по модификатору pasraccess.
Можете написать в ТГ в профиле.
Можете написать в ТГ в профиле.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.