我知道“自定义变量”以及它们如何与电子邮件模板以及静态块中的{{}}括号一起使用。
但是,我想在模板代码中使用它们,即view.phtml。
我希望能够访问'变量普通值'来检索转换值,即数字/字符串作为给定'变量代码'的数字。
答案 0 :(得分:31)
已经这样做一段时间来创建可通过管理界面编辑的各种消息,所以当时刻的味道发生变化时,我不必去挖掘代码。
要使用代码 custom_variable_code
访问自定义变量的普通值,请使用:
Mage::getModel('core/variable')->loadByCode('custom_variable_code')->getValue('plain');
注意:单个商店不显示变量范围的商店选择下拉列表。这个答案在技术上是不正确的,以便在有多个商店的情况下为自己提供未来证明 - >请参阅下面的@Mark van der Sanden回答并给他一个upvote。
答案 1 :(得分:30)
不幸的是,所有其他答案都不是100%正确。像这样使用它(注意setStoreId()
以获取正确的商店视图的值):
$value = Mage::getModel('core/variable')
->setStoreId(Mage::app()->getStore()->getId())
->loadByCode('variable_code')
->getValue('text');
或者获取html值:
$value = Mage::getModel('core/variable')
->setStoreId(Mage::app()->getStore()->getId())
->loadByCode('variable_code')
->getValue('html');
如果没有定义html值,如果您请求html值,getValue()
将返回文本值。
答案 2 :(得分:10)
Setting a global variable in Magento, the GUI way?
但事实并非如此:
$angle = Mage::getModel('core/variable')->loadByCode('angle')->getData('store_plain_value');
答案 3 :(得分:1)
我看到你的唯一方法是通过在模板块中使用一个方法来实现这一点,这将输出所需的结果。
例如,在模板view.phtml中,您有以下代码:
<div id="title_container">
<h2><?= $this->getTitle(); ?></h2>
</div>
该函数可以表示您的变量代码,任何与标题中显示的内容有关的逻辑都应该放在块中。
为了澄清,块是变量$ this
如果您不确定块的实际类名是什么,您可以执行以下操作:
Mage::log(get_class($this));
在var / log / system.log中,您将打印该模板块的类。
这是最好的方法。
HTH:)
答案 4 :(得分:1)
//获取自定义变量的TEXT值:
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('text');
//获取自定义变量的HTML值:
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('html');
//商店ID设置为可以为多个商店编辑自定义变量
答案 5 :(得分:0)
注意:自定义变量可能具有不同商店的不同值。
因此,要使用代码 custom_variable_code
使用此:
$storeId = Mage::app()->getStore()->getId();
$custom_variable_text = Mage::getModel('core/variable')->setStoreId($storeId)
->loadByCode('custom_variable_code')
->getValue('text');
$custom_variable_plain_value = Mage::getModel('core/variable')->setStoreId($storeId)
->loadByCode('custom_variable_code')
->getValue('plain');
$custom_variable_html_value = Mage::getModel('core/variable')->setStoreId($storeId)
->loadByCode('custom_variable_code')
->getValue('html');