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.

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.


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


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/

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.