在system.xml中为Magento 1.7添加一个Button

时间:2015-03-03 01:45:08

标签: php xml magento magento-1.7

我有一个在Magento 1.7.0.2上运行的网站,我需要system.xml文件中的自定义按钮,这样我只需点击一下即可删除某个类别中的所有产品。我已经拥有固定的类别ID,因此不需要类别下拉列表,只需要删除所有产品的按钮。我尝试使用此链接的答案创建按钮:Magento - Add a button to system.xml with method attached to it但每次定义前端模型时,它都会返回空白页而不是“配置”页面。

这是我用于创建按钮的system.xml代码:

<productdelete>
     <label>Delete Customer Generated Products</label>
     <frontend_type>text</frontend_type>
     <sort_order>20</sort_order>
     <show_in_default>1</show_in_default>
     <show_in_website>0</show_in_website>
     <show_in_store>1</show_in_store>
                <fields>
                    <productdeletebutton translate="label">
                        <label>Delete Now</label>
                        <frontend_type>button</frontend_type>
                        <frontend_model>diy/button</frontend_model>
                        <sort_order>1</sort_order>
                        <show_in_default>1</show_in_default>
                        <show_in_website>1</show_in_website>
                        <show_in_store>1</show_in_store>
                    </productdeletebutton>
                </fields>
</productdelete>

这是我的Button.php代码:

  class CT_Diy_Block_Button extends Mage_Adminhtml_Block_System_Config_Form_Field
  {

   protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
    {
        $this->setElement($element);
        $url = $this->getUrl('catalog/product'); 

        $html = $this->getLayout()->createBlock('adminhtml/widget_button')
                ->setType('button')
                ->setClass('scalable')
                ->setLabel('Delete All!')
                ->setOnClick("setLocation('$url')")
                ->toHtml();

      return $html;
    }
  }

1 个答案:

答案 0 :(得分:0)

您必须在Button.php中为前端模型定义模板

protected function _construct()
{
    parent::_construct();
    $this->setTemplate('diy/button.phtml');
}

本文可能会帮助您完成模块。 - &GT;&GT; http://www.atwix.com/magento/add-button-to-system-configuration/