
Расширения
Доступны следующие расширения:
Клиент client
getPls- получить данные клиентаgetClientEmails- получить почту клиентаgetManagerEmails- получить почту менеджера клиентаgetClientLang- получить язык клиентаchangeStatus- сменить статус клиентаchangeSubscription- сменить подписку клиента
Контент content
getPls- получить данные контентаgetClientEmails- получить почту контентаgetManagerEmails- получить почту менеджера контентаchangeStatus- сменить статус контентаgetRate- получить тариф контентаgetRates- получить тарифы контента
Подписка subscription
getPls- получить данные подпискиgetClientEmails- получить почту подпискиgetManagerEmails- получить почту менеджера подпискиchangeStatus- сменить статус подпискиchangeTerm- сменить срок подписки
Доступ access
getContentId- получить идентификатор контентаgetContentAccess- получить доступ к контентуgetResourceAccess- получить доступ к ресурсу
Примеры
Необходимо создать vip клиента, который будет иметь доступ сразу ко всему контенту.
- создадим статус vip для клиента
- изменим метод
getResourceAccessдля проверки доступа к ресурсу. Для этого создадим плагин на событиеOnMODXInit
php
<?php
switch ($modx->event->name) {
case 'OnMODXInit':
/** @var PayAndSee $PayAndSee */
$corePath = $modx->getOption('payandsee_core_path', null,
$modx->getOption('core_path', null, MODX_CORE_PATH) . 'components/payandsee/');
$PayAndSee = $modx->getService('payandsee', 'PayAndSee', $corePath . 'model/payandsee/',
array('core_path' => $corePath));
if (!$PayAndSee) {
return;
}
$PayAndSee->addExtension('access', 'getResourceAccess', function ($rid = null, $uid = null, $cache = true) use (&$modx, &$PayAndSee) {
$rid = (int)$rid;
$uid = (int)$uid;
$key = "rid_{$rid}|uid_{$uid}";
if (!$cache OR ($access = $PayAndSee->getStore('access', $key)) === false) {
// получаем клиента и если статус == 4 vip сразу разрешаем доступ независимо от контента ресурса
if ($client = $modx->user->getOne('PasClient') AND $client->get('status') == 4) {
$access = true;
} else {
$cid = $PayAndSee->getContentId($rid, 10, $cache);
$access = $PayAndSee->getContentAccess($cid, $uid, $cache);
}
$PayAndSee->addStore('access', $key, $access);
}
return $access;
});
break;
}