2016-04-08 4 views

ответ

0
// To get the TEXT value of the custom variable: 
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('text'); 

// To get the HTML value of the custom variable: 
Mage::getModel('core/variable')->setStoreId(Mage::app()->getStore()->getId())->loadByCode('custom_variable_code')->getValue('html'); 
+0

Спасибо за ур ответ. Я попробовал и получил следующую ошибку. Ошибка нечистоты: класс «Маг» не найден в ... –

+0

Я думаю, что вы делаете это во внешнем файле. добавьте следующий код в начало файла. 'require_once ('app/Mage.php'); umask (0); Mage :: app(); ' –

+1

Этот ответ предназначен для Magento1, а не Magento2 по запросу. – Maddy

5

для этого вы должны использовать объект диспетчера и модель нагрузки, используя свой код переменной

После этого вы можете получить его простое значение, HTML значение и его имя тоже.

<?php 
$model = $this->_objectManager->get('Magento\Variable\Model\Variable')->loadByCode('test_var'); 
$plain_value = $model->getPlainValue(); 
$html_value = $model->getHtmlValue(); 
$name = $model->getName(); 
?> 
+1

Использование диспетчера объектов, как это, как правило, неодобрительно. Вероятно, вы должны записать это в блочной логике и выполнить инъекцию зависимости с помощью геттера. Вот запись о том, как это сделать. http://devdocs.magento.com/guides/v2.0/extension-dev-guide/depend-inj.html#injection-types-used-in-magento – espradley

+0

Чтобы добавить комментарий к espradley, вы ссылаетесь здесь для получения дополнительной информации: http://magento.stackexchange.com/questions/117098/magento-2-to-use-or-not-to-use-the-objectmanager-directly – 10basetom

0

«Чистый» способ - сделать это с помощью инъекции зависимости.

Создайте свой собственный блок:

namespace MyCompany\MyBlockName\Block; 

class MyBlock extends \Magento\Framework\View\Element\Template { 

    protected $_varFactory; 

    public function __construct(
     \Magento\Variable\Model\VariableFactory $varFactory, 
     \Magento\Framework\View\Element\Template\Context $context) 
    { 
     $this->_varFactory = $varFactory; 
     parent::__construct($context); 
    } 

    public function getVariableValue() { 
     $var = $this->_varFactory->create(); 
     $var->loadByCode('test_var'); 
     return $var->getValue('text'); 
    } 

} 

и использовать его в файле .phtml:

<?php echo $this->getVariableValue() ?> 
1

Пожалуйста, используйте этот код:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 
    $variable = $objectManager->create('Magento\Variable\Model\Variable'); 

    $value = $variable->loadByCode('variableCode')->getPlainValue(); 
    echo $value; 
Смежные вопросы