本文整理汇总了PHP中Mage_Catalog_Model_Resource_Eav_Attribute::getSource方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Catalog_Model_Resource_Eav_Attribute::getSource方法的具体用法?PHP Mage_Catalog_Model_Resource_Eav_Attribute::getSource怎么用?PHP Mage_Catalog_Model_Resource_Eav_Attribute::getSource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Catalog_Model_Resource_Eav_Attribute
的用法示例。
在下文中一共展示了Mage_Catalog_Model_Resource_Eav_Attribute::getSource方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _getSearchParam
/**
* Retrieve filter array
*
* @param Enterprise_Search_Model_Resource_Collection $collection
* @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute
* @param string|array $value
* @return array
*/
protected function _getSearchParam($collection, $attribute, $value)
{
if (empty($value) || isset($value['from']) && empty($value['from']) && isset($value['to']) && empty($value['to'])) {
return false;
}
$localeCode = Mage::app()->getStore()->getConfig(Mage_Core_Model_Locale::XML_PATH_DEFAULT_LOCALE);
$languageCode = Mage::helper('enterprise_search')->getLanguageCodeByLocaleCode($localeCode);
$languageSuffix = $languageCode ? '_' . $languageCode : '';
$field = $attribute->getAttributeCode();
$backendType = $attribute->getBackendType();
$frontendInput = $attribute->getFrontendInput();
if ($frontendInput == 'multiselect') {
$field = 'attr_multi_' . $field;
} elseif ($frontendInput == 'select' || $frontendInput == 'boolean') {
$field = 'attr_select_' . $field;
} elseif ($backendType == 'decimal') {
$field = 'attr_decimal_' . $field;
} elseif ($backendType == 'datetime') {
$field = 'attr_datetime_' . $field;
if (is_array($value)) {
foreach ($value as &$val) {
if (!is_empty_date($val)) {
$date = new Zend_Date($val, Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT));
$val = $date->toString(Zend_Date::ISO_8601) . 'Z';
}
}
} else {
if (!is_empty_date($value)) {
$date = new Zend_Date($value, Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT));
$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());
foreach ($value as &$val) {
$val = $attribute->getSource()->getOptionText($val);
}
}
if (empty($value)) {
return array();
} else {
return array($field => $value);
}
}
示例2: _getAttributeOptionIdByValue
private function _getAttributeOptionIdByValue(Mage_Catalog_Model_Resource_Eav_Attribute $attribute, $value)
{
$options = $attribute->getSource()->getAllOptions(false);
foreach ($options as $option) {
if ($option['label'] == $value) {
return $option['value'];
}
}
return false;
}
示例3: getInsertValues
/**
* Retrieve data to be insterted after processing attribute
*
* @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute
* @param int $storeId
* @return array
*/
protected function getInsertValues($attribute, $storeId)
{
$options = array();
if ($attribute->getSourceModel()) {
$options = $attribute->getSource()->getAllOptions();
} else {
$collection = Mage::getResourceModel('eav/entity_attribute_option_collection')->setStoreFilter($storeId)->setPositionOrder('asc')->setAttributeFilter($attribute->getId())->load();
$options = $collection->toOptionArray();
}
$data = array();
foreach ($options as $option) {
// Generate url value
$urlValue = $this->getHelper()->transliterate($option['label']);
// Check if this url key is taken and add -{count}
$count = 0;
$origUrlValue = $urlValue;
do {
$found = false;
foreach ($data as $line) {
if ($line['url_value'] == $urlValue) {
$found = true;
}
}
if ($found) {
$urlValue = $origUrlValue . '-' . ++$count;
}
} while ($found);
$data[] = array('attribute_code' => $attribute->getAttributeCode(), 'attribute_id' => $attribute->getId(), 'store_id' => $storeId, 'option_id' => $option['value'], 'url_key' => $this->getHelper()->transliterate($attribute->getStoreLabel($storeId)), 'url_value' => $urlValue);
}
return $data;
}