Пример #1
0
 /**
  * Block constructor.
  *
  * @param \Magento\Backend\Block\Template\Context          $context        Templating context.
  * @param \Magento\Framework\Data\Form\Element\Factory     $elementFactory Form element factory.
  * @param \Magento\Rule\Block\Conditions                   $conditions     Rule conditions block.
  * @param \Smile\ElasticsuiteCatalogRule\Model\RuleFactory $ruleFactory    Search rule factory.
  * @param array                                            $data           Additional data.
  */
 public function __construct(\Magento\Backend\Block\Template\Context $context, \Magento\Framework\Data\Form\Element\Factory $elementFactory, \Magento\Rule\Block\Conditions $conditions, \Smile\ElasticsuiteCatalogRule\Model\RuleFactory $ruleFactory, array $data = [])
 {
     $this->elementFactory = $elementFactory;
     $this->conditions = $conditions;
     $this->rule = $ruleFactory->create();
     parent::__construct($context, $data);
 }
Пример #2
0
 /**
  * {@inheritDoc}
  */
 public function afterLoad($object)
 {
     $attributeCode = $this->getAttributeCode();
     $attributeData = $object->getData($attributeCode);
     if (!is_object($attributeData)) {
         $rule = $this->ruleFactory->create();
         $rule->setStoreId($object->getStoreId());
         if ($attributeData !== null && is_string($attributeData)) {
             $attributeData = unserialize($attributeData);
         }
         if ($attributeData !== null && is_array($attributeData)) {
             $rule->getConditions()->loadArray($attributeData);
         }
         $object->setData($attributeCode, $rule);
     }
     return $this;
 }
Пример #3
0
 /**
  * {@inheritDoc}
  */
 public function execute()
 {
     $conditionId = $this->getRequest()->getParam('id');
     $typeData = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
     $className = $typeData[0];
     $rule = $this->ruleFactory->create();
     $model = $this->_objectManager->create($className)->setId($conditionId)->setType($className)->setRule($rule)->setPrefix('conditions');
     $model->setElementName($this->getRequest()->getParam('element_name'));
     if (!empty($typeData[1])) {
         $model->setAttribute($typeData[1]);
     }
     $result = '';
     if ($model instanceof AbstractCondition) {
         $model->setJsFormObject($this->getRequest()->getParam('form'));
         $result = $model->asHtmlRecursive();
     }
     $this->getResponse()->setBody($result);
 }