0

Community Builder (Profiler Pro 拡張機能を使用) のバックエンドから、データベースから読み込まれたすべてのタブ付きコンテンツを印刷しようとしました。すべてのコンテンツがタブにあるため、javascript window.print() を使用すると、一度に 1 つのタブのコンテンツしか印刷できません。スクリプトを不可欠なものに減らしましたが、今は行き詰まっています。以前に 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 に答える