替换Joomla自定义模块中的短标签

时间:2013-03-13 05:55:35

标签: php joomla joomla2.5 joomla-extensions joomla3.0

在一个自定义模块中,我写下面的内容。该模块位于页面顶部。

(650) 123-1232
950 Queen Dr Suite 110, Daly City CA, 94015

在另一个自定义模块中,我写了相同的内容,几乎没有变化,如下所示。该模块位于页面底部。

950 Queen Dr Suite 110, Daly City CA, 94015
(650) 123-1232

问题是我在自定义模块中一遍又一遍地重复相同的内容,并且可能会发生错误。所以我想做的是使用如下的短标签。

{phone}
{address}

如果我在自定义模块中编写如上所示的短标记,我希望它们在整个站点上替换为某些特定值。 {phone} with(650)123-1232和{address} with 950 Queen Dr Suite 110,Daly City CA,94015。假设值已在数据库中。

这可以通过编写Joomla插件来实现吗?或者我该怎么办?怎么办呢?

2 个答案:

答案 0 :(得分:1)

如果为模块执行了插件,则可以使用此插件,例如

class plgContentShorttags extends JPlugin
{

    public function onContentPrepare($context, &$row, &$params, $page = 0)
    {
        // Don't run this plugin when the content is being indexed
        if ($context == 'com_finder.indexer') {
            return true;
        }

        if (JString::strpos($text, '{phone}') !== false) {
            $row->text = JString::str_ireplace('{phone}', '(650) 123-1232', $row->text);
        }

        if (JString::strpos($text, '{address}') !== false) {
            $row->text = JString::str_ireplace('{phone}', 'your address', $row->text);
        }

        return true;
    }
}

您只需要添加插件xml并安装它。您甚至可以向插件添加参数以通过后端设置详细信息

答案 1 :(得分:1)

ReReplacer - 在您的网站输出中搜索并替换。这可以完成工作。

  

ReReplacer是Joomla!支持您的组件和系统插件   替换你的Joomla中的任何东西!网站的输出与你无关   想。

     

ReReplacer将搜索您网页的文字(html)以供搜索   请求并将其替换为您告诉它要做的事情。这些   替换是即时的。这意味着它们不是永久性的。他们   每次您在网站上请求网页时都会完成。

     

这为您提供了操纵输出的巨大可能性和强大功能   你的网站。