Dodaj dodatkowy atrybut kategorii w zakładce Ogólne informacje

10

Próbuję dodać dodatkową kategorię attrbiute do zakładki informacji ogólnych. Próbowałem dodać to za pomocą następującego kodu,

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

To po prostu działa dobrze, ale jest to dodanie dodatkowej karty informacji o nazwie Generalpo prawej stronie. general infomation tabPróbowałem dodać ją do pierwszej karty, używając attributeGroupIdustawienia 4, ale po przetestowaniu powoduje to awarię witryny.

Każdy pomysł, jak mogę dodać ten atrybut do pierwszej karty.

ravisoni
źródło

Odpowiedzi:

7

Spróbuj tak:

$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 musi być instancją Mage_Catalog_Model_Resource_Setup.

Trochę poza tematem: Zalecam dodanie tego skryptu do pliku aktualizacji jednego z modułów zamiast tworzenia instancji Mage::app()i uruchamiania go „w locie”. Jeśli umieścisz go w skrypcie aktualizacji, będzie on przenośny do innych instancji.

Marius
źródło
Dziękuję za odpowiedź, ale po uruchomieniu pojawia się błąd serwera w witrynie.
ravisoni
jaki masz błąd? Zredagowałem odpowiedź. Może to jest problem.
Marius
pliki dzienników nie zawierają niczego, co mówi plik raportu. „Nie znaleziono tabeli podstawowej lub widoku: 1146 Tabela„ wwwinsta_Joyevincent.catalog_category_entity_tinyint ”nie istnieje”
ravisoni
Okzz, to działało, dodając dat attr w zakładce informacji ogólnych, ale próbuję dodać tak / nie typ attr jakiś pomysł na to?
ravisoni
2
Myślę, że powinieneś napisać post ze wszystkimi pytaniami na ten temat. Nie ma sensu dyskutować o tym na czyimś pytaniu, ponieważ jest to trochę nie na temat.
Marius
5

Udało mi się, że działa w oczekiwany sposób w ten sposób.

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

Dzięki

ravisoni
źródło
0

Możesz dostosować atrybut „tak / nie” do sekcji kategorii, używając następującego kodu.

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

));

Zapoznaj się z moim samouczkiem, aby uzyskać wyjaśnienia krok po kroku i strukturę plików. http://www.pearlbells.co.uk/add-custom-attribute-dropdown-category-section-magento/

Liz Eipe C.
źródło