0

我尝试从 Community Builder(带有 Profiler Pro 扩展)的后端打印从数据库加载的所有选项卡式内容。由于所有内容都在选项卡中,使用 javascript window.print(),一次只能打印一个选项卡的内容。我已将脚本简化为必不可少的,但现在我被卡住了。有没有人用 Community Builder 尝试过这个,或者知道如何解决这个问题?这是我的代码:

<?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
?>
4

1 回答 1

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/ - 那里有关于他们如何工作的信息。

于 2014-06-28T10:40:50.133 回答