Как я могу установить модули joomla автоматически

Есть ли сценарий CLI, который я мог бы запустить на сервере (вероятно, из cron), чтобы установить новый файл .zip?

Я работаю над проектом joomla, и мне нужен способ автоматической установки новой версии на мой удаленный тестовый сервер при фиксации. В настоящее время я собираю пакет, а затем должен войти на тестовый сервер, выбрать файл, загрузить. Я хотел бы просто отправить zip-файл на сервер, чтобы Joomla взяла его и установила.


person Asa Ayers    schedule 23.10.2010    source источник
comment
Звучит немного запутанно. Я набросаю некоторые возможные способы ниже...   -  person giraff    schedule 25.10.2010


Ответы (2)


  1. Создайте плагин, который должен срабатывать по какой-либо опции = com_installmyxxzip.
  2. Затем в плагине в событии onAfterRoute проверьте, является ли переменная option вашей.
  3. Теперь, если это ваш вариант, обновите модуль/компонент/плагин с помощью приведенного ниже кода.

    jimport('joomla.installer.installer');

    $installer = новый JInstaller();

    $installer->setOverwrite(true);

    $installer->install($path-to-folder);

Моменты, которые следует помнить:

  1. Вместо того, чтобы поставить zip, создайте папку в папке tmp-path. Установка из папки проще.
  2. Лучше проверить правильность аутентификации, прежде чем делать какие-либо серьезные вещи.
person Shyam Sunder Verma    schedule 03.01.2011

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

  • С помощью curl вы можете имитировать вход в систему, а затем вызывать интерфейс администрирования для установки. (Вам нужно будет проанализировать полученные html-страницы, так как форма использует скрытый токен...)
  • PHP-скрипт, который, по сути, вызывает Joomla! код установки, но допускает другую форму аутентификации (например, только при вызове как CLI, только с локального хоста и т. д.).
  • Его действительно нужно устанавливать через интерфейс Joomla!? Вы можете обновить большинство модулей, просто скопировав файлы в нужную папку.
  • Или проверить файлы контроля версий.
person giraff    schedule 25.10.2010
comment
Я думал просто скопировать файлы, но я также хочу, чтобы он запускал сценарий установки sql, и я хотел бы убедиться, что все упаковано правильно. Вероятно, мне просто придется создать свой собственный скрипт для вызова кода установки joomla. - person Asa Ayers; 25.10.2010