Использование компонента "Генератор ключей"

Настройка компонента.

1. Создание расширений

1.1. Заходим в подменю "Расширения". Нажимаем кнопку "Создать" и создаем все расширения которым хотим выдавать ключи.

1.2. Для расширения надо указать 2 параметра - "Название расширения" (например - Компонент для написания статей "Контент") и "Служебное название!" (например "com_content").

1.3. Жмем "Сохранить"

 2. Создание генератора ключей.

2.1. Переходим в подменю "Ключи".

2.2. Нажимаем кнопку "Генератор ключеей" в панели управления.

2.3. В окне редактирования вносим свой генератор ключей. Этот код впоследствии используется в функции генерации ключей. Входные параметры генератора - это массив $options, содержащий 3 элемента:

$options['site']$options['extension']$options['expire_date']

В первом элементе указано название сайта, на который выдается ключ, во втором - служебное название расширения, в третьем - дата устаревания ключа.

На выходе мы должны получить переменную $key строкового типа, в которой содержится сгенерированный ключ.

3. Создание пункта в меню.

Для того, чтобы пользователь мог посмотреть ключи, которые ему выданы, создайте в меню пользователя пункт, ссылающийся на компонент генерации ключей.

Использование компонента.

Компонент можно использовать как для выдачи ключей вручную, так и в автоматическом режиме, используя плагины компонентов, осуществляющих продажу расширения и API компонента генератора ключей.

1. Ручной режим.

Заходим в подменю "Ключи". Нажимаем кнопку "Создать" в панели управления. Выбираем расширение, пользователя, вписываем сайт, на который выдается ключ и дату его завершения, если надо, сохраняем. Ключ появляется в таблице ключей, оттуда его можно скопировать и передать пользователю.

2. Автоматический режим.

Автоматический режим выдачи ключей происходит с помошью API компонента, плагинами, интегрированными с компонентами продажи расширений. На данный момент я сделал всего один плагин - для компонента подписок Акибы.

API компонента.

Функции взаимодействия со внешим миром у компонента генератора ключей находятся в файле \administrator\components\com_keygen\helpers\keygen.api.php.

Пользоваться функциями API компонента просто, первым делом надо проинклюдить файл API в ваш код:

require_once JPATH_BASE.'/administrator/components/com_keygen/helpers/keygen.api.php';

После этого можно использовать функции API.

Функция addKey($options)

Функция предназначена для генерации ключа, входным параметром должен быть массив, содержащий все необходимые для генерации ключа данные. Пример:

$options = array( 'site' => $site, 'extension' => $levels[$level_id], 'expire_date' => $expire_date, 'user_id' => $userId );
$result = KeygenApi::addKey($options);

Ваш ключ - '.$result['key'].'

 

Функция возвращает массив, содержащий входные данные и сгенерированный ключ.

Функция getAllKeyByUser()

Функция возвращает массив объектов всех ключей, сгенерированных для текущего пользователя.

Функция getKeyRows($options)

Функция возвращает массив объектов, отфильтрованных по $options, $options - ассоциативный массив, в котором ключи соответствуют полям таблицы #__keygen_keys, а значения - значениям отбора по этим полям.

Настройка плагина интеграции компонента генератора с компонентом Akeeba Supscriptions.

Для работы плагина требуется создать дополнительное поле в компоненте подписки, которое будет использоваться для введение сайта, на который будет выдаваться ключ, Для этого войдем в компонент Akeeba Supscriptions, нажмем Setup -> Custom Fields, создадим новое поле с типом "Text box", обязательное для заполнения, атрибут Slug - это название текстбокса в форме регистрации, его мы должны скопировать и вставить в настройках плагина в поле "Дополнительное поле". В поле "Разрешенные уровни" вписываем настройки для уровней. Как и что туда вписывать подробно написано в тултипе к полю.

Дистанционная генерация ключей.

С версии 1.4. компонент поддерживает дистанционную генерацию ключей по принципу клиент-сервер. Для осущетсвления дистанционной генерации вам надо установить компонент на двух сайтах - клиенте и сервере (условно). Каждый экземпляр компонента может для одних расширений быть клиентом, т.е. запрашивать ключ у сервера, так и быть сервером для других аналогичных компонентов.

Настройки общие для клиента и сервера:

  • В настройках компонентов включите опцию "Удаленная генерация ключей"
  • В расширениях появятся новые поля, их надо заполнть идентично на клиенте и сервере за исключением опции "Дистанционная генерация ключей", ее на сервере выставляем в "Нет", на клиенте в "Да"

Настройки специфичные для сервера:

  • В настройках компонента в поле "Удаленные серверы" впишите адреса сайтов, которым вы разрешаете дистанционную генерацию ключей, каждый сайт с новой строчки.

Настройки специфичные для клиента:

  • В настройках компонента в поле "Таблица удаленного сайта" выберите таблицу компонента в котором лежит информация о сайте хозяина расширения
  • В настройках компонента в поле "Поле удаленного сайта" выберите поле таблицы компонента в котором лежит информация о сайте хозяина расширения
  • В выбранном компоненте введите пользователям, являющимся хозяинами расширений, адрс сайта, на этот тадрес будет обращатсья клиент для дитсанционной генерации ключа.
  • Каджому расширению, ключи для которых генерируются дистанционно необходимо присвоить хозяев

Изменения в релизе 1.1.

В API добавилась функция addSale() в связи с новой возможностью продавать ключи пачками.

Принимает на вход такой массив:

          $options = array(            'sale_id' => $row->akeebasubs_subscription_id,            'sale_component' => 'com_akeebasubs',            'extension' => $levels[$level_id]['ext'],            'allowed_amount_keys' => $levels[$level_id]['allowed_amount_keys'],            'user_id' => $userId        );

Создает в таблице #__keygen_extension строку с информацией о покупке, содержащей ид покупки, компонент, совершивший покупку, служ. название купленного расширения, кол-во купленных ключей, ид покупателя. Пока при генерации ключей пользоватлем используется только extension, allowed_amount_keys, user_id, остальное на будущее.

В настройках плагина теперь нужно задавать три параметра в строке, если продается сразу больше одного ключа, третьим идет кол-во ключей, проданных по подписке, если нет третьего параметра - считается что продан один ключ.

Изменение в релизе 1.4

Добавлена дистанционная генерация ключей по принципу клиент-сервер.

Спасибо, исправлю.
comments powered by HyperComments