Использование компонента "Генератор ключей"
Настройка компонента.
1. Создание расширений
1.1. Заходим в подменю "Расширения". Нажимаем кнопку "Создать" и создаем все расширения которым хотим выдавать ключи.
1.2. Для расширения надо указать 2 параметра - "Название расширения" (например - Компонент для написания статей "Контент") и "Служебное название!" (например "com_content").
1.3. Жмем "Сохранить"
2. Создание генератора ключей.
2.1. Переходим в подменю "Ключи".
2.2. Нажимаем кнопку "Генератор ключеей" в панели управления.
2.3. В окне редактирования вносим свой генератор ключей. Этот код впоследствии используется в функции генерации ключей. Входные параметры генератора - это массив $options, содержащий 3 элемента:
В первом элементе указано название сайта, на который выдается ключ, во втором - служебное название расширения, в третьем - дата устаревания ключа.
На выходе мы должны получить переменную $key строкового типа, в которой содержится сгенерированный ключ.
3. Создание пункта в меню.
Для того, чтобы пользователь мог посмотреть ключи, которые ему выданы, создайте в меню пользователя пункт, ссылающийся на компонент генерации ключей.
Использование компонента.
Компонент можно использовать как для выдачи ключей вручную, так и в автоматическом режиме, используя плагины компонентов, осуществляющих продажу расширения и API компонента генератора ключей.
1. Ручной режим.
Заходим в подменю "Ключи". Нажимаем кнопку "Создать" в панели управления. Выбираем расширение, пользователя, вписываем сайт, на который выдается ключ и дату его завершения, если надо, сохраняем. Ключ появляется в таблице ключей, оттуда его можно скопировать и передать пользователю.
2. Автоматический режим.
Автоматический режим выдачи ключей происходит с помошью API компонента, плагинами, интегрированными с компонентами продажи расширений. На данный момент я сделал всего один плагин - для компонента подписок Акибы.
API компонента.
Функции взаимодействия со внешим миром у компонента генератора ключей находятся в файле \administrator\components\com_keygen\helpers\keygen.api.php.
Пользоваться функциями API компонента просто, первым делом надо проинклюдить файл API в ваш код:
После этого можно использовать функции API.
Функция 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() в связи с новой возможностью продавать ключи пачками.
Принимает на вход такой массив:
Создает в таблице #__keygen_extension строку с информацией о покупке, содержащей ид покупки, компонент, совершивший покупку, служ. название купленного расширения, кол-во купленных ключей, ид покупателя. Пока при генерации ключей пользоватлем используется только extension, allowed_amount_keys, user_id, остальное на будущее.
В настройках плагина теперь нужно задавать три параметра в строке, если продается сразу больше одного ключа, третьим идет кол-во ключей, проданных по подписке, если нет третьего параметра - считается что продан один ключ.
Изменение в релизе 1.4
Добавлена дистанционная генерация ключей по принципу клиент-сервер.
Комментарии