我在我的模板中找不到任何关于覆盖 Joomla 插件的信息。一些论坛声称没有插件覆盖,并且 Joomla 文档(它是威胁森林)要么没有关于该主题的任何内容,要么页面很难找到。
那么我们如何覆盖 Joomla 插件的输出,就像我们覆盖 com_content 或 mod_contact 的输出一样?
我找到了一种方法来做到这一点:
<joomla_homefolder>/administrator/language/<your_language>/
en-GB.
)和.ini
后缀。html
(模板覆盖的常见做法)的文件夹。html
文件夹中创建一个子文件夹,并使用您在步骤 3 中复制的语言文件名命名。tmpl
插件路径中的子文件夹:<joomla_homefolder>/plugins/<plugin_type>/<plugin_name>/tmpl
例如 - 要更改页面导航按钮 - 修改以下输出<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 上尝试过。该方法可能不适用于某些插件。
祝你好运。
在 joomla 3 中,您只能覆盖插件输出,这就是为什么源插件必须使用 tmpl 实现的原因。您 [template]/html 中文件夹的命名约定是
plg_[类型* ]_[pluginElement]
模板覆盖的本机 joomla 插件只是页面导航。
type*:显然除了内容之外没有任何意义,但如果它是自定义插件,没有人可以阻止你。
On a Joomla 3.1 install, I am using the Simple Image Gallery plugin and I felt the need to override it in order to add extra functionality to each thumbnail of the gallery.
I copied all of the contents of <joomla_homefolder>/plugins/content/jw_sig/jw_sig/tmpl/
into the folder <joomla_homefolder>/templates/protostar/html/jw_sig/
and I was then able to modify both the default.php
file for output modifications, and the accompanying template.css
file for styling modifications. This successfully overrides the plugin's output without risking issues during future updates.
Of course, this will not work with all plugins, but it offers another alternative if you have a plugin that was nice enough to be developed with a tmpl
folder.
不,您不能以相同的方式覆盖,因为没有 tmpl 文件夹,因为插件确实不应该渲染,尽管当然很多。您可能需要克隆插件并制作您想要的布局,可能使用 jlayout 使其更易于管理。
对于 Joomla 2.5-3.x,Elin 的回答并不完全正确。一些插件会渲染屏幕输出并具有您可以覆盖的 /tmpl 文件夹。请参阅http://docs.joomla.org/Layout_Overrides_in_Joomla
在某些情况下,您可能需要在插件 /tmpl 文件夹中创建替代视图。例如,一些使用 JForms 的简单的、较新的自定义内容组件允许您将字段添加到 com_content 文章并为每个字段选择一个视图模板。然后动态生成 com_content 的覆盖以显示自定义字段。每个字段类型都可以通过插件显示在组件区域中,也可以在模块中显示,也可以在模板代码中显示,但它将使用您为 CCK 组件中的字段选择的 /tmpl 文件。如果有办法从模板文件夹中覆盖不同的字段视图,它必须需要一个我无法发现的神秘菜单结构。