如何将组件和路由插件安装在一个包中?

发布于 2024-12-21 22:13:15 字数 120 浏览 1 评论 0原文

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

先感谢您!沃伊泰克

I have created custom component and a route plugin for Joomla 1.5 to to provide SEO URLs for my component and also articles and categories which are not menu tied. Now I have to install my component and route plugin separately. Is there a way to install both in one package please?

Thank you in advance! Vojtech

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

懒的傷心 2024-12-28 22:13:15

有一个更简单的方法。

什么是包?

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

如何创建包?

包扩展是通过将扩展的所有 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>

There is a easier method.

What is a package?

A package is a extension that is used to install multiple extensions in one go.

How do I create a package?

A package extension is created by zipping all zip files of the extensions together with a xml manifest file. For example if you have a package composed by:

  • component helloworld
  • module helloworld
  • library helloworld
  • system plugin helloworld
  • template helloworld

The package should have the following tree in your zipfile:

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

The pkg_helloworld.xml could have the following contents:

 <?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>
心在旅行 2024-12-28 22:13:15

当安装的任何扩展程序时,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->install($pluginPath);

When any extension installed Joomla triggers an event 'com_yourcomponent_install()' to your install file, which you have mentioned in xml file.

write a function com_yourcomponent_install in which get the path of plugin folder and install it

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

For example

  1. in you xml file install.mycomponent.php
  2. and in install.mycomponent.php there should be a function com_mycomponent_install()
  3. this function will contain the code as

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文