Как я могу установить модули Joomla автоматически - PullRequest
1 голос
/ 23 октября 2010

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

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

Ответы [ 2 ]

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

    jimport ('joomla.installer.installer');

    $ installer = new JInstaller ();

    $ installer-> setOverwrite (true);

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

Указывает, что нужно запомнить:

  1. Вместо того, чтобы положить zip, создайте папку в папке tmp-path.Установка из папки проще.
  2. Лучше проверить правильность аутентификации, прежде чем делать какие-либо серьезные вещи.
0 голосов
/ 25 октября 2010

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

  • С помощью curl вы можете смоделировать вход в систему, а затем вызвать административный интерфейс для установки. (Вам нужно было бы проанализировать получившиеся html-страницы, так как форма использует скрытый токен ...)
  • PHP-скрипт, который по сути называет Joomla! код установки, но допускает другую форму аутентификации (например, только когда вызывается как CLI, только с локального хоста и т. д.).
  • Действительно ли это нужно устанавливать через интерфейс Joomla! S? Вы можете обновить большинство модулей, просто скопировав файлы в нужную папку.
  • Или проверить файлы контроля версий.
...