Joomla - 如何捕获系统事件

问题描述:

我在写一个joomla扩展,它是一个组件(而不是插件),但是我也需要能够检测文章发布的时间。我已经解决了,我可以使用捕获系统事件onContentChangeState的插件来完成此任务,但是我无法弄清楚如何使用组件捕获事件。有任何想法吗?Joomla - 如何捕获系统事件

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

+1

我可能是错的,但我很确定只能用插件完成 – Trev 2012-04-25 14:12:29

  1. 响应事件只能用插件完成,触发事件只能用plugins can act as observers。 (否则就需要对核心进行严重的黑客攻击)。
  2. A Joomla Component负责显示在页面(前端/后端)上的“主要内容”。它不作为观察员(虽然过时了component flow is still similar to this diagram)。
  3. 常见的设计和实践是使用它自己的插件来发布组件。 JCE,Virtuemart,Akeeba和名单继续...
  4. 从Joomla! 1.6以后,单个Package可以包含多个档案,每个档案都有自己的manifest,即组件及其相关插件。

最终的结果是,您可以制作一个扩展,该扩展为其多个元素使用一个安装包。