如何覆盖Jtoolbarhelper :: deletelist方法?

时间:2013-08-14 05:48:25

标签: joomla joomla2.5 custom-component

我创建了一个自定义组件,用于实现自定义电子商务功能。管理员可以查看和管理来自后端的所有订单。什么是想要的是每当管理员删除/取消任何订单邮件发送到客户电子邮件ID。 我想知道如何覆盖或添加我的代码以邮寄到deletelist方法,以便在管理员仅删除订单记录时发送邮件。

1 个答案:

答案 0 :(得分:2)

正如文档所说,JToolbarHelper::deleteList

/**
 * JToolbarHelper/deleteList
 * Writes a common 'delete' button for a list of records.
 *
 * @param   string  $msg   Postscript for the 'are you sure' message.
 * @param   string  $task  An override for the task.
 * @param   string  $alt   An override for the alt text.
 *
 * @return  void
 *
 * @since   1.5
 */

因此,您有以下几种选择:

  1. 通过覆盖remove方法覆盖控制器的remove任务:

    class MycomponentControllerMycontroller extends JControllerAdmin{
    
        public function remove() {
            //stuff goes here
        }
    }
    
  2. 在续订

    中注册remove任务
    class MycomponentControllerMycontroller extends JControllerAdmin{
        public function __construct($config = array())
        {
            parent::__construct($config);
            //...
            $this->registerTask('remove', 'myMethod');
    
        }
    
        public function myMethod() {
            //stuff goes here
        }
    }
    
  3. 提供$task参数以覆盖remove任务。

    创建工具栏按钮:

    JToolbarHelper::deleteList('', 'mycontroller.myMethod', 'JTOOLBAR_EMPTY_TRASH');
    

    和控制器:

    class MycomponentControllerMycontroller extends JControllerAdmin{
    
        public function myMethod() {
            //stuff goes here
        }
    }
    
  4. 此示例中的控制器应位于administrator/components/mycomponent/controllers/mycontroller