为 Joomla 3.2 自定义组件创建一个“取消”按钮



我正在尝试构建一个Joomla 3.2自定义组件,但很难让取消按钮(管理部分)工作。我已经添加了按钮,但是当我单击它时,我收到错误:

0 控制器无效:名称='helloworld',格式=''

这是针对组件"helloworld"和视图"再见"。有人可以查看我的文件并告诉我如何让"取消"按钮工作吗?我只希望它关闭当前页面并返回默认组件页面。

感谢您的任何帮助。

/管理员/视图/

再见/视图.html.php

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla view library
jimport('joomla.application.component.view');
/**
 * HTML View class for the HelloWorld Component
 */
class HelloWorldViewGoodbye extends JViewLegacy
{
    // Overwriting JView display method
    function display($tpl = null)
    {
        $this->addToolbar();
        // Display the view
        parent::display($tpl);
    }
        protected function addToolbar()
    {
            JToolbarHelper::title('Race Results','tbar');
            JToolbarHelper::cancel('helloworld.cancel', 'JTOOLBAR_CLOSE');
        }
}
/

administrator/views/goodbye/tmpl/default.php

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
?>
<h1>Cancel Race Results</h1>
<script type="text/javascript">
    Joomla.submitbutton = function(task)
    {
        if (task == 'helloworld.cancel')
        {
            Joomla.submitform(task, document.getElementById('helloworld-form'));
        }
    }
</script>
<form id="helloworld-form" name="adminForm" method="post" action="<?php echo JRoute::_('index.php?option=com_helloworld&view=goodbye'); ?>">
    <input type="hidden" name="option" value="com_helloworld" />
    <input type="hidden" name="task" value="" />
    <input type="hidden" name="view" value="goodbye" />
    <?php echo JHtml::_('form.token'); ?>
</form>
/

管理员/控制器/再见.php

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla modelitem library
jimport('joomla.application.component.controller');
/**
 * HelloWorld Model
 */
class HelloWorldControllerGoodbye extends JControllerLegacy
{
    public function edit() {
    }
    public function add() {
    }
    public function remove() {
    }
    public function save() {
    }
    public function apply() {
    }
}
/

管理员/模型/再见.php

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla modelitem library
jimport('joomla.application.component.model');
/**
 * HelloWorld Model
 */
class HelloWorldModelGoodbye extends JModelLegacy
{
}

具体取决于您想要实现的操作添加到控制器

    public function cancel($key = null) {
    JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
    $this->setRedirect(JRoute::_('index.php?option='.$this->option.'&view=name_of the_view' , false));
    return true;
}

在视图中.html向按钮添加条件

    if (condition when to use button)
        {
        JToolbarHelper::cancel('your_controller_name.cancel');
        }
    else
        {
        JToolbarHelper::cancel('your_controller_name', 'JTOOLBAR_CLOSE');
        }

将 HelloWorldViewGoodbye 更改为 GoodbyeViewGoodbye 和相同的其他。

最新更新