Компонент "Генератор ключей"

Компонент "Генератор ключей"

Тип
Плагин  Component
Совместмость
Joomla 2.5  Joomla 3.0

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

 Поскольку для продажи расширений была выбрана связка Akeeba Subscriptions - Akeeba Release System, интеграцию своего компонента я сделал именнт с Akeeba Subscriptions. При покупке подписки в случае удачного завершения оплаты на странице завершения подписки появляется сгенерированный для этого расширения ключ. В расширении в закодированном файле находится дешифратор ключа, который и определяет подходит введенный ключ к расширению, сайту на котором оно установллено или нет.

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

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

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

Компонент работает на Joomla 2.5.

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

Git - https://bitbucket.org/Arkadiy/com_keygen/overview

Список изменений

1.1.

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

1.2.

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

1.3.

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

1.4.

  • Добавлена дистанционная генерация ключей по принципу клиент-сервер.
  • Полностью переработан механизм администрирования плагина Akeeba Subscription.. Вывод поля для ввода сайтов теперь устанавливается в упарвлении уровнем подписки в компоненте Akeeba Subscription. Количество полей так-же может быть разным.

Комментарии  

Beagler
# Beagler 09.02.2015 19:43
Очень интересная тема, попробую использовать
admin
# admin 09.02.2015 19:43
На версии 1.2 быстрые релизы думаю закончились, со всем разобрался, все что хотел я и мои друзья сделал.Ловите баги, пишите предложения.
Alex-adm
# Alex-adm 09.02.2015 19:43
На Joomla 3.2 работает этот компонент?
admin
# admin 09.02.2015 19:43
Не знаю, попробуйте и отпишитесь о результатах.
Alex-adm
# Alex-adm 09.02.2015 19:43
Получил ошибку PHP Fatal error: Call to undefined method KeygenTableKeygen::filterSite() in /plugins/akeebasubs/keygen/keygen.php on line 410на этой строке$site = $table->filterSite($site);Ошибка возникает после оплаты и возврата на сайт
admin
# admin 09.02.2015 19:43
В KeygenTableKeygen такой метод есть, скорее всего $table неправильно сформировалась.
admin
# admin 09.02.2015 19:43
Попробуйте Код:
$model = $controller->getModel('Key', 'KeygenModel');
$model->addTablePath(JPATH_ADMINISTRATOR . '/components/com_keygen/tables');

$table = $model->getTable();
заменить на Код:

JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_keygen/tables');

$table = JTable::getInstance('Keyg en', 'KeygenTable');
Alex-adm
# Alex-adm 09.02.2015 19:43
$table объявлен на 399стр, а вот filterSite я не нашел в компоненте tables/keygen.php
Alex-adm
# Alex-adm 09.02.2015 19:43
Цитата:
Попробуйте заменить на Код:
JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_keygen/tables');
$table = JTable::getInstance('Keyg en', 'KeygenTable');
Попробовал, получил ту же ошибкуPHP Fatal error: Call to undefined method KeygenTableKeyg en::filterSite( )
admin
# admin 09.02.2015 19:43
А пробел в названии таблицы удаляли?
Alex-adm
# Alex-adm 09.02.2015 19:43
Да, удалил
Alex-adm
# Alex-adm 09.02.2015 19:43
Извиняюсь, был неправ, пробел вернул.но продолжает ругаться на filterSite()
admin
# admin 09.02.2015 19:43
Пробел там как раз лишний. А что за объект вообще получается?
Alex-adm
# Alex-adm 09.02.2015 19:43
Мдя, в версии 1.4 действительно нет функции filterSite($site)изучаю сейчас это - https://bitbucket.org/Arkadiy/com_keygen/commits/2c366c24e6b940d707b7b565adb7d3b355a811be#chg-component/admin/tables/keygen.php
admin
# admin 09.02.2015 19:43
Тогда скачайте компонент с гитхаба и замените файлы.
Alex-adm
# Alex-adm 09.02.2015 19:43
Утонул я с эти компонентом (((Все заменил, часть проблем решило, ну вот на функцию теперь не ругается. Выявился ряд других проблем:1. свой генератор из админки сохранить нельзя PHP Fatal error: Class 'JFile' not found in */controllers/keygenconf.php on line 20 - решил2. добавить свой ключ из админки тоже нельзя - выводится только один селект первый, еще 3х полей не хватает - тут проблема с формой самой- тоже вроде порешали3. в плагине *keygen.php прим. 256стрforeach($keys as $k=>$v) { $post_text .= '' . $k . ' -> ' . $v . ''; }в $v ничего нет, так как в запросе нет данных из колонки `key` таблицы #_keygen_keys и поэтому получается:Ваши ключи:$k -> [а тут пусто]еще какие-то проблемы были, по цепочке правил, основное написал, возможно обратите внимание на эти ошибки.
admin
# admin 09.02.2015 19:43
Я делал этот компонент для себя, на этом сайте он прекрасно работает, на 3.1 вроде тоже работал, на 3.2 видимо уже нет. Смысла приводить в рабочее состояние на 3.2 у меня нет, свой сайт еще долго буду на 2.5 держать, и спонсоров, готовых оплатить переделку, на горизонте не видно.
Alex-adm
# Alex-adm 09.02.2015 19:43
Я вас понял, Аркадий. Мы сейчас тестируем разные решения и идеи для организации выдачи срочных электронных сертификатов для клиентов фирмы. Кроме функционала личного кабинета (Akeeba Subscriptions бы подошел) и самого генератора, который бы генерировал некий электронный ключ, нам требуется еще и связка этих данных с 1С. Если вы готовы написать такую интеграцию, то пожалуйста, на этот email вышлите ориентировочную стоимость данных работ. Спасибо.
admin
# admin 09.02.2015 19:43
Интеграция с 1с делается обычно на стороне 1с полностью. Так что искать Вам надо одинэсчика.