Joomla - 是否可以从控制器中打开新选项卡中的链接

时间:2014-02-19 06:39:23

标签: php joomla

我正在尝试在我的组件工具栏上实现“保存,关闭并打印”按钮,该按钮将像往常一样保存和关闭编辑表单,但也会在新选项卡中打开表单的打印版本。这可能吗?

目前我在列表视图上有一个打印按钮,但我希​​望简化用户体验并使其更方便。

1 个答案:

答案 0 :(得分:1)

您可以在edit.php视图文件中的表单提交之前执行此操作

<script type="text/javascript">
Joomla.submitbutton = function(task)
{
    if (task == 'object.saveprint' || document.formvalidator.isValid(document.id('attendee-form'))) {
        window.open(your_print_url,'_blank');
        Joomla.submitform(task, document.getElementById('attendee-form'));
    }
    else {
        alert('<?php echo $this->escape(JText::_('JGLOBAL_VALIDATION_FORM_FAILED'));?>');
    }
}
</script>

在控制器中保存之后我能想到的唯一解决方案就是在用户的会话中设置一些东西。在列表视图中,您可以从会话中读取值并添加一个用于打开视图的javascript代码。

在控制器中执行:

public function save() {
    $return = parent::save();
    JFactory:getSession()->set('printUrl', JRoute::_('your print url'));
    return $return;
}
default.php中的

(更好地获取view.html.php中的url var)

$url = JFactory::getSession()->get('printUrl', null);
if ($url !== null) {
    JFactory::getDocument()->addScriptDeclaration("window.open(".$url.",'_blank')");
    JFactory::getSession()->set('printUrl', null);
}

希望有所帮助。