2

我已经为 Joomla 1.5 创建了自定义组件和路由插件,以为我的组件提供 SEO URL,还提供与菜单无关的文章和类别。现在我必须分别安装我的组件和路由插件。请问有没有办法将两者都安装在一个包中?

先感谢您!沃杰科技

4

2 回答 2

6

有一个更简单的方法。

什么是包?

包是一种扩展,用于一次安装多个扩展。

如何创建包?

通过将扩展的所有 zip 文件与 xml 清单文件一起压缩来创建包扩展。例如,如果您有一个由以下内容组成的包:

  • 组件 helloworld
  • 模块helloworld
  • 图书馆你好世界
  • 系统插件helloworld
  • 模板helloworld

该包应该在您的 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>
于 2013-01-16T07:51:02.573 回答
4

当安装任何扩展时,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 = 新的 JInstaller(); // 安装软件包 $installer->install($pluginPath);

于 2011-12-23T08:18:22.690 回答