1

Custom Variablesレイアウトファイルで使用することはできますか?次のようなテンプレートファイルで使用できます。

Mage::getModel('core/variable')->loadByCode('variableCode')->getData('store_plain_value')

しかし、xmlファイルではわかりません。

代わりに上記を使用できることはわかっていますが、これは将来の使用にも役立つでしょう。

更新:私が恐れている最も不明確でした。自分の変数をブロックに渡すだけでなく、管理パネルの[カスタム変数]セクションにアクセスしたいと思っています。わかりにくいことをお詫び申し上げます。

4

3 に答える 3

5

Mage_Core_Block_Abstractオーバーロードを拡張Varien_Objectして継承し__call()ます。レイアウトXMLのブロックアクションはブロックメソッドを呼び出しますが、次のことが可能です。

文字列を渡します(そしてそれは翻訳できます!):

<action method="setSomeVal" translate="arg" module="some/helper">
    <arg>Some String</arg>
</action>

配列を渡します:

<action method="setSomeVal">
    <arg>
        <key1>Some String</key1>
        <key2>Some String</key2>
        <key3>
            <multikey1>Some String</multikey1>
        </key3>
    </arg>
</action>

必要なものをすべて渡します。

<action method="setSomeVal">
    <arg helper="some/helper/method">
        <param_for_the_helper_method>
            <getting_crazy>Oh Boy.</getting_crazy>
        </param_for_the_helper_method>
</action>

を使用してブロック/テンプレートの値を取得します$this->getSomeVal();

楽しいですよね?

于 2012-11-27T15:17:53.460 に答える
4

次のことを試しましたか:

<!-- in layout xml file -->
<action method="setData"><name>color_id</name><value>5</value></action>

次に、以下のようなブロックファイルで使用できます。

  $colors = $this->getColorId();
# or
  $colors = $this->getData('color_id');
于 2012-11-27T15:08:48.403 に答える
2

更新された質問に基づく:

機能をラップするヘルパークラスを作成しますcore/variable。例:

class Some_Module_Helper_Variable
{
    public function getVariableData($code,$param)
    {
        return Mage::getModel('core/variable')->loadByCode($code)->getData($param);
    }
}

次に、ブロックのレイアウトXMLでこれを行うことができます(私は信じています):

<action method="setSomeVal">
    <arg helper="class_group/variable/getVariableData">
        <arg1>variableCode</arg1>
        <arg2>store_plain_value</arg2>
    </arg>
</action>
于 2012-11-27T16:33:30.920 に答える