Templates Joomla 3模板覆盖插件

Templates Joomla 3模板覆盖插件,templates,plugins,joomla,Templates,Plugins,Joomla,我在我的模板中找不到任何关于覆盖Joomla插件的信息。 一些论坛声称没有插件覆盖,Joomla文档(这是一个危险的森林)要么没有关于这个主题的内容,要么页面很难找到 那么,我们怎样才能像覆盖com_内容或mod_联系人的输出一样覆盖Joomla插件的输出呢?不,你不能以同样的方式覆盖,因为没有tmpl文件夹,因为插件确实不应该渲染,尽管当然有很多。您可能需要克隆插件,并使用jlayout按您的需要进行布局,以使其更易于管理。我找到了一种方法: 导航到/administrator/languag

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


那么,我们怎样才能像覆盖com_内容或mod_联系人的输出一样覆盖Joomla插件的输出呢?

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

我找到了一种方法:

  • 导航到
    /administrator/language/
  • 搜索插件对应的语言文件
  • 复制文件名,不包括语言前缀(即
    en GB.
    )和
    .ini
    后缀
  • 在模板中创建一个名为
    html
    (模板覆盖的常见做法)的文件夹
  • html
    文件夹中,创建一个子文件夹,并使用您在步骤3中复制的语言文件名命名
  • 导航到插件路径中的
    tmpl
    子文件夹:
    /plugins///tmpl
  • 将要覆盖的视图文件复制到步骤5中创建的文件夹中
  • 修改复制的文件以覆盖插件输出
  • 比如说- 要更改页面导航按钮,请修改
    /plugins/content/pagenavigation
    的输出:

    进入
    /administrator/language/en-GB/
    并找到名为
    en-GB.plg\u content\u pagenavigation.ini的文件

    从文件名仅复制
    plg\u content\u页面导航

    在主题中创建一个名为
    html
    (如果尚未存在)的文件夹,在其中创建一个子文件夹并将其命名为
    plg\u content\u pagenavigation

    将视图文件
    /plugins/content/pagenavigation/tmpl/default.php
    复制到刚才创建的
    plg\u content\u pagenavigation
    文件夹中

    修改文件

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


    祝你好运。

    在Joomla 3.1安装中,我正在使用Simple Image Gallery插件,我觉得有必要覆盖它,以便为Gallery的每个缩略图添加额外的功能

    我将
    /plugins/content/jw_sig/jw_sig/tmpl/
    的所有内容复制到
    /templates/protostar/html/jw_sig/
    文件夹中,然后我可以修改
    default.php
    文件以进行输出修改,以及相应的
    template.css
    文件以进行样式修改。这将成功覆盖插件的输出,而不会在将来的更新中出现问题


    当然,这并不适用于所有的插件,但是如果你有一个足够好的插件可以用
    tmpl
    文件夹开发,那么它提供了另一种选择。

    Elin的答案对于Joomla 2.5-3.x来说并不完全正确。一些插件确实呈现屏幕输出,并且具有您可以覆盖的/tmpl文件夹。看


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

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

    plg_[类型*].[pluginElement]

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


    类型*:显然,除了内容之外没有其他意义,但如果是自定义插件,没有人能阻止你。

    我明确表示他们“不应该”而不是“不应该”。不过,JLayout的使用在结构上更为正确。我主要是回应你的“不能”:-)另外,jw_sig的答案似乎表明您也可以覆盖其他php文件。顺便说一句,这完全适用于Joomla 3.7中的新自定义字段。这意味着您可以使用此文件夹名称约定,从其中的字段粘贴模板文件,并修改文件以覆盖字段输出。例如,在html文件夹中,您将plg_fields_media和media.php文件放在其中,以覆盖media字段。@BrianPeat这太棒了!喜欢这个问题要创建一个语言覆盖,你可以通过后端来完成,这样可能会比较容易混淆。另一个建议非常有用,不能通过后端覆盖来完成。我会测试这个,可能真的很有用。好主意。尽管另一个答案表明/tmpl文件夹可能不是绝对必要的。