在Magento 1.8.1中添加类别属性

时间:2014-04-08 16:08:26

标签: magento magento-1.8

我目前正在尝试将新的类别属性添加到Magento 1.8.1中的类别管理界面,但是我遇到了一些问题。

我能找到的唯一代码示例包括mysql4,但我认为这已经退役了?请允许任何人指出我们正确的方向。

我可以在Config>下看到我的扩展程序高级和core_resources表。但不是在网站的前端。

4 个答案:

答案 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();

?>