Ajouter un attribut de catégorie supplémentaire sous l'onglet d'informations générales

10

J'essaie d'ajouter une catégorie supplémentaire attrbiute à l'onglet d'informations générales, j'ai essayé d'ajouter cela en utilisant le code suivant,

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')}`;
");

Cela fonctionne très bien, mais cela ajoute un onglet d'informations supplémentaires nommé Generaljuste à droite general infomation tabJ'ai essayé de l'ajouter au premier onglet en utilisant attributeGroupIdla valeur 4, mais après le test, il ne fait que planter le site.

Toute idée comment puis-je ajouter cet attribut au premier onglet.

ravisoni
la source

Réponses:

7

Essayez-le comme ceci:

$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 doit être une instance de Mage_Catalog_Model_Resource_Setup.

Hors sujet un peu: je recommande d'ajouter ce script dans un fichier de mise à jour de l'un de vos modules au lieu de créer une instance de Mage::app()et de l'exécuter à la volée. Si vous le mettez dans un script de mise à niveau, il est portable pour d'autres instances.

Marius
la source
Merci pour votre réponse mais après avoir exécuté cela, je reçois une erreur de serveur sur le site.
ravisoni
Quelle erreur obtenez vous? J'ai édité la réponse. C'est peut-être le problème.
Marius
les fichiers journaux ne contiennent rien du fichier de rapport. "Table de base ou vue introuvable: 1146 La table 'wwwinsta_Joyevincent.catalog_category_entity_tinyint' n'existe pas"
ravisoni
Okzz, cela a fonctionné en ajoutant la date attr dans l'onglet d'informations générales, mais j'essaie d'ajouter un type oui / non attr, une idée pour cela?
ravisoni
2
Je pense que vous devriez mieux faire un post avec toutes les questions que vous avez à ce sujet. Il est inutile d'en discuter sur la question de quelqu'un d'autre parce que c'est un peu hors sujet.
Marius
5

J'ai réussi à le faire fonctionner comme prévu.

$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'
));

Merci

ravisoni
la source
0

Vous pouvez personnaliser l'attribut oui / non à la section de catégorie à l'aide du code suivant.

$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',

));

Veuillez consulter mon tutoriel pour une explication étape par étape et la structure du fichier. http://www.pearlbells.co.uk/add-custom-attribute-dropdown-category-section-magento/

Liz Eipe C
la source