【发布时间】:2014-04-11 11:47:48
【问题描述】:
我正在寻找一种方法来创建多语言的 magento 属性选项,用于多种语言。
假设我确实有商店视图名称“德语”和“英语”。 我确实使用以下方式检索商店语言代码(必须在商店视图配置页面上设置每种语言):
$storelist = Mage::app()->getStores();
$storelang = array();
foreach ($storelist as $id => $s) {
$storelang[$id] = substr(Mage::getStoreConfig('general/locale/code', $id), 0, 2);
}
这样我确实创建了属性选项(属性确实已经存在):
function addAttributeValue($arg_attribute, $arg_value) {
$attribute_model = Mage::getModel('eav/entity_attribute');
$attribute_code = $attribute_model->getIdByCode('catalog_product', $arg_attribute);
$attribute = $attribute_model->load($attribute_code);
if (!attributeValueExists($arg_attribute, $arg_value)) {
$value['option'] = array($arg_value, $arg_value);
$result = array('value' => $value);
$attribute->setData('option', $result);
$attribute->save();
echo "Attribute '" . $arg_attribute . "' with
option '" . $arg_value . "' saved.<br />";
}
但是第二语言在哪里发挥作用?现在只有默认值/默认值被填充到数据库中。
我想为每种语言准备一个循环,但我不知道该语言的正确“切换”。
在创建产品时,不是属性选项,有一种方法可以根据语言设置所有产品字段
$Product->setStoreId($lang_value);
但我不确定属性选项的这一点。 各位大侠能给个提示吗?
谢谢。
【问题讨论】:
-
尝试从管理表单中添加一个选项,并在
Mage_Adminhtml_Catalog_Product_AttributeController::saveAction中添加此行echo "<pre>"; print_r($model);exit;就在$model->save()之前。这将向您展示属性模型实例在保存之前的样子。在打印的对象中查找成员option,您将了解如何构建选项并通过代码保存它们。
标签: magento attributes add multilingual entity-attribute-value