Joomla 3.x 覆盖自定义组件中的按钮功能

Joomla 3.x Override button functions in custom component

我正在尝试覆盖我的 joomla 组件中的按钮。

通过将代码添加到控制器中,我已经很好地管理了保存功能。

            public function save($key = null, $urlVar = null)
                {
                    $uri = JUri::getInstance(); 


                    $requestData = JRequest::getVar('jform', array(), 'post', 'array');
                    $user =& JFactory::getUser();
                    $userId = $user->get( 'id' );

                    $idToUse = $requestData['id'];

我想对保存和关闭以及保存和新建做同样的事情,但我不知道该怎么做。我想我需要去 view.html 看看自定义函数:

            JToolBarHelper::title(JText::_('COM_SHOPPER_TITLE_SELECTOR'), 'selector.png');

            // If not checked out, can save the item.
            if (!$checkedOut && ($canDo->get('core.edit') || ($canDo->get('core.create'))))
            {
                JToolBarHelper::apply('selector.apply', 'JTOOLBAR_APPLY');
                JToolBarHelper::save('selector.save', 'JTOOLBAR_SAVE');
            }

            if (!$checkedOut && ($canDo->get('core.create')))
            {
                JToolBarHelper::custom('selector.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false);
            }

所以我想我只需要添加一个函数 save2new() 但我不知道如何让它工作。

任何关于我哪里出错的想法都会很棒。

我猜你正在寻找 registerTask

如果您想为 save2new 任务调用保存方法,则需要在构造函数 __constructor

中调用 registerTask
$this->registerTask('save2new', 'save');

https://docs.joomla.org/API17:JController::registerTask