0

我想添加一个如屏幕截图所示的新选项卡,并使用我的扩展程序的 system.xml 填充字段等。

在此处输入图像描述.

这可能吗?

4

2 回答 2

2

要添加新的 magento 类别选项卡(管理类别页面/管理区域),请重写或简单地将文件从:core/Mage/Adminhtml/Block/Catalog/Category/Tabs.php 复制到:local/Mage/Adminhtml/Block/Catalog /类别/Tabs.php。

在此代码之后的 _prepareLayout 方法中的下一步:

$this->addTab(’products’, array( ‘label’ =>
Mage::helper(’catalog’)->__(’Category Products’), ‘content’ =>
$this->getLayout()->createBlock(’adminhtml/catalog_category_tab_product’,‘category.product.grid’)->toHtml(), ));

添加这个:

$this->addTab(’new_tab’, array(
‘label’ => Mage::helper(’catalog’)->__(’New Category Tab’),
‘content’ => $this->getLayout()->createBlock(’yourmodule/adminhtml_category_form’)->toHtml(),));

参数 'content' 指的是一个块,这个块需要添加到你正在使用的模块中,这里是块内容的例子:

<?php class Namespace_Module_Block_Adminhtml_Category_Form extends Mage_Adminhtml_Block_Widget_Form { 
    protected function _prepareForm(){
        $form = new Varien_Data_Form();
        $this->setForm($form);
        $fieldset = $form->addFieldset('custom_category_tab_form', array('legend'=>Mage::helper('catalog')->__('Custom Tab')));                                 $fieldset->addField('anytext', 'text', array('label'=> Mage::helper('catalog')->__('Any Text'),'name'=> 'anytext',));
        return parent::_prepareForm();     
        } 
    }

之后,为了有可能将添加的选项卡字段保存到模块的表中,您需要添加一个事件观察器。将其添加到 config.xml 文件的“全局”部分:

<events>
    <catalog_category_prepare_save >
        <observers>
            <yourmodule>
                <type>singleton</type>
                <class> yourmodule /observer</class>
                <method>categorySave</method>
            </ yourmodule >
        </observers>
    </catalog_category_prepare_save >
</events>

并将观察者的模型添加到模块的“模型”文件夹中:

<?php
 class Namespace_Module _Model_Observer
{
    public function categorySave($observer){
    $params = $observer->getRequest()->getParams();
    // now you could save your custom category params to your db table
    }
}
于 2014-01-04T09:50:07.270 回答
1

您可以使用设置脚本添加类别字段

/app/code/local/MagePal/AddCategoryFields/sql/addcategoryfields_setup/upgrade-0.9.5-0.9.8.php

$installer = $this;

$installer->startSetup();

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

$setup->addAttribute('catalog_category', 'magepal_category_fieldname', array(
    'group'         => 'My Tab',
    'input'         => 'text',
    'type'          => 'varchar',
    'label'         => 'Field desc',
    'backend'       => '',
    'visible'       => 1,
    'required'      => 0,
    'user_defined' => 1,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));

//$setup->removeAttribute('catalog_category', 'magepal_category_fieldname');

$installer->endSetup();

请参阅如何在 Magento 中添加新的自定义类别属性

于 2013-03-19T12:48:00.083 回答