Подтвердить что ты не робот

Magento: как мне получить доступ к пользовательским переменным в PHP?

Я знаю "Пользовательские переменные" и как их можно использовать с {{}} скобками в шаблонах электронной почты, а также в статических блоках.

Однако я хочу использовать их в шаблоне кода, то есть view.phtml.

Я хочу иметь доступ к "переменному равному значению" для получения значения преобразования, то есть числа/строки как числа для заданного "кода переменной".

4b9b3361

Ответ 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.

Ответ 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');