2013-03-13 52 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