0
我試圖在我的組件工具欄上實現「保存,關閉和打印」按鈕,該按鈕將像往常一樣保存並關閉編輯窗體,但也會打開在新選項卡中打印表單的版本。這可能嗎?Joomla - 是否有可能在控制器的新選項卡中打開鏈接
目前我在列表視圖上有一個打印按鈕,但我想簡化用戶體驗並使其更加方便。
我試圖在我的組件工具欄上實現「保存,關閉和打印」按鈕,該按鈕將像往常一樣保存並關閉編輯窗體,但也會打開在新選項卡中打印表單的版本。這可能嗎?Joomla - 是否有可能在控制器的新選項卡中打開鏈接
目前我在列表視圖上有一個打印按鈕,但我想簡化用戶體驗並使其更加方便。
你可以做到這一點的形式在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網址VAR)做
$url = JFactory::getSession()->get('printUrl', null);
if ($url !== null) {
JFactory::getDocument()->addScriptDeclaration("window.open(".$url.",'_blank')");
JFactory::getSession()->set('printUrl', null);
}
希望有所幫助。
不應該是' - > addScriptDeclaration()'而不是' - > addScript()'? – Lodder
@Lodder是真的,我在沒有測試的情況下將它讀出來。更正了它:-) – Laoneo
很好的解決方案謝謝!我實際上已經下了JavaScript路線,但我喜歡會話方法。我以前沒有真正遇到過。任何評論(如果有的話)是更好的方法? – doovers