cancel
Showing results for 
Search instead for 
Did you mean: 

Creating new field in Catalog->Manage Categories->Display Settings

SOLVED

Creating new field in Catalog->Manage Categories->Display Settings

I'm trying to add a new field in the Display settings in Manage Categories. I found this tutorial on the web http://www.marketingadept.com/blog/magento-developers-add-a-custom-field-to-the-category-admin-page/

 

config.xml

  

 <?xml version="1.0" encoding="UTF-8"?>
    <config>
    <modules>
    <CmsBlock>
      
    <version>0.0.1</version>
    </CmsBlock>
    </modules>
    <global>
    <resources>
    <cmsblock_setup>
    <setup>
    <module>CmsBlock</module>
    <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
    <connection>
    <use>core_setup</use>
    </connection>
    </setup>
    </cmsblock_setup>
    <cms_block_setup_write>
    <connection>
    <use>core_write</use>
    </connection>
    </cms_block_setup_write>
    <cms_block_setup_read>
    <connection>
    <use>core_read</use>
    </connection>
    </cms_block_setup_read>
    </resources>
    </global>
    </config>


**mysql4-install-0.0.1.php**

   

$installer = $this;
    $installer->startSetup();
    
    
    $entityTypeId     = $installer->getEntityTypeId('catalog_category');
    
    
    $attributeSetId   = $installer->getAttributeSetId($entityTypeId);
    
    $attributeGroupId = $installer->getAttributeGroupId($entityTypeId, $attributeSetId,5);
    
    $installer->addAttribute('catalog_category', 'cms_block',  array(
        'type'     => 'varchar', /* Type - see eav_entity_* for the different types */
        'label'    => 'CMS Block', /* Your label */
        'input'    => 'select', /* This refers to the type of form field should display*/
        'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
        'visible'           => TRUE,
        'required'          => FALSE,
        'user_defined'      => FALSE,
        'option'           => array('values'=> array('Option 1','Option 2'))
    ));
    
    $installer->addAttributeToGroup(
        $entityTypeId,
        $attributeSetId,
        $attributeGroupId,
        'cms_block',
        '52'
    );
    $installer->endSetup();



the installer script does run as I checked it in the core_resources table, but the field does not display on the Display Settings Tab. Can anyone help me with this?

2 REPLIES

Re: Creating new field in Catalog->Manage Categories->Display Settings

Hello janers2015,

 

1. You add : 'group'    => "Display Settings"

 

$installer->addAttribute('catalog_category', 'cms_block', array(
'type' => 'varchar', /* Type - see eav_entity_* for the different types */
'label' => 'CMS Block', /* Your label */
'input' => 'select', /* This refers to the type of form field should display*/
'global' => Mage_Catalog_Model_Resource_Eav_Attribute:Smiley FrustratedCOPE_STORE,
'visible' => TRUE,
'required' => FALSE,
'user_defined' => FALSE,
'option' => array('values'=> array('Option 1','Option 2')),
'group' => 'Display Settings'
));

 

2. If still not working, you should follow this tutorial: http://www.boolfly.com/create-custom-attributes-in-magento/

If you want the type of input to be dropdown, you change install script by:

 

<?php
$installer = $this;

$installer->startSetup();

$attribute = array(

    'type'     => 'varchar',

    'label'    => 'CMS Block',

    'input'    => 'select',

    'global'   => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,

    'visible'  => true,

    'required' => false,

    'user_defined' => true,

    'default'  => "",

    'option'   => array('values'=> array('Option 1','Option 2')),

    'group'    => "Display Settings"

);

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

$installer->endSetup();

 

Problem solved? Click Accept as Solution!

Re: Creating new field in Catalog->Manage Categories->Display Settings

can u tell me in which file do i have to write this code ?