web-dev-qa-db-ja.com

パネルページを印刷するには?

Print モジュールを使用しています。

パネルでノード/%ノードテンプレートを有効にし、選択ルールを使用して特定のノードタイプを選択し、フィールドをパネル領域などに追加しました。すべて正常に機能します。

このノードの印刷用バージョンを表示するには、印刷モジュールを使用できる必要があります。しかし、/ print/[nid]に移動すると、完全に空白のページが表示されます。

それで、パネルページの印刷用バージョンを持つことは可能ですか?つまり、テンプレートファイルまたは別の方法で?

3
Billy

上記の助けをありがとう。

コーディングは、私がここで取りたかった最後のオプションでした。最終的に私はそれなしで必要なものを達成しました。

最初に、非標準のノードページも(パネルページとビューも)印刷するようにPrintモジュールを構成しました。それでも動作しません。

そこで、「node /%node/print-friendly」というURLを使用してパネルのコピーを作成し、パネルスタイライザーを使用して、非常にブランドのスタイルを整えました。次に、「/ print /%node/print-friendly」としてコピーパネルにリンクでき、完全に機能します!

1
Billy

コードをチェックアウトします ここ 。参照用にここにコピーするだけです

Template.phpで次のように関数を作成します

_function get_panel_view(&$node) {
    // Load my task plugin
    $task = page_manager_get_task('node_view');


    // Load the node into a context.
    ctools_include('context');
    ctools_include('context-task-handler');
    $contexts = ctools_context_handler_get_task_contexts($task, '', array($node));

    $output = ctools_context_handler_render($task, '', $contexts, array($node->nid));
    if ($output !== FALSE) {
        return drupal_render($output['content']);
    }
    // Otherwise, fall back.
    return drupal_render(node_view(node_load($node->nid)));
}
_

テンプレートはprint--node-。tpl.phpと呼ばれ、次のように印刷できます。

_print $print['content'];_の代わりにprint get_panel_view($print['node']);

テーマキャッシュを再構築する

2
junedkazi