【问题标题】:Replace short-tags in Joomla custom module替换 Joomla 自定义模块中的短标签
【发布时间】:2013-03-13 05:55:35
【问题描述】:

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

(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} 与 (650) 123-1232 和 {address} 与 950 Queen Dr Suite 110, Daly City CA, 94015。假设值已在数据库中。

这可以通过写一个Joomla插件来实现吗?或者我应该怎么做?如何做到这一点?

【问题讨论】:

    标签: php joomla joomla2.5 joomla-extensions joomla3.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 并安装它。您甚至可以在插件中添加参数以通过后端设置详细信息

    【讨论】:

    • 这只处理内容部分。不是整个网站
    • @Dasun 如果插件被执行,它适用于内容和模块(我不记得是默认情况下,还是需要触发)
    • 是的,我看到了,但我喜欢自己编写代码(如果我有足够的时间的话):-)
    【解决方案2】:

    ReReplacer - 在您的网站输出中搜索和替换。这样就完成了工作。

    Replacer 是 Joomla!组件和系统插件,使您 替换 Joomla 中的任何内容!网站的输出与您的任何内容 想要。

    Replacer 将搜索您网页的文本 (html) 以供您搜索 请求并将其替换为您告诉它执行的操作。这些 替换是在飞行中。这意味着它们不是永久性的。他们 每次您在网站中请求网页时都会完成。

    这为您提供了极大的可能性和能力来操纵输出 您的网站。

    【讨论】:

      猜你喜欢
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多