我为Joomla 1.5创建了自定义组件和路由插件,以便为我的组件提供SEO URL,以及不与菜单绑定的文章和类别。现在我必须单独安装我的组件和路由插件。有没有办法在一个包装中安装?
提前谢谢! Vojtech
答案 0 :(得分:5)
有一种更简单的方法。
什么是套餐?
包是一种扩展,用于一次安装多个扩展。
如何创建包?
通过将扩展名的所有zip文件与xml清单文件一起压缩来创建包扩展。例如,如果您有一个由以下组成的包:
软件包在zipfile中应该包含以下树:
-- 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>
答案 1 :(得分:4)
当任何扩展安装Joomla时,会在您的安装文件中触发一个事件'com_yourcomponent_install()',您已在xml文件中提到过。
编写一个函数com_yourcomponent_install,在其中获取插件文件夹的路径并安装它
$installer = new JInstaller();
// Install the packages
$installer->install($pluginPath);
例如
此函数将包含代码
$ installer = new JInstaller(); //安装软件包 $ installer-&GT;安装($ pluginPath);