在常规信息选项卡下添加额外的类别属性


10

我正在尝试向常规信息选项卡添加一个额外的类别属性,我尝试使用以下代码添加该属性,

require_once("app/Mage.php");
Mage::app('default');
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

$installer = new Mage_Eav_Model_Entity_Setup('core_setup');
$entityTypeId     = $installer->getEntityTypeId('catalog_category');
$attributeSetId   = $installer->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $installer->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);


$installer->addAttribute('catalog_category', 'nav_left',  array(
    'type'     => 'tinyint',
    'label'    => 'Show in left navgigation',
    'input'    => 'boolean',
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => false,
    'default'           => 0
));

$installer->addAttributeToGroup(
    $entityTypeId,
    $attributeSetId,
    $attributeGroupId,
    'nav_left',
    '11'

//last Magento's attribute position in General tab is 10
);

$attributeId = $installer->getAttributeId($entityTypeId, 'nav_left');

$installer->run("
INSERT INTO `{$installer->getTable('catalog_category_entity_int')}`
(`entity_type_id`, `attribute_id`, `entity_id`, `value`)
    SELECT '{$entityTypeId}', '{$attributeId}', `entity_id`, '1'
        FROM `{$installer->getTable('catalog_category_entity')}`;
");

这样做工作正常,但是在名称General的右边添加了一个附加的信息选项卡,general infomation tab我尝试使用attributeGroupId设置为4 将其添加到第一个选项卡,但是经过测试,它只是使站点崩溃。

任何想法我怎么能将该属性添加到第一个选项卡。

Answers:


7

像这样尝试:

$installer->addAttribute('catalog_category', 'nav_left', array(
    'group'         => 'General Information',
    'type'     => 'int',
    'label'    => 'Show in left navgigation',
    'input'    => 'boolean',
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => false,
    'default'           => 0
)); 

EDIT
$installer必须是的实例Mage_Catalog_Model_Resource_Setup

稍微有点题外话:我建议将此脚本添加到您的模块之一的更新文件中,而不是动态创建实例Mage::app()并运行。如果将其放在升级脚本中,则可以移植到其他实例。


感谢您的回答,但是运行此命令后,我在网站上收到服务器错误。
拉维索尼

你遇到了什么错误?我编辑了答案。也许这就是问题所在。
马吕斯

日志文件没有报告文件所说的内容。“找不到基本表或视图:1146表'wwwinsta_Joyevincent.catalog_category_entity_tinyint'不存在”
ravisoni

好的,这可以在常规信息选项卡中添加日期属性,但是我试图添加是/否类型属性对此有任何想法吗?
拉维索尼

2
我认为您最好将所有与此相关的问题发布。在别人的问题上讨论它是没有意义的,因为这有点题外话。
马里斯(Marius)

5

我已经按预期的方式管理了它的工作。

$installer->addAttribute('catalog_category', 'left_nav',  array(
    'group'    => 'General Information',
    'type'     => 'int',
    'label'    => 'Show in left navigation',
    'input'    => 'select',
    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
    'visible'           => true,
    'required'          => false,
    'user_defined'      => false,
    'default'           => 0,
    'source' => 'eav/entity_attribute_source_boolean'
));

谢谢


0

您可以使用以下代码为类别部分自定义“是/否”属性。

$this->addAttribute(Mage_Catalog_Model_Category::ENTITY, 'featured_product', array(
'group'         => 'General Information',
'input'         => 'select',
'type'          => 'text',
'label'         => 'Featured Product',
'backend'       => '',
'visible'       => true,
'required'      => false,
'visible_on_front' => true,
'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'source' => 'eav/entity_attribute_source_boolean',

));

请参考我的教程以获取逐步说明和文件结构。 http://www.pearlbells.co.uk/add-custom-attribute-dropdown-category-section-magento/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.