2013-06-28 84 views
3

我無法找到任何信息覆蓋在我的模板Joomla插件。 有些論壇聲稱沒有插件重寫,而Joomla文檔(即它是的威脅森林)要麼沒有關於主題,要麼頁面很難找到。Joomla 3模板覆蓋插件

那麼我們怎樣才能覆蓋Joomla插件的輸出同樣是我們重寫com_content或mod_contact的輸出?

回答

7

我已經找到一種方法來做到這一點:

  1. 導航到<joomla_homefolder>/administrator/language/<your_language>/
  2. 搜索插件的相應的語言文件。
  3. 複製文件名稱,排除語言前綴(即en-GB.)和.ini後綴。
  4. 在您的模板中創建一個名爲html的文件夾(模板覆蓋的常見做法)。
  5. html文件夾中創建子文件夾並命名的語言文件名作爲您在步驟在插件的路徑把它抄了3
  6. 導航至tmpl子文件夾:<joomla_homefolder>/plugins/<plugin_type>/<plugin_name>/tmpl
  7. 複製視圖文件你希望覆蓋放入您在步驟5中創建的文件夾。
  8. 修改複製的文件以覆蓋插件輸出。

例如 - 要更改頁面導航按鈕 - 修改<joomla_homefolder>/plugins/content/pagenavigation輸出:

進入<joomla_homefolder>/administrator/language/en-GB/,找到名爲en-GB.plg_content_pagenavigation.ini文件。

從文件名只複製plg_content_pagenavigation

在你的主題中創建一個名爲html的文件夾(如果它不存在),在裏面創建一個子文件夾並將其命名爲plg_content_pagenavigation

將視圖文件<joomla_homefolder>/plugins/content/pagenavigation/tmpl/default.php複製到您剛剛創建的plg_content_pagenavigation文件夾中。

修改文件。

注:我只用Joomla 3.1試過。 該方法可能無法使用一些插件。

祝你好運。

0

不,你不能重寫相同的方式,因爲沒有tmpl文件夾,因爲插件真的不應該呈現,雖然當然很多。您可能需要克隆插件,並使用jlayout進行佈局以便更易於管理。

1

在Joomla 3.1安裝,我使用簡單的圖像庫插件,我覺得有必要重寫它,以便爲圖庫的每個縮略圖添加額外的功能。

我複製所有的<joomla_homefolder>/plugins/content/jw_sig/jw_sig/tmpl/內容放入文件夾<joomla_homefolder>/templates/protostar/html/jw_sig/,我當時能同時修改default.php文件輸出的修改,和伴隨template.css文件的造型修改。這將成功覆蓋插件的輸出,而不會在未來更新期間冒風險。

當然,這將不適用於所有插件,但它提供了另一種選擇,如果你有一個插件可以用tmpl文件夾開發。

0

對於Joomla 2.5-3.x,Elin的回答並不完全正確。一些插件會渲染屏幕輸出,並且可能會覆蓋/ tmpl文件夾。見http://docs.joomla.org/Layout_Overrides_in_Joomla

在某些情況下,你可能需要創建插件/ TMPL文件夾中不同的看法。例如,使用JForms的一些簡單的新自定義內容組件可讓您將字段添加到com_content文章併爲每個字段選擇一個視圖模板。然後,動態生成com_content的覆蓋以顯示自定義字段。每個字段類型可以通過插件,模塊或模板代碼顯示在組件區域中,但它將使用您爲CCK組件中的字段選擇的/ tmpl文件。如果有一種方法可以覆蓋模板文件夾中的不同字段視圖,它必須要求一個我無法發現的神祕菜單結構。

+0

我特別說他們「不應該」,不是他們「不」。然而,JLayouts的使用在結構上更加正確。 – Elin

+0

我主要是迴應你的「不能」。 :-) –

5

在joomla 3中,您只能覆蓋插件輸出,這就是爲什麼原始插件必須用tmpl實現的原因。 夾在你[模板]的命名約定/ HTML是

plg_ [型*] _ [pluginElement]

模板覆蓋本地的Joomla插件僅在pagenavigation。

type *:顯然除了內容沒有意義,但如果它是自定義插件,沒有人可以阻止你。

+0

順便說一下,這完全適用於Joomla 3.7中的新自定義字段。這意味着您可以使用此文件夾名稱約定,並將模板文件從其中的一個字段中粘貼並對該文件進行修改以覆蓋字段輸出。例如,在html文件夾中,您將plg_fields_media與media.php文件放在其中,以覆蓋媒體字段。 –