特定のビューのカスタムpage.tpl.phpを作成するにはどうすればよいですか?drupalビューのカスタムpage.tpl.php
私は、ビュー自体のスタイリングについては言及していません。ビューがレンダリングされるページだけです。
ありがとうございます。
@Keith Morgan - それはページです。
特定のビューのカスタムpage.tpl.phpを作成するにはどうすればよいですか?drupalビューのカスタムpage.tpl.php
私は、ビュー自体のスタイリングについては言及していません。ビューがレンダリングされるページだけです。
ありがとうございます。
@Keith Morgan - それはページです。
テンプレートファイルを作成して、ほとんどすべてのビュー出力のテーマをテーマにすることができます。あなたの場合は、あなたのページ表示のためのカスタムテンプレートを作成したいと思う。
ビューデザイナーで、[基本設定]の[テーマ]リンクをクリックします。ビュー全体をテーマ化するかどうか(view-view-example-page.tpl.phpなど)、各行(view-view-fields-exampleなど)に応じてテンプレートファイルの名前付けオプションがいくつか表示されます--page.tpl.php)などです。
カスタマイズする適切なテンプレートを/ sites/all/modules/views/themeからテーマにコピーし、必要に応じてカスタマイズします。
カスタムテンプレートファイルを作成したら、ビューデザイナのテーマリンクに戻り、デザインテンプレートが使用されていることを確認できます。あなたのテンプレートは太字にする必要があります。
これが役に立ちます。あなたのビューはwww.example.com/photosであれば、あなたのテーマで、ページphotos.tpl.phpを作成すると
function YOUR-THEME-NAME_preprocess_page(&$vars) {
//allow template suggestions based on url paths.
$alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
if ($alias != $_GET['q']) { $suggestions = array();
$template_filename = 'page';
foreach (explode('/', $alias) as $path_part) {
$template_filename = $template_filename . '-' . $path_part;
$suggestions[] = $template_filename;
}
$alias_array = explode('/', $alias);
$variables['template_files'] = $suggestions;
:私はこれは非常にうまく私のために働くようになったsillygwailoの提案を使用して
OPはビューがアクティブで、ビュー自体は表示されていないときにページのテーマを指定するよう求めていませんか?ページが表示されたビューがある場合、一番上のテンプレートはview-view.tpl.phpから引き出されます。これはページ要素を含まないものです。これは、まだアクティブなページテンプレートに詰め込まれます。 – mpdonadio
ビューをページと見なすと、前処理でpage_manager_get_current_page()
の結果を使用して、ビューがアクティブかどうかを判断し、適切な手順(ボディクラスのタック、テンプレートの提案の追加など)を行うことができます。
documentation on template suggestionsがあります。page.tpl.php suggestionsに興味があるかもしれません。ページビューの場合は、パス候補を使用できます。したがって、あなたの意見がhttp://www.example.com/photosである場合、page.tpl.php
ファイルの名前はpage-photos.tpl.php
となります。
ディレクトリとDrupalはあなたのテンプレートとしてそれを使用します。
私のテーマのテンプレートフォルダに.tpl.phpを入れて救済した同様の問題がありました。 Drupalの7のビューのページ表示の命名規則は、ページです - パスツーview.tpl.php
私はtemplate.phpにテンプレートの提案を追加しましたDrupalの7テーマで:
function sovon_preprocess_page(&$variables) {
if(views_get_page_view()) {
$variables['theme_hook_suggestions'][] = 'page__view';
}
}
詳細については、http://api.drupalize.me/api/drupal/function/views_get_page_view/7およびhttp://drupal.org/node/223440#custom-suggestionsを参照してください。あなたのテーマディレクトリ内のその後
function <theme>_preprocess_page(&$variables) {
if (($views_page = views_get_page_view()) && $views_page->name === "galleries") {
$variables['theme_hook_suggestions'][] = 'page__views__galleries';
}
}
、ページを作成 - ビュー - galleries.tpl.phpファイルを:
Drupalの7 template.phpで私はあなたの答えのシンプルさが好きでしたが、私はそれを上に構築するだろうと思った。私はそれも2歳以上だと分かっていますが、これは助けになるかもしれません。だから、私がやったことは、関数の内部をこれに変更することでした:\t if($ view = views_get_page_view()){ $ variables ['theme_hook_suggestions'] [] = 'ページビュー - '。 - >名前; } これはビュー名を取得し、接頭辞 "page-view-"とビュー名を持つテンプレートファイルを探します。この方法で、各ビューのif文を記述することなくこれを拡張することができます。 – Kirkland
パーAllartkのソリューション
。 drupalキャッシュとテンプレートをクリアする必要があります。 私は「ギャラリー」をビュー名として使用しました。
これを必要とせず、 'drupal 7 is page-path-to-view.tpl.php'を使用してください。 – Duncanmoo
@Duncanmoo - Amirのアプローチの利点は、命名規則に従えばテンプレートにビューが含まれていることを明示的に見ることができることです(例えば、page-node-mynode.tpl.phpのように)心配しています。私はビューのマシン名を使って上記と同様に組み合わせることができます。例えば、私のビューがhere/there/myviewに存在する場合、標準ページではなくpage-view-myview.tpl.phpを持つことができます--here - there - myview.tpl.php – BrynJ
確認済みの回答がうまくいかなかった場合(私にとってはそれがなかったため)、ページ - (urlname).tplを作成できます。PHPを使用して、あなたのテーマをスタイルすることができます。そして、あなたは...
print render($page['content']);
または
$ビュー= views_get_view( 'ビュー名')次のいずれかの方法であなたのビューをインポートすることができます。 $ view-> execute_display( 'default'、$ args);を出力します。
$ argsが単なる配列で、blank..youことができるだけで完全に
アプローチをそれを残すことができ、使用しているビュー表示の種類に依存します。それは例えばページかブロックですか? – keithm