Esempio n. 1
0
 /**
  * Add data about search criteria to object state
  *
  * @param   EntityAttribute $attribute
  * @param   mixed $value
  * @return  $this
  */
 protected function _addSearchCriteria($attribute, $value)
 {
     $name = $attribute->getStoreLabel();
     if (is_array($value)) {
         if (isset($value['from']) && isset($value['to'])) {
             if (!empty($value['from']) || !empty($value['to'])) {
                 if (isset($value['currency'])) {
                     /** @var $currencyModel Currency */
                     $currencyModel = $this->_currencyFactory->create()->load($value['currency']);
                     $from = $currencyModel->format($value['from'], array(), false);
                     $to = $currencyModel->format($value['to'], array(), false);
                 } else {
                     $currencyModel = null;
                 }
                 if (strlen($value['from']) > 0 && strlen($value['to']) > 0) {
                     // -
                     $value = sprintf('%s - %s', $currencyModel ? $from : $value['from'], $currencyModel ? $to : $value['to']);
                 } elseif (strlen($value['from']) > 0) {
                     // and more
                     $value = __('%1 and greater', $currencyModel ? $from : $value['from']);
                 } elseif (strlen($value['to']) > 0) {
                     // to
                     $value = __('up to %1', $currencyModel ? $to : $value['to']);
                 }
             } else {
                 return $this;
             }
         }
     }
     if (($attribute->getFrontendInput() == 'select' || $attribute->getFrontendInput() == 'multiselect') && is_array($value)) {
         foreach ($value as $key => $val) {
             $value[$key] = $attribute->getSource()->getOptionText($val);
             if (is_array($value[$key])) {
                 $value[$key] = $value[$key]['label'];
             }
         }
         $value = implode(', ', $value);
     } elseif ($attribute->getFrontendInput() == 'select' || $attribute->getFrontendInput() == 'multiselect') {
         $value = $attribute->getSource()->getOptionText($value);
         if (is_array($value)) {
             $value = $value['label'];
         }
     } elseif ($attribute->getFrontendInput() == 'boolean') {
         $value = $value == 1 ? __('Yes') : __('No');
     }
     $this->_searchCriterias[] = array('name' => $name, 'value' => $value);
     return $this;
 }
 /**
  * Update attribute default value
  *
  * @param EntityAttribute|AbstractModel $object
  * @param int|string $optionId
  * @param int $intOptionId
  * @param array $defaultValue
  * @return void
  */
 protected function _updateDefaultValue($object, $optionId, $intOptionId, &$defaultValue)
 {
     if (in_array($optionId, $object->getDefault())) {
         $frontendInput = $object->getFrontendInput();
         if ($frontendInput === 'multiselect') {
             $defaultValue[] = $intOptionId;
         } elseif ($frontendInput === 'select') {
             $defaultValue = [$intOptionId];
         }
     }
 }