예제 #1
0
 /**
  * Prepare form
  *
  * @param DataForm $form
  * @param ModelCode|null $experimentCodeModel
  * @param string $formName
  * @return void
  */
 public function addGoogleoptimizerFields(DataForm $form, ModelCode $experimentCodeModel = null, $formName = '')
 {
     $fieldset = $form->addFieldset('googleoptimizer_fields', ['legend' => __('Google Analytics Content Experiments Code')]);
     $fieldset->addField('experiment_script', 'textarea', ['name' => 'experiment_script', 'label' => __('Experiment Code'), 'value' => $experimentCodeModel ? $experimentCodeModel->getExperimentScript() : '', 'class' => 'textarea googleoptimizer', 'required' => false, 'note' => __('Experiment code should be added to the original page only.'), 'data-form-part' => $formName]);
     $fieldset->addField('code_id', 'hidden', ['name' => 'code_id', 'value' => $experimentCodeModel ? $experimentCodeModel->getCodeId() : '', 'required' => false, 'data-form-part' => $formName]);
     $form->setFieldNameSuffix('google_experiment');
 }
 /**
  * Delete Product scripts after deleting product
  *
  * @param \Magento\Framework\Event\Observer $observer
  * @return $this
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     /** @var $product \Magento\Catalog\Model\Product */
     $product = $observer->getEvent()->getProduct();
     $this->_modelCode->loadByEntityIdAndType($product->getId(), \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_PRODUCT, $product->getStoreId());
     if ($this->_modelCode->getId()) {
         $this->_modelCode->delete();
     }
     return $this;
 }
예제 #3
0
 /**
  * Returns Code Model
  *
  * @return GoogleOptimizerCode|null
  * @throws NoSuchEntityException
  */
 public function getCode()
 {
     $code = null;
     $entity = $this->getEntity();
     if ($entity->getId()) {
         $this->codeModel->loadByEntityIdAndType($entity->getId(), GoogleOptimizerCode::ENTITY_TYPE_PAGE);
         $code = $this->codeModel;
     }
     return $code;
 }
예제 #4
0
파일: Delete.php 프로젝트: aiesh/magento2
 /**
  * Delete Product scripts after deleting product
  *
  * @param \Magento\Framework\Object $observer
  * @return $this
  */
 public function deleteCmsGoogleExperimentScript($observer)
 {
     /** @var $cmsPage \Magento\Cms\Model\Page */
     $cmsPage = $observer->getEvent()->getObject();
     $this->_modelCode->loadByEntityIdAndType($cmsPage->getId(), \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_PAGE);
     if ($this->_modelCode->getId()) {
         $this->_modelCode->delete();
     }
     return $this;
 }
예제 #5
0
파일: Delete.php 프로젝트: aiesh/magento2
 /**
  * Delete Product scripts after deleting product
  *
  * @param \Magento\Framework\Object $observer
  * @return $this
  */
 public function deleteCategoryGoogleExperimentScript($observer)
 {
     /** @var $category \Magento\Catalog\Model\Category */
     $category = $observer->getEvent()->getCategory();
     $this->_modelCode->loadByEntityIdAndType($category->getId(), \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_CATEGORY, $category->getStoreId());
     if ($this->_modelCode->getId()) {
         $this->_modelCode->delete();
     }
     return $this;
 }
 /**
  * Delete Product scripts after deleting product
  *
  * @param \Magento\Framework\Event\Observer $observer
  * @return $this
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     /** @var $cmsPage \Magento\Cms\Model\Page */
     $cmsPage = $observer->getEvent()->getObject();
     $this->_modelCode->loadByEntityIdAndType($cmsPage->getId(), \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_PAGE);
     if ($this->_modelCode->getId()) {
         $this->_modelCode->delete();
     }
     return $this;
 }
예제 #7
0
 /**
  * Load scripts by entity and store
  *
  * @param \Magento\GoogleOptimizer\Model\Code $object
  * @param int $entityId
  * @param string $entityType
  * @param int $storeId
  * @return $this
  */
 public function loadByEntityType($object, $entityId, $entityType, $storeId)
 {
     $connection = $this->getConnection();
     $select = $connection->select()->from(['t_def' => $this->getMainTable()], ['entity_id', 'entity_type', 'experiment_script', 'code_id'])->where('t_def.entity_id=?', $entityId)->where('t_def.entity_type=?', $entityType)->where('t_def.store_id IN (0, ?)', $storeId)->order('t_def.store_id DESC')->limit(1);
     $data = $connection->fetchRow($select);
     if ($data) {
         $object->setData($data);
     }
     $this->_afterLoad($object);
     return $this;
 }
예제 #8
0
 /**
  * Get loaded Code object by Entity
  *
  * @param \Magento\Framework\Model\AbstractModel $entity
  * @return \Magento\GoogleOptimizer\Model\Code
  */
 public function getCodeObjectByEntity(\Magento\Framework\Model\AbstractModel $entity)
 {
     $this->_entity = $entity;
     $this->_checkEntityIsEmpty();
     if ($entity instanceof \Magento\Cms\Model\Page) {
         $this->_codeModel->loadByEntityIdAndType($entity->getId(), $this->_getEntityType());
     } else {
         $this->_codeModel->loadByEntityIdAndType($entity->getId(), $this->_getEntityType(), $entity->getStoreId());
     }
     return $this->_codeModel;
 }
예제 #9
0
 /**
  * Delete model code
  *
  * @return void
  * @throws \InvalidArgumentException
  */
 protected function _deleteCode()
 {
     $this->_modelCode->delete();
 }