第三方插件不会覆盖joomla

时间:2016-07-08 12:36:28

标签: plugins joomla override joomla3.0

我在joomla中创建了一个“my-plug-in”的搜索插件。当我试图在joomla模板中覆盖此插件时,它无法工作。如果我尝试覆盖任何现有的插件joomla它的工作。我也检查了下面的链接。这是有效的

This link

我如何在joomla模板中覆盖我的插件。

我已将插件添加到下方。

plugins/search/my-plug-in

to 

templates/{TEMPLATENAME}/html/plg_search_my-plug-in

1 个答案:

答案 0 :(得分:1)

如果您已经彻底检查了您提供的链接,则会找到一行“但是,如果插件已准备好允许覆盖,则只能执行此操作。

Joomla提供了一种覆盖插件的机制,但所有插件都不支持此功能。目前,Joomla 3.x核心中唯一允许覆盖的插件是Pagenavigation Content插件,它在内容组件的文章视图中显示上一篇/下一篇文章链接。可能有来自第三方开发者的其他插件允许它,并且将来可以覆盖更多核心插件。

你的插件中是否有一个tmpl文件夹,如“你知道什么时候插件可以覆盖,因为其中有一个/ tmpl /文件夹。

您还使用过JPluginHelper::getLayoutPath()。这些是在覆盖布局之前需要完成的要求。 在pagenavigation插件中检查此代码

// Output.
            if ($row->prev || $row->next)
            {
                // Get the path for the layout file
                $path = JPluginHelper::getLayoutPath('content', 'pagenavigation');
                // Render the pagenav
                ob_start();
                include $path;
                $row->pagination = ob_get_clean();
                $row->paginationposition = $this->params->get('position', 1);
                // This will default to the 1.5 and 1.6-1.7 behavior.
                $row->paginationrelative = $this->params->get('relative', 0);
            }

他们使用过JPluginHelper :: getLayoutPath();你必须使用

$path = JPluginHelper::getLayoutPath('search', 'my-plug-in');

您可以彻底检查pagenavigation插件以获得一个好主意。