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.

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.


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


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/

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.