在Joomla组件中下载原始数据

时间:2015-07-17 16:13:00

标签: joomla

我写了一个运行良好的Joomla组件。我现在想要在管理列表视图中添加一个按钮,当单击时会自动启动仅下载列表中所选项目的CSV下载。

我对模型逻辑没问题,我得到的问题是传递选定的cid或在没有模板的情况下显示原始输出。

如果我使用JToolBar的appendButton函数添加'链接'类型按钮,那么我可以将用户发送到'format = raw'的URL,但我无法发送有关检查了哪些项目的信息

如果我使用JToolBarHelper::custom添加自定义列表按钮,那么我可以发送有关已选中哪些按钮的信息,但我无法发送format=raw

据我所知,有两种解决方案,但我不知道如何实现其中任何一种。选项一是强制无模板原始输出,而不使用format=raw的URL参数。选项二是在管理表单中设置隐藏变量format=raw

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题:

我将此隐藏字段添加到管理表单

<input type="hidden" name="format" value="html" />

然后使用

覆盖JToolbarButtonStandard的{​​{1}}
_getCommand

因此,当点击该按钮时,它会将protected function _getCommand($name,$task,$list) { JHtml::_('behavior.framework'); $message = JText::_('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST'); $message = addslashes($message); if ($list) { $cmd = "if (document.adminForm.boxchecked.value==0){alert('$message');}else{document.getElementById('adminForm').format.value='raw'; Joomla.submitbutton('$task')}"; } else { $cmd = "document.getElementById('adminForm').format.value='raw'; Joomla.submitbutton('$task')"; } return $cmd; } 参数从format更改为html

如果有人有更好的想法,我不打算将其标记为已解决