首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Joomla3.2自定义组件创建一个Cancel按钮

为Joomla3.2自定义组件创建一个Cancel按钮
EN

Stack Overflow用户
提问于 2014-02-24 18:28:27
回答 2查看 3.1K关注 0票数 0

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

0无效控制器: name='helloworld',format='‘

这是为组件'helloworld‘和视图’再见‘。有人能看看我的文件并告诉我如何使“取消”按钮工作吗?我只希望它关闭当前页面并返回到默认组件页。

谢谢你的帮助。

/administrator/views/goodbye/view.html.php

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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>

/administrator/controllers/goodbye.php

代码语言:javascript
复制
<?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() {

    }

}

/administrator/models/goodbye.php

代码语言:javascript
复制
<?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
{

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-11 02:10:52

将HelloWorldViewGoodbye更改为GoodbyeViewGoodbye和相同的。

票数 1
EN

Stack Overflow用户

发布于 2014-03-31 13:56:59

取决于要实现添加控制器的操作。

代码语言:javascript
复制
    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;
}

在view.html中向按钮添加条件

代码语言:javascript
复制
    if (condition when to use button)
        {
        JToolbarHelper::cancel('your_controller_name.cancel');
        }
    else
        {
        JToolbarHelper::cancel('your_controller_name', 'JTOOLBAR_CLOSE');
        }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21995958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档