2013-03-13 54 views
0

在一个自定义模块中,我写下如下所示的内容。这个模块放置在页面的顶部。替换Joomla自定义模块中的短标签

(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} 

如果我写一个简短的标签如上面的自定义模块,我希望他们能与各地网站的一些特定值代替。 {650} 123-1232 {地址}与950 Queen Dr Suite 110,Daly City CA,94015.假设值已经存在于数据库中。

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

回答

1

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

ReReplacer是一个Joomla!组件和系统插件,可以让你 取代你的Joomla!网站的输出与你想要的任何东西 。

ReReplacer将搜索您的页面的文本(html)以供您搜索 请求,并将其替换为您告诉它执行的操作。这些 替代品是即时的。这意味着它们不是永久的。每次你在你的网站申请一个网页时,他们都会完成它们 。

这给你很大的可能性和力量来操纵你的网站的输出 。

+0

+1链接到这个真棒组件。 – 2013-03-13 13:10:45

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和安装。你甚至可以添加参数到插件,通过后端设置细节

+0

这只处理内容部分。不是整个网站 – Techie 2013-03-13 08:19:59

+0

@Dasun它适用于内容和模块,如果插件被执行(我不记得是否它是默认的,或者他们需要被触发) – 2013-03-13 08:29:45

+0

检查我的答案。顺便感谢支持 – Techie 2013-03-13 08:30:34