Расширения
Доступны следующие расширения:
Клиент 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;
}