Как установить компонент и плагин маршрута в одном пакете? - PullRequest
2 голосов
/ 17 декабря 2011

Я создал пользовательский компонент и плагин маршрута для Joomla 1.5, чтобы предоставить SEO-URL для моего компонента, а также статьи и категории, которые не связаны меню.Теперь я должен установить свой компонент и плагин маршрута отдельно.Есть ли способ установить оба в одном пакете, пожалуйста?

Заранее спасибо!Войтех

Ответы [ 2 ]

5 голосов
/ 16 января 2013

Есть более простой способ.

Что такое пакет?

Пакет - это расширение, которое используется для установки нескольких расширений за один раз.

Как мне создать пакет?

Расширение пакета создается путем архивирования всех zip-файлов расширений вместе с файлом XML-манифеста. Например, если у вас есть пакет, составленный из:

  • компонент helloworld
  • модуль helloworld
  • библиотека helloworld
  • системный плагин helloworld
  • шаблон helloworld

В вашем zip-файле пакета должно быть следующее дерево:

-- pkg_helloworld.xml
 -- packages <dir>
     |-- com_helloworld.zip
     |-- mod_helloworld.zip
     |-- lib_helloworld.zip
     |-- plg_sys_helloworld.zip
     |-- tpl_helloworld.zip

Файл pkg_helloworld.xml может содержать следующее:

 <?xml version="1.0" encoding="UTF-8" ?>
 <extension type="package" version="1.6">
 <name>Hello World Package</name>
 <author>Hello World Package Team</author>
 <creationDate>May 2012</creationDate>
 <packagename>helloworld</packagename>
 <version>1.0.0</version>
 <url>http://www.yoururl.com/</url>
 <packager>Hello World Package Team</packager>
 <packagerurl>http://www.yoururl.com/</packagerurl>
 <description>Example package to combine multiple extensions</description>
 <update>http://www.updateurl.com/update</update>
 <files folder="packages">
   <file type="component" id="helloworld" >com_helloworld.zip</file>
   <file type="module" id="helloworld" client="site">mod_helloworld.zip</file>
   <file type="library" id="helloworld">lib_helloworld.zip</file>
   <file type="plugin" id="helloworld" group="system">plg_sys_helloworld.zip</file>
   <file type="template" id="helloworld" client="site">tpl_helloworld.zip</file>
 </files>
 </extension>
4 голосов
/ 23 декабря 2011

Когда любое установленное расширение Joomla вызывает событие 'com_yourcomponent_install ()' в вашем установочном файле, который вы упомянули в xml-файле.

написать функцию com_yourcomponent_install, в которой получить путь к папке плагина и установить ее

$installer =  new JInstaller();
// Install the packages
$installer->install($pluginPath);

Например

  1. в вашем xml-файле install.mycomponent.php
  2. и в install.mycomponent.php должна быть функция com_mycomponent_install ()
  3. эта функция будет содержать код

    $ installer = new JInstaller (); // Устанавливаем пакеты $ Installer-> установить ($ pluginPath);

...