Fügen Sie auf der Registerkarte "Allgemeine Informationen" ein zusätzliches Kategorieattribut hinzu


10

Ich versuche, eine zusätzliche Kategorie attrbiute zur Registerkarte "Allgemeine Informationen" hinzuzufügen. Ich habe versucht, diese mit dem folgenden Code hinzuzufügen:

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

Dies funktioniert einwandfrei, aber dies fügt eine zusätzliche Informationsregisterkarte mit dem Namen Generalrechts von hinzu. general infomation tabIch habe versucht, sie mit der attributeGroupIdEinstellung 4 zur ersten Registerkarte hinzuzufügen , aber nach dem Testen stürzt die Site nur ab.

Irgendeine Idee, wie ich dieses Attribut zur ersten Registerkarte hinzufügen kann.

Antworten:


7

Versuchen Sie es so:

$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 muss eine Instanz von sein Mage_Catalog_Model_Resource_Setup.

Ein bisschen abseits des Themas: Ich empfehle, dieses Skript in eine Aktualisierungsdatei eines Ihrer Module einzufügen, anstatt eine Instanz zu erstellen Mage::app()und es "on the fly" auszuführen. Wenn Sie es in ein Upgrade-Skript einfügen, kann es auf andere Instanzen übertragen werden.


Vielen Dank für Ihre Antwort, aber nachdem ich dies ausgeführt habe, erhalte ich einen Serverfehler auf der Site.
Ravisoni

Welchen Fehler bekommst du? Ich habe die Antwort bearbeitet. Vielleicht ist das das Problem.
Marius

Die Protokolldateien enthalten nichts, was in der Berichtsdatei angegeben ist. "Basistabelle oder Ansicht nicht gefunden: 1146 Tabelle 'wwwinsta_Joyevincent.catalog_category_entity_tinyint' existiert nicht"
Ravisoni

Okzz, das hat funktioniert, indem ich das Datum attr auf der Registerkarte "Allgemeine Informationen" hinzugefügt habe, aber ich versuche, ein Ja / Nein-Typattr hinzuzufügen. Irgendeine Idee dafür?
Ravisoni

2
Ich denke, du solltest besser einen Beitrag mit all den Fragen machen, die du dazu hast. Es macht keinen Sinn, darüber über die Frage eines anderen zu diskutieren, da dies ein wenig vom Thema abweicht.
Marius

5

Ich habe es geschafft, wie erwartet zu funktionieren.

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

Vielen Dank


0

Mit dem folgenden Code können Sie dem Kategorieabschnitt ein Ja / Nein-Attribut hinzufügen.

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

));

In meinem Tutorial finden Sie schrittweise Erklärungen und Dateistrukturen. http://www.pearlbells.co.uk/add-custom-attribute-dropdown-category-section-magento/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.