Joomla - 如何捕捉系统事件

Posted

技术标签:

【中文标题】Joomla - 如何捕捉系统事件【英文标题】:Joomla - how to catch system events 【发布时间】:2012-05-06 05:22:51 【问题描述】:

我正在编写一个作为组件(不是插件)的 joomla 扩展,但是我还需要能够检测文章何时发布。我已经发现我可以使用一个捕获系统事件 onContentChangeState 的插件来做到这一点,但是我无法弄清楚如何使用组件来捕获事件。有什么想法吗?

我知道最简单的解决方案是将其作为两个扩展,一个插件和一个组件,但这是不可接受的。它必须是组件的一部分。

【问题讨论】:

我可能错了,但我很确定只能通过插件来完成 【参考方案1】:
    响应事件只能通过插件来完成,只有plugins can act as observers用于触发事件。 (否则将需要对核心进行严重的黑客攻击)。 Joomla Component 负责页面上显示的“主要内容”(前端/后端)。它不充当观察者(虽然 component flow is still similar to this diagram 已过时)。 常见的设计和实践是使用它自己的插件来发布一个组件,例如。 JCE、Virtuemart、Akeeba 不胜枚举…… 来自 Joomla!从 1.6 开始,单个 Package 可以包含多个存档,每个存档都有自己的manifest,即一个组件及其相关插件。

最终结果是,您可以制作一个使用一个安装包的单个扩展来实现它的多个元素。

【讨论】:

以上是关于Joomla - 如何捕捉系统事件的主要内容,如果未能解决你的问题,请参考以下文章

Joomla 中组件、模块、扩展和插件之间的区别

如何加密存储在数据库中的Joomla配置参数?

在Ubuntu 16.04上安装Joomla系统

我如何通过joomla发送电子邮件

我可以在我的组件中使用 Joomla 插件吗

Joomla vs 2.5.6的Mad最新事件更新