/** * Retrieve filter array * * @deprecated since 1.12.0.0 * * @param Enterprise_Search_Model_Resource_Collection $collection * @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute * @param string|array $value * @return array */ public function getSearchParam($collection, $attribute, $value) { if (empty($value) || isset($value['from']) && empty($value['from']) && isset($value['to']) && empty($value['to'])) { return false; } $locale = Mage::app()->getStore()->getConfig(Mage_Core_Model_Locale::XML_PATH_DEFAULT_LOCALE); $languageSuffix = $this->getLanguageSuffix($locale); $field = $attribute->getAttributeCode(); $backendType = $attribute->getBackendType(); $frontendInput = $attribute->getFrontendInput(); if ($frontendInput == 'multiselect') { $field = 'attr_multi_' . $field; } elseif ($backendType == 'decimal') { $field = 'attr_decimal_' . $field; } elseif ($frontendInput == 'select' || $frontendInput == 'boolean') { $field = 'attr_select_' . $field; } elseif ($backendType == 'datetime') { $field = 'attr_datetime_' . $field; $format = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT); if (is_array($value)) { foreach ($value as &$val) { if (!is_empty_date($val)) { $date = new Zend_Date($val, $format); $val = $date->toString(Zend_Date::ISO_8601) . 'Z'; } } } else { if (!is_empty_date($value)) { $date = new Zend_Date($value, $format); $value = $date->toString(Zend_Date::ISO_8601) . 'Z'; } } } elseif (in_array($backendType, $this->_textFieldTypes)) { $field .= $languageSuffix; } if ($attribute->usesSource()) { $attribute->setStoreId(Mage::app()->getStore()->getId()); } return array($field => $value); }
/** * Retrieve data to be inserted * * @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute * @return array */ protected function getInsertValues($attribute) { $data = array(); foreach ($this->getAllStoresIds() as $storeId) { $attribute->setStoreId($storeId); if ($attribute->getSourceModel()) { $options = $attribute->getSource()->getAllOptions(false); } else { $collection = Mage::getResourceModel('eav/entity_attribute_option_collection')->setStoreFilter($storeId)->setPositionOrder('asc')->setAttributeFilter($attribute->getId())->load(); $options = $collection->toOptionArray(); } foreach ($options as $option) { // Generate url value $urlValue = $this->getHelper()->transliterate($option['label']); $urlKey = $this->getHelper()->transliterate($attribute->getStoreLabel($storeId)); // Check if this url value is taken and add -{count} $countValue = 0; $origUrlValue = $urlValue; do { $found = false; foreach ($data as $line) { if ($line['store_id'] == $storeId && $line['url_value'] == $urlValue) { $urlValue = $origUrlValue . '-' . ++$countValue; $found = true; } } } while ($found); // Check if this url key is taken and add -{count} $countKey = 0; $origUrlKey = $urlKey; do { $found = false; if ($this->urlKeyExists($attribute->getId(), $urlKey)) { $urlKey = $origUrlKey . '-' . ++$countKey; $found = true; } } while ($found); $data[] = array('attribute_code' => $attribute->getAttributeCode(), 'attribute_id' => $attribute->getId(), 'store_id' => $storeId, 'option_id' => $option['value'], 'url_key' => $urlKey, 'url_value' => $urlValue); } } return $data; }