Magento:如何在PHP中访问自定义变量?

Magento:如何在PHP中访问自定义变量?,magento,Magento,我知道“自定义变量”以及它们如何在电子邮件模板和静态块中与{{}}括号一起使用 但是,我想在模板代码中使用它们,即view.phtml 我希望能够访问“变量普通值”以检索转换值,即一个数字/字符串作为给定“变量代码”的数字。我认为您可以通过在模板块中使用一个方法来实现这一点,该方法将输出所需的结果 例如,假设在template view.phtml中有以下代码: <div id="title_container"> <h2><?= $this->get

我知道“自定义变量”以及它们如何在电子邮件模板和静态块中与{{}}括号一起使用

但是,我想在模板代码中使用它们,即view.phtml


我希望能够访问“变量普通值”以检索转换值,即一个数字/字符串作为给定“变量代码”的数字。

我认为您可以通过在模板块中使用一个方法来实现这一点,该方法将输出所需的结果

例如,假设在template view.phtml中有以下代码:

<div id="title_container">
    <h2><?= $this->getTitle(); ?></h2>
</div>
在var/log/system.log中,您将打印该模板块的类

这是最好的办法


HTH:)

斯塔克几乎又开始营救了。我想是这样的:

但不是,这是:

  $angle = Mage::getModel('core/variable')->loadByCode('angle')->getData('store_plain_value');

为了创建各种可通过管理界面编辑的消息,我已经这样做了一段时间,这样当当前的风格发生变化时,我就不必去挖掘代码了

要使用代码访问自定义变量的值,请使用以下命令:

Mage::getModel('core/variable')->loadByCode('custom_variable_code')->getValue('plain');

注意:单个存储不显示变量范围的存储选择下拉列表。这个答案在技术上是不正确的,为了在有多家商店的情况下证明自己-->请参阅下面的@Mark van der Sanden答案,并给他一个投票。

不幸的是,所有其他答案都不是100%正确的。这样使用它(注意
setStoreId()
以获取正确存储视图的值):

或获取html值:

$value = Mage::getModel('core/variable')
    ->setStoreId(Mage::app()->getStore()->getId())
    ->loadByCode('variable_code')
    ->getValue('html');

如果未定义html值,
getValue()
在请求html值时返回文本值。

//要获取自定义变量的文本值:

Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('text');
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('html');
//要获取自定义变量的HTML值,请执行以下操作:

Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('text');
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('html');

//商店id设置为可为多个商店编辑的自定义变量。注意:一个自定义变量对于不同的商店可能有不同的值。

因此,要使用代码访问存储自定义变量的特定值
自定义变量

使用以下命令:

$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');

没有成功,但成功了:$angle=Mage::getModel('core/variable')->loadByCode('angle')->getData('store_plain_value');尝试从纯数据中获取getValue('text'),并为其获取getValue('html')html@mark-van der sanden更为正确,因为他尊重网站/视图的超负荷值。对于1.5.1.0和以前版本,这个答案似乎是正确的。从我看到的情况来看,这些变量对于Magento安装是全局的,并且没有任何方法来设置存储范围。@mark van der sanden更正确,因为考虑到值的网站/视图重载,这些变量的存储范围是如何设置的?这是新版本的吗?我使用的是1.5.1.0,System Config下拉列表中只有一个菜单项,您可以在其中添加这些项,使它们看起来像是全局项。保存自定义变量后,您可以使用表单上方的下拉列表选择商店视图。然后,您可以选择是使用默认值,还是指定存储特定值。因此,只有在保存变量后,才可以输入特定于存储的值。只要在CE 1.5.0.1中签入,存储下拉列表也在那里(确保定义了多个存储!)。好的,我只有一个存储,存储下拉列表从未显示。在这种情况下,现在不需要使用
setStoreId()
,但这样做肯定更好,以证明未来。