2012-11-07 23 views
0

佈局xml文件Magento的動態文本目前,我有這樣的:使用addText

<block type="core/text" name="top.address" as="topAddress"> 
     <action method="addText"><text>PO BOX 1124, Rockdale, Sydney, NSW 2216, Australia</text></action> 
    </block> 

但是,當我需要更新地址,我必須手動這裏做它在佈局文件。我想從商店配置(general/store_information /地址)拉地址,所以,我可以從一個位置輕鬆更新網站上的任何地方。

我想它可以直接在模板這樣進行:

<?php echo Mage::getStoreConfig('general/store_information/address') ?> 

但我想嘗試與佈局,這可能嗎?

謝謝。

回答

3

簡答題 - 沒有。沒有它的功能。這並不是說它無法完成。有一個屬性可以在動作標籤上使用 - ifconfig。它看起來是否設置了系統配置標誌,如果它返回true,那麼它將繼續執行該操作。你可以覆蓋擴展Mage/Core/Model/Layout.php來添加該功能。

雖然這個問題有很多選擇。

  1. 您可以使用模板,就像您提到的那樣。
  2. 如果您想要避免使用模板,可以創建一個擴展Mage_Core_Block_Text的塊,並使用您提供的代碼指定_toHtml方法。
  3. 最好的:我會看到在通用模塊中創建一個通用模塊,用於提取系統配置請求並將其輸出爲文本。你可以讓它成爲一個自定義的動作/方法,或者發送一個屬性值,這個屬性值將會在塊的數據數組中結束,然後你可以在_toHtml中查找。
+1

加上它可以很容易地完成與靜態塊,所以它可以編輯這個地址從管理面板http://www.magentocommerce.com/knowledge-base/entry/how-do-i-create-和編輯靜態塊,並從模板或佈局調用它 –

+0

好點。謝謝! –

+0

謝謝@JMax,只是想看看是否有可能,因爲我找不到這樣做的人。我決定和#1一起去,因爲我也有同樣的想法和第二選擇。 –

3

我的答案可能是oudated,但我面臨着這樣的問題,我剛纔發現的另一種方式來解決這個問題:

  1. 在佈局,您可以指定core/text塊,並通過輔助設置其文本。您可以使用任何合適的參考。

    <reference name="before_body_end"> 
        <block type="core/text" name="some.config"> 
         <action method="addText"> 
          <text helper="module_name/data/getSomeConfig" /> 
         </action> 
        </block> 
    </reference> 
    
  2. 聲明getSomeConfig功能助手:

    public function getSomeConfig() 
    { 
        return Mage::getStoreConfig('your_config_path'); 
    } 
    

在這樣的方式,你甚至可以通過一些動態的數據到JavaScript代碼。