我目前正在尝试将新的类别属性添加到Magento 1.8.1中的类别管理界面,但是我遇到了一些问题。
我能找到的唯一代码示例包括mysql4,但我认为这已经退役了?请允许任何人指出我们正确的方向。
我可以在Config>下看到我的扩展程序高级和core_resources表。但不是在网站的前端。
答案 0 :(得分:16)
我们最近用1.8.2.0尝试了这个。您不需要创建模块只是为了添加类别属性一次。通过这么多文件 cruft 来安装一次这样的东西似乎是一种浪费。
类别属性一旦安装就会永久保留,所以对我们来说更好的方法就是使用一次性脚本。在magento root保存这个。
<?php
require_once "app/Mage.php";
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
$installer = new Mage_Sales_Model_Mysql4_Setup;
// change details below:
$attribute = array(
'type' => 'int',
'label'=> 'Your attribute label',
'input' => 'text',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => "",
'group' => "General Information"
);
$installer->addAttribute('catalog_category', 'your_attribute_code', $attribute);
$installer->endSetup();
将其另存为add_category_attribute.php
或其他令您难忘的内容。
您可以使用浏览器访问此文件,也可以使用php-cli
运行此文件:
php -f add_category_attribute.php
祝你好运。
答案 1 :(得分:3)
将文件名从mysql4-install-0.0.1.php
更改为install-0.0.1.php
答案 2 :(得分:2)
@ h3nr1ke您可以通过以下方式获取属性:
$category = Mage::registry('current_category');
if ($category){
$value = $category->getData('YOUR_CUSTOM_ATTRIBUTE_CODE');
}
答案 3 :(得分:0)
在magento根文件夹中运行此脚本以创建属性
<?php
require_once('app/Mage.php');
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
$installer = new Mage_Eav_Model_Entity_Setup('core_setup');
$installer->startSetup();
$entityTypeId = $installer->getEntityTypeId('catalog_category');
$attributeSetId = $installer->getDefaultAttributeSetId($entityTypeId);
if (!$installer->getAttributeId($entityTypeId, 'shipping_content')) {
$installer->addAttribute('catalog_category', 'shipping_content', array(
'type' => 'text',
'backend' => '',
'frontend' => '',
'label' => 'Short description',
'input' => 'textarea',
'class' => '',
'source' => '',
'global' => '0',
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => true,
'used_in_product_listing' => false,
'unique' => false,
'wysiwyg_enabled' => true,
'apply_to' => '',
'is_configurable' => true
));
$installer->updateAttribute($entityTypeId, 'shipping_content', 'is_wysiwyg_enabled', 1);
$installer->updateAttribute($entityTypeId, 'shipping_content', 'is_html_allowed_on_front', 1);
}
$installer->endSetup();
?>
删除类别属性
<?php
require_once('app/Mage.php');
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
$installer = new Mage_Sales_Model_Mysql4_Setup;
$installer->startSetup();
$installer->removeAttribute('catalog_category', 'shipping_content');
$installer->endSetup();
?>