我已经为 Joomla 1.5 创建了自定义组件和路由插件,以为我的组件提供 SEO URL,还提供与菜单无关的文章和类别。现在我必须分别安装我的组件和路由插件。请问有没有办法将两者都安装在一个包中?
先感谢您!沃杰科技
我已经为 Joomla 1.5 创建了自定义组件和路由插件,以为我的组件提供 SEO URL,还提供与菜单无关的文章和类别。现在我必须分别安装我的组件和路由插件。请问有没有办法将两者都安装在一个包中?
先感谢您!沃杰科技
有一个更简单的方法。
什么是包?
包是一种扩展,用于一次安装多个扩展。
如何创建包?
通过将扩展的所有 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>
当安装任何扩展时,Joomla 会触发一个事件“com_yourcomponent_install()”到您的安装文件,您在 xml 文件中已经提到过。
编写一个函数 com_yourcomponent_install 在其中获取插件文件夹的路径并安装它
$installer = new JInstaller();
// Install the packages
$installer->install($pluginPath);
例如
此函数将包含代码为
$installer = 新的 JInstaller(); // 安装软件包 $installer->install($pluginPath);