Joomla,组件,从后端删除记录时运行脚本


Joomla, component, run script on deletion of record from backend

我已经为Joomla 3开发了一个组件,我知道我可以使用/administrator/components/com_edm/models/edm.php类

中的prepareTable函数在保存时执行表格的操作。

然而,现在我需要操作数据库,当用户删除我的组件在后端记录。

本质上,我问是否有一个类似prepareTable的函数,但用于删除

Thanks in advance

OK…经过一番研究,我找到了一种达到我想要的目的的方法。

改变管理员/组件/com_edm/视图/通讯/view.html.php文件来注册新的按钮函数,如下所示JToolBarHelper:垃圾("时事通讯。Mytrash"、"JTOOLBAR_TRASH");

,然后为组件列表扩展控制器

管理员/组件/com_edm/控制器/newsletterss.php您可以设置自己的函数,如

Mytrash(){

    // Check for request forgeries
    JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
    // Get items to remove from the request.
    $cid = JRequest::getVar('cid', array(), '', 'array');
    if (!is_array($cid) || count($cid) < 1)
    {
        JError::raiseWarning(500, JText::_($this->text_prefix . '_NO_ITEM_SELECTED'));
    }
    else
    {
        // Get the model.
        $model = $this->getModel();
        // Make sure the item ids are integers
        jimport('joomla.utilities.arrayhelper');
        JArrayHelper::toInteger($cid);
        // Remove the items.
        if ($model->delete($cid))
        {
            $this->setMessage(JText::plural($this->text_prefix . '_N_ITEMS_DELETED', count($cid)));
        }
        else
        {
            $this->setMessage($model->getError());
        }
    }
    $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_list, false));
}