Magento: как мне получить доступ к пользовательским переменным в PHP?
Я знаю "Пользовательские переменные" и как их можно использовать с {{}} скобками в шаблонах электронной почты, а также в статических блоках.
Однако я хочу использовать их в шаблоне кода, то есть view.phtml.
Я хочу иметь доступ к "переменному равному значению" для получения значения преобразования, то есть числа/строки как числа для заданного "кода переменной".
Ответы
Ответ 1
Некоторое время это делалось для создания различных сообщений, которые можно редактировать через интерфейс администратора, поэтому мне не нужно копать код, когда меняется момент момента.
Чтобы получить доступ к значению plain для пользовательской переменной с кодом custom_variable_code
, используйте следующее:
Mage::getModel('core/variable')->loadByCode('custom_variable_code')->getValue('plain');
ПРИМЕЧАНИЕ. В одном хранилище не отображается раскрывающееся меню выбора хранилища для области переменных. Этот ответ не является технически корректным, чтобы убедиться в том, что у вас есть несколько магазинов → Пожалуйста, см. @Mark van der Sanden ниже и дайте ему возвышение.
Ответ 2
К сожалению, все остальные ответы не на 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 не определено, getValue()
возвращает текстовое значение, если вы запрашиваете значение html.
Ответ 3
Перезагрузите систему почти до спасения. Думал, что это будет:
Установка глобальной переменной в Magento, путь к графическому интерфейсу?
Но это было не так:
$angle = Mage::getModel('core/variable')->loadByCode('angle')->getData('store_plain_value');
Ответ 4
Единственный способ, с помощью которого я вижу, что вы можете добиться этого, имея метод в блоке шаблонов, который выведет необходимый результат.
Например, скажем, в шаблоне view.phtml у вас есть следующий код:
<div id="title_container">
<h2><?= $this->getTitle(); ?></h2>
</div>
Функция может представлять ваш код переменной, и любая логика, которая связана с тем, что отображается в заголовке, должна быть помещена в блок.
Просто для разъяснения ради блока является переменная $this
Если вы не знаете, что такое фактическое имя класса вашего блока, вы можете сделать что-то вроде:
Mage::log(get_class($this));
в var/log/system.log вы напечатаете класс блока этого шаблона.
Это лучший способ.
HTH:)
Ответ 5
//Чтобы получить значение 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');
//Идентификатор магазина устанавливается как настраиваемые переменные, которые можно редактировать для нескольких магазинов
Ответ 6
Примечание. Пользовательская переменная может иметь разные значения для разных магазинов.
Итак, чтобы получить доступ к сохранить определенное значение для настраиваемой переменной с кодом 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');