最近2度目の事件なので、何かを学ぶために質問することにしました。
ビューでは、メインの表示タイトル(通常はビューの上部に表示されるタイトル)をdisplay outputとして$title
として使用できますが、---では使用できないようですスタイル出力まったく。代わりに、グループ化が使用されている場合、style outputの$title
変数はグループの名前を意味します。
私が欲しいのは、その表示タイトル(「人間の名前」)をanyテンプレートで$display_title
として使用できるようにすることです。だから私がやったことは私のテンプレート.phpにこのコードを入れることでした:
function MYTHEME_preprocess_views_view(&$variables){
if($variables['name'] == 'studios' && $variables['display_id'] == 'block'){
$view = $variables['view'];
$variables['display_title'] = $view->human_name;
}
dpm($variables);
}
...人間の肩書きが手元にあることを願っています:<?php print $display_title; ?>
...しかし喜びはない。何が悪いのですか?
ご存じのとおり、ビューにはいくつかのテンプレートがあり、スタイルによって異なる場合があります。次に例を示します。
views-view.tpl.php
_views-view-STYLE.tpl.php
_views-view-fields.tpl.php
_views-view-field.tpl.php
_等.
これらのテンプレートにはそれぞれ独自の前処理機能があります。コードで行うことは、views-view.tpl.php(_template_preprocess_views_view
_)のみを前処理しているため、表示出力にのみ影響します
特定のビューで使用できるテンプレートファイルを確認するには、ビューの編集ページに移動し、列の最後にある[詳細]セクションで[テーマ:情報]をクリックします。ビューが使用しているテンプレートファイル(太字)と、それらを上書きするために使用するテンプレートファイルが表示されます。
前処理関数には、ダッシュをアンダースコアに置き換えて、テンプレートファイルにちなんだ名前を付ける必要があります。たとえば、_views-view-STYLE.tpl.php
_の場合、template_preprocess_views_view_STYLE()
になります。
次の関数を使用できます。
現在のページのタイトルを設定します。
現在のページのタイトルを取得します。
覚えているなら、ビューオブジェクトと共にタイトルを渡し、ビューオブジェクト内に新しい変数を追加して、テンプレートファイルに入れることができます。
「変数をテンプレートファイルに渡す」という特定の質問に対処するには...別のフックを使用する必要があるだけだと思います。次のように、変数を$view
オブジェクトにアタッチします。
function NAME_OF_MODULE_views_pre_render(&$view) {
$view->display_title = "What have you";
}
次に、views-view--NAME_OF_VIEW--page.tpl.php
のようなテンプレートファイルで:
print $view->display_title;
自分でこれをしなければならず、それはうまくいきました。