0

我不知道为什么这不起作用,但我的自定义按钮操作(任务)都没有在我的组件中做任何事情。在我的 view.html.php 文件中,我有:

JToolBarHelper::custom('reports.export_csv', 'csv', '', 'CSV', false);
JToolBarHelper::custom('reports.export_mailchimp', 'mailchimp', '', 'Mailchimp', false);

然后在我的 ReportsControllerReports 文件中,我有 2 个方法(不仅仅是 2 个,还有一些其他方法,但它们不相关),export_csv() 和 export_mailchimp()。每当我单击按钮时,我都会收到一个 JS 错误,我认为这是阻止操作执行这些方法中的代码。关于“b 未定义”的一些东西。我找不到我的代码与其他 Joomla(核心)组件中使用的代码之间的任何差异,所以如果有人能对这个问题有所了解,将不胜感激(像往常一样,Joomla 论坛完全没用)。

4

2 回答 2

6

@Cfyzz 解决方案有效。

我添加了这个来查看文件:

<script type="text/javascript">

    Joomla.submitbutton = function(pressbutton) {
        switch(pressbutton) {
            case 'google':

                window.location = '<?=JRoute::_( 'http://google.com', false );?>';

            break;
            case 'stackoverflow':

                window.location = '<?=JRoute::_( 'http://stackoverflow.com', false );?>';

            break;
        }

    }
</script>

这在 view.html.php

JToolBarHelper::cancel('stackoverflow', 'Go Overflow');
JToolBarHelper::custom('google', 'checkin', '', 'Go Google', false);

显然你不必在这种情况下使用“JRoute::_(”。我用 2 个示例替换了内部链接,这样更容易理解。

于 2012-11-13T19:02:58.863 回答
0

您应该覆盖 Joomla 的 JS 框架行为
您应该在您的自定义 JS 文件中使用该功能: 在我的组件中,一切正常且工作正常
Joomla.submitbutton = function(pressbutton) {
switch(pressbutton) {
case 'export_cvs':
URL = JURI::base.'index.php?option=yourController&task=export_cvs&....
$.ajax({
url: URL, type: post, etc });
}
}

于 2012-02-20T19:38:12.637 回答