5

我在我的模板中找不到任何关于覆盖 Joomla 插件的信息。一些论坛声称没有插件覆盖,并且 Joomla 文档(它是威胁森林)要么没有关于该主题的任何内容,要么页面很难找到。

那么我们如何覆盖 Joomla 插件的输出,就像我们覆盖 com_content 或 mod_contact 的输出一样?

4

5 回答 5

9

我找到了一种方法来做到这一点:

  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.phpplg_content_pagenavigation刚刚创建的文件夹中。

修改文件。

注意:我只在 Joomla 3.1 上尝试过。该方法可能不适用于某些插件。

祝你好运。

于 2013-07-23T14:00:48.440 回答
6

在 joomla 3 中,您只能覆盖插件输出,这就是为什么源插件必须使用 tmpl 实现的原因。您 [template]/html 中文件夹的命名约定是

plg_[类型* ]_[pluginElement]

模板覆盖的本机 joomla 插件只是页面导航。

type*:显然除了内容之外没有任何意义,但如果它是自定义插件,没有人可以阻止你。

于 2014-11-17T13:22:11.260 回答
2

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.

于 2013-10-10T14:51:12.623 回答
1

不,您不能以相同的方式覆盖,因为没有 tmpl 文件夹,因为插件确实不应该渲染,尽管当然很多。您可能需要克隆插件并制作您想要的布局,可能使用 jlayout 使其更易于管理。

于 2013-06-29T01:52:19.320 回答
1

对于 Joomla 2.5-3.x,Elin 的回答并不完全正确。一些插件会渲染屏幕输出并具有您可以覆盖的 /tmpl 文件夹。请参阅http://docs.joomla.org/Layout_Overrides_in_Joomla

在某些情况下,您可能需要在插件 /tmpl 文件夹中创建替代视图。例如,一些使用 JForms 的简单的、较新的自定义内容组件允许您将字段添加到 com_content 文章并为每个字段选择一个视图模板。然后动态生成 com_content 的覆盖以显示自定义字段。每个字段类型都可以通过插件显示在组件区域中,也可以在模块中显示,也可以在模板代码中显示,但它将使用您为 CCK 组件中的字段选择的 /tmpl 文件。如果有办法从模板文件夹中覆盖不同的字段视图,它必须需要一个我无法发现的神秘菜单结构。

于 2014-07-15T02:31:21.980 回答