2012-04-25 96 views
1

我在寫一個joomla擴展,它是一個組件(而不是插件),但是我也需要能夠檢測文章發佈的時間。我已經解決了,我可以使用捕獲系統事件onContentChangeState的插件來完成此任務,但是我無法弄清楚如何使用組件捕獲事件。有任何想法嗎?Joomla - 如何捕獲系統事件

我知道最簡單的解決方案是做它作爲兩個擴展,一個插件和一個組件,但這是不可接受的。它必須是組件的一部分。

+1

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

回答

1
  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,即組件及其相關插件。

最終的結果是,您可以製作一個擴展,該擴展爲其多個元素使用一個安裝包。