2014-04-08 21 views
5

Attualmente sto cercando di aggiungere un nuovo attributo di categoria alla schermata di amministrazione della categoria in Magento 1.8.1, sto riscontrando problemi con il mostrare qualcosa.Aggiunta di un attributo di categoria in Magento 1.8.1

Gli unici esempi di codice che riesco a trovare includono mysql4, tuttavia ho pensato che fosse stato ritirato? Per favore qualcuno può indicarci la giusta direzione qui.

Posso vedere la mia estensione in Config> Avanzate e nella tabella core_resources. Ma non nella parte anteriore del sito.

+0

Puoi condividere i nomi dei file e il codice dallo script di installazione? – Hum

+0

utilizzando mysql4-install-0.0.1.php e config.xml –

risposta

16

Lo abbiamo provato di recente con 1.8.2.0. Non è necessario creare un modulo solo per aggiungere un attributo di categoria, una volta. Sembra un tale spreco passare attraverso così tanti file cruft per ottenere qualcosa installato solo una volta.

Gli attributi di categoria tendono a rimanere permanenti una volta installati, quindi ciò che ha funzionato meglio per noi è utilizzare solo uno script unico. Salva questo direttamente su Magento Root.

<?php 

    require_once "app/Mage.php"; 

    Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID)); 


    $installer = new Mage_Sales_Model_Mysql4_Setup; 

    // change details below: 
    $attribute = array(
     'type' => 'int', 
     'label'=> 'Your attribute label', 
     'input' => 'text', 
     'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 
     'visible' => true, 
     'required' => false, 
     'user_defined' => true, 
     'default' => "", 
     'group' => "General Information" 
    ); 

    $installer->addAttribute('catalog_category', 'your_attribute_code', $attribute); 

    $installer->endSetup(); 

Salvarlo come add_category_attribute.php o qualcos'altro memorabile per voi.

è possibile utilizzare il browser per arrivare a questo file, o utilizzare php-cli per eseguire questo:

php -f add_category_attribute.php 

Buona fortuna.

+0

Bello! Funziona perfettamente, grazie! –

+0

Nota: se sei interessato ad avere questo nuovo attributo di categoria accetta testo e non solo numeri interi, assicurati di cambiare "tipo" ==> "int" in "testo"; se hai bisogno di un'area di testo, cambia "input" ==> "text" in "textarea"; per favore considera questo in anticipo, altrimenti finirai con un certo numero di campi di categoria errati che ingombrano la sezione categoria – YWSW

+0

Che funziona ... domanda veloce ... calda per ottenere il valore nella parte anteriore? Grazie – h3nr1ke

3

Modificare il nome del file mysql4-install-0.0.1.php-install-0.0.1.php

2

@ h3nr1ke È possibile ottenere attribuire con:

$category = Mage::registry('current_category'); 
if ($category){ 
    $value = $category->getData('YOUR_CUSTOM_ATTRIBUTE_CODE'); 
} 
0

eseguire questo script nella vostra cartella principale di Magento per creare attributo

<?php 

require_once('app/Mage.php'); 
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID)); 

$installer = new Mage_Eav_Model_Entity_Setup('core_setup'); 
$installer->startSetup(); 
$entityTypeId = $installer->getEntityTypeId('catalog_category'); 
$attributeSetId = $installer->getDefaultAttributeSetId($entityTypeId); 

if (!$installer->getAttributeId($entityTypeId, 'shipping_content')) { 
    $installer->addAttribute('catalog_category', 'shipping_content', array(
     'type'    => 'text', 
'backend'   => '', 
'frontend'   => '', 
'label'    => 'Short description', 
'input'    => 'textarea', 
'class'    => '', 
'source'   => '', 
'global'   => '0', 
'visible'   => true, 
'required'   => false, 
'user_defined'  => true, 
'default'   => '', 
'searchable'  => false, 
'filterable'  => false, 
'comparable'  => false, 
'visible_on_front' => true, 
'used_in_product_listing' => false, 
'unique'   => false, 
'wysiwyg_enabled' => true, 
'apply_to'   => '', 
'is_configurable' => true 
    )); 


    $installer->updateAttribute($entityTypeId, 'shipping_content', 'is_wysiwyg_enabled', 1); 
    $installer->updateAttribute($entityTypeId, 'shipping_content', 'is_html_allowed_on_front', 1); 


} 


$installer->endSetup(); 

?> 

Per Rimuovi categoria Attributo

<?php 

require_once('app/Mage.php'); 
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID)); 

$installer = new Mage_Sales_Model_Mysql4_Setup; 
$installer->startSetup(); 
$installer->removeAttribute('catalog_category', 'shipping_content'); 
$installer->endSetup(); 

?>