Magento neues Kategorie Attribut (Add new adminhtml custom category attribute)

Gepostet am Januar 19, 2014

Mit folgender Extension kann in der Kategorieverwaltung ein neues Attribut angelegt werden. Dieses kann dann einfach im Template (Frontend) ausgegeben werden.

Folgende Verzeichnisse und Dateien müssen angelegt werden:
/app/code/local/M28visions/CustomCategoryAttribute/
/app/code/local/M28visions/CustomCategoryAttribute/etc/
/app/code/local/M28visions/CustomCategoryAttribute/etc/config.xml
/app/code/local/M28visions/CustomCategoryAttribute/sql/add_category_attribute/
/app/code/local/M28visions/CustomCategoryAttribute/sql/add_category_attribute/mysql4-install-0.0.1.php
/app/etc/modules/M28visions_CustomCategoryAttribute.xml — zum Aktivieren der Extension

Quellcode:
/app/code/local/M28visions/CustomCategoryAttribute/etc/config.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?xml version="1.0"?>
<config>
    <modules>
        <M28visions_CustomCategoryAttribute>
            <version>0.0.1</version>
        </M28visions_CustomCategoryAttribute>
    </modules>
 
    <global>
        <resources>
            <add_category_attribute>
                <setup>
                    <module>M28visions_CustomCategoryAttribute</module>
                    <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </add_category_attribute>
            <add_category_attribute_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </add_category_attribute_write>
            <add_category_attribute_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </add_category_attribute_read>
        </resources>
    </global>
</config>

Quellcode:
/app/code/local/M28visions/CustomCategoryAttribute/sql/add_category_attribute/mysql4-install-0.0.1.php
– category_text -> Name des Attributs
– Kategorie Text (Übersicht) -> Bezeichnung im Admin-Bereich

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$this->startSetup();
$this->addAttribute('catalog_category', 'category_text', array(
    'group'         => 'General Information',
    'input'         => 'textarea',
    'type'          => 'text',
    'label'         => 'Kategorie Text (Übersicht)',
    'backend'       => '',
    'visible'       => true,
    'required'      => false,
    'visible_on_front' => true,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));
 
$this->endSetup();

Quellcode:
/app/etc/modules/M28visions_CustomCategoryAttribute.xml

1
2
3
4
5
6
7
8
9
<?xml version="1.0"?>
<config>
    <modules>
        <M28visions_CustomCategoryAttribute>
            <active>true</active>
            <codePool>local</codePool>
        </M28visions_CustomCategoryAttribute>
    </modules>
</config>

Ausgabe des Attributs:

1
2
3
4
5
6
7
8
9
10
11
12
// bei der Hauptkategorie
<?php $_category = $this->getLayer()->getCurrentCategory(); ?>
<?php echo $_category->getcategory_text(); ?>
 
// Wenn die Childs ausgelesen werden sollen muss die Subkategorie noch mal geladen werden:
<?php foreach ($_category->getChildrenCategories() as $subcategory): ?>
<?php $subcategory = Mage::getModel('catalog/category')->load($subcategory->getId()); ?>
 
// Oder die Funktion "getChildrenCategories" muss umgerschrieben werden:
// -> /app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category.php
// Funktion: _getChildrenCategoriesBase
<?php addAttributeToSelect('category_text') // hinzufügen ?>

Die Position des Attributes in der Übersicht, wird in der Tabelle „eav_entity_attribute“ unter „sort_order“ festgelegt.

Tags:

Leave a Reply

 

Posts of Current Category



Facebook: