public function getCondition() { $condition = parent::getCondition(); /**************CONDITION MIGRATION FROM 2.X VERSIONS*******************/ if (count($condition) === 1) { if (empty($condition[1]['output']['static']) && empty($condition[1]['modification']['value'])) { $baseAttr = $this->getBaseAttr(); if (!empty($baseAttr)) { $condition[1]['output'] = array(array('attribute' => $baseAttr)); } $transform = $this->getTransform(); if (!empty($transform)) { $condition[1]['modification']['value'] = $transform; } } } foreach ($condition as &$record) { if (isset($record['output']['static']) && isset($record['output']['attribute'])) { $newOutput = array(); foreach ($record['output']['attribute'] as $attr) { $newOutput[] = array('attribute' => $attr); } if (!empty($record['output']['static'])) { $newOutput[] = array('static' => $record['output']['static']); } $record['output'] = $newOutput; } } /**********************************************************************/ return $condition; }
public function getCondition() { $ret = array(); if ($this->_oldVersionConditon()) { // $this->cond_advanced OLD FIELD, COMPATIBLITY FIX $ind = 1; if (isset($this->cond_advanced['attr'])) { foreach ($this->cond_advanced['attr'] as $order => $code) { $ret[$ind] = array('condition' => array('attribute' => array(), 'operator' => array(), 'value' => array(), 'type' => array(), 'other' => array())); $attribute = Mage::getResourceModel('catalog/product')->getAttribute($code); $ret[$ind]['condition']['attribute'][$order] = $this->cond_advanced['attr'][$order]; $ret[$ind]['condition']['operator'][$order] = $this->cond_advanced['op'][$order]; $ret[$ind]['condition']['type'][$order] = self::$_TYPE_ATTRIBUTE; $value = $this->cond_advanced['val'][$order]; if ($attribute && $attribute->getFrontendInput() == 'select') { $allOptions = $attribute->getSource()->getAllOptions(); $options = array(); foreach ($allOptions as $option) { $options[$option['value']] = $option['label']; } if (in_array($value, $options)) { $ind = array_search($value, $options); $value = $ind; } } $ret[$ind]['condition']['value'][$order] = $value; $ind++; } } } else { $ret = parent::getCondition(); } return $ret; }