我尝试从社区生成器(带有Profiler Pro扩展)的后端打印从数据库加载的所有选项卡式内容。由于所有内容都在选项卡中,使用javascript window.print(),因此一次只能打印一个选项卡的内容。我已经将剧本缩小到了它的必要条件,但现在我被卡住了。 有没有人在社区生成器之前尝试过这个或者有任何想法如何解决这个问题? 这是我的代码:
<?php
class CBView_user {function edituser( $user, $option, $newCBuser, &$postdata ) {global $_CB_framework, $_PLUGINS;
$tabs = new cbTabs( ( ( ( $_CB_framework->getUi())) ));
$tabcontent = $tabs->getEditTabs( $user, $postdata );
echo $tabcontent;
}
} // class CBView_user
?>
答案 0 :(得分:0)
我可能会查看您的模板而不必覆盖类。如果必须覆盖Profile Pro中的文件,请确保在模板中或通过插件执行此操作。永远不要覆盖核心文件。
1)您是否尝试过在您的打印样式表上设置样式(如果在模板中设置了一个样式,可能就像/templates/yourtemplate/css/print.css那样。)告诉它
display:block !important
在任何隐藏的标签上?
在我看到的Profile Pro演示中,这可以使隐藏区域可见:
.smoothness .ui-tabs .ui-tabs-hide,.tab-page {
display:block !important;
}
我认为这是最好的解决方案(如果有效),因为它不需要任何文件覆盖,而且正是打印样式表所针对的。
2)如果失败,在页面加载时,您可以使用简单的JQuery或Mootools脚本将选项卡中的内容复制到仅打印区域。使用打印样式表显示此副本并隐藏其他副本。同样,没有覆盖核心文件,所以这是一种非常安全的方法。
3)如果您有权覆盖javascript:window.print()按钮,则将其作为较大函数的一部分来调用,该函数使用jquery首先正确布局内容(对于使用本机浏览器的任何人都不适用)打印按钮)。
也可能有助于了解他们似乎正在使用它来创建标签:http://api.jqueryui.com/tabs/ - 有关他们如何工作的信息。