Esempio n. 1
0
 /**
  * @return \Magento\Framework\Controller\ResultInterface
  */
 public function execute()
 {
     $response = new DataObject();
     $response->setError(false);
     $attributeCode = $this->getRequest()->getParam('attribute_code');
     $frontendLabel = $this->getRequest()->getParam('frontend_label');
     $attributeCode = $attributeCode ?: $this->generateCode($frontendLabel[0]);
     $attributeId = $this->getRequest()->getParam('attribute_id');
     $attribute = $this->_objectManager->create('Magento\\Catalog\\Model\\ResourceModel\\Eav\\Attribute')->loadByCode($this->_entityTypeId, $attributeCode);
     if ($attribute->getId() && !$attributeId) {
         $message = strlen($this->getRequest()->getParam('attribute_code')) ? __('An attribute with this code already exists.') : __('An attribute with the same code (%1) already exists.', $attributeCode);
         $this->setMessageToResponse($response, [$message]);
         $response->setError(true);
         $response->setProductAttribute($attribute->toArray());
     }
     if ($this->getRequest()->has('new_attribute_set_name')) {
         $setName = $this->getRequest()->getParam('new_attribute_set_name');
         /** @var $attributeSet \Magento\Eav\Model\Entity\Attribute\Set */
         $attributeSet = $this->_objectManager->create('Magento\\Eav\\Model\\Entity\\Attribute\\Set');
         $attributeSet->setEntityTypeId($this->_entityTypeId)->load($setName, 'attribute_set_name');
         if ($attributeSet->getId()) {
             $setName = $this->_objectManager->get('Magento\\Framework\\Escaper')->escapeHtml($setName);
             $this->messageManager->addError(__('An attribute set named \'%1\' already exists.', $setName));
             $layout = $this->layoutFactory->create();
             $layout->initMessages();
             $response->setError(true);
             $response->setHtmlMessage($layout->getMessagesBlock()->getGroupedHtml());
         }
     }
     return $this->resultJsonFactory->create()->setJsonData($response->toJson());
 }
 /**
  * @return \Magento\Framework\Controller\Result\Json
  */
 public function execute()
 {
     $response = new DataObject();
     $id = $this->getRequest()->getParam('id');
     if (intval($id) > 0) {
         $product = $this->productRepository->getById($id);
         $response->setId($id);
         $response->addData($product->getData());
         $response->setError(0);
     } else {
         $response->setError(1);
         $response->setMessage(__('We can\'t retrieve the product ID.'));
     }
     /** @var \Magento\Framework\Controller\Result\Json $resultJson */
     $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
     $resultJson->setData($response->toArray());
     return $resultJson;
 }
Esempio n. 3
0
 /**
  * Customer address validation.
  *
  * @param \Magento\Framework\DataObject $response
  * @return void
  */
 protected function _validateCustomerAddress($response)
 {
     $addresses = $this->getRequest()->getPost('address');
     if (!is_array($addresses)) {
         return;
     }
     foreach (array_keys($addresses) as $index) {
         if ($index == '_template_') {
             continue;
         }
         $addressForm = $this->_formFactory->create('customer_address', 'adminhtml_customer_address');
         $requestScope = sprintf('address/%s', $index);
         $formData = $addressForm->extractData($this->getRequest(), $requestScope);
         $errors = $addressForm->validateData($formData);
         if ($errors !== true) {
             $messages = $response->hasMessages() ? $response->getMessages() : [];
             foreach ($errors as $error) {
                 $messages[] = $error;
             }
             $response->setMessages($messages);
             $response->setError(1);
         }
     }
 }