web-dev-qa-db-ja.com

ビューブロックのテンプレートファイルを作成する

カスタムブロックのテーマ設定についてはたくさんありますが、ビューによって作成されたブロックについてはどうですか?

私のビューブロックのID:block-views-posts-listing-block、

テンプレートファイルに名前を付ける方法をいろいろ試します。例:block--block--views-posts-listing-block.tpl.phpですが、正しいファイル名が見つかりません。

18
Codium

ビューを編集します。ブロックの詳細の[詳細]設定で、["Theme: Information"]をクリックします。テンプレートファイルのオプション一覧が表示されます。

たとえば、ブロックに「投稿リスト」という名前が付いている場合は、「テーマ情報」オプションでリストされている可能な名前を確認します。

* Display output: views-view.tpl.php, views-view--posts-listing.tpl.php, views-view--default.tpl.php, views-view--block.tpl.php, views-view--posts-listing--block.tpl.php
* Style output: views-view-unformatted.tpl.php, views-view-unformatted--posts-listing.tpl.php, views-view-unformatted--default.tpl.php, views-view-unformatted--block.tpl.php, views-view-unformatted--posts-listing--block.tpl.php
* Row style output: views-view-fields.tpl.php, views-view-fields--posts-listing.tpl.php, views-view-fields--default.tpl.php, views-view-fields--block.tpl.php, views-view-fields--posts-listing--block.tpl.php
* Field Content: Title (ID: title): views-view-field.tpl.php, views-view-field--title.tpl.php, views-view-field--posts-listing.tpl.php, views-view-field--posts-listing--title.tpl.php, views-view-field--block.tpl.php, views-view-field--block--title.tpl.php, views-view-field--posts-listing--block.tpl.php, views-view-field--posts-listing--block--title.tpl.php 

:ブロックの名前は投稿リストで、スタイルはunformattedの場合、「テーマ情報」は名前views-view-unformatted--posts-listing--block.tpl.phpを提案します(これはいくつかの名前の1つにすぎません)。元のviews-view-unformatted.tpl.phpテンプレートファイル(/ modules/views/themeにあります)を現在のテーマディレクトリにコピーし、このファイルの名前を:views-view-unformatted--posts-listing--block.tpl.phpという名前に変更できます。次に、テンプレートファイル内で変更を加えます。このテンプレートで必要な変更ができない場合は、必要に応じて他のテンプレートを探してください。

最後に、新しいテンプレートを追加する場合は、テンプレートファイルリストを再スキャンします。

重要!テンプレートファイルを追加、削除、または名前変更する場合は、Drupalに変更を認識させ、システム上のファイルを再スキャンさせる必要があります。[テンプレートファイルの再スキャン]ボタンをクリックすると、Drupalのテーマレジストリによって、この再スキャンプロセスがトリガーされます。強調表示されたテンプレート([テンプレートファイルの再スキャン]ボタンの上のテンプレートリストで)は、システムの新しい状態を反映します。

また、テーマ開発者モジュール http://drupal.org/project/devel_themer Oswaldによって提案されたテンプレートは、テンプレートを検出して、基準に従って特定の要素を変更するのに役立ちます。このモジュールを本番環境で有効にすることはお勧めしません(私の場合、テスト環境でモジュールを無効にしても、ビューと競合しているようですが、必要なときに非常に役立ちました)。

18
cigotete

テーマ開発者(別名devel_themer)によると、D7で回答を求める人のために、次の規則を使用してビューのブロックのtplオーバーライドを作成できます。

block--views- {ビューのmachine_name} -block

したがって、例では次のようになります

block--views-post-listing-block.tpl.php

スペースなし(すべてをインラインにするためにこれを適切に編集できませんでした。

18
noTxt

30時間の終わりにtpl名を変更すると、これが私の最終的な結論です。

block--views--[view-name]-[display-name].tpl.php

[view-name]-[display-name]の部分は、noTxtが言ったように、またはビューのID名とビューディスプレイのID名である '-'を使用して結合できます。末尾の-blockが正しくありません。

7
TourTools

Drupal 8

enter image description here

フィールドテンプレートは次のようになります。

views-view-fields-[view-name]-block-1.html.twig

6
No Sssweat

上記のファイル名のパターンは、ビュー名+表示名が特定の文字数を超えない限り機能します。私はこれに捕まり、...block.tpl.phpで終わるテンプレートファイルが機能し、次の表示...block-1.tpl.phpが機能しなかった理由を見つけることができませんでした。

名前が長すぎる場合、Viewsはマシン名をMD5ハッシュに置き換えます。使用するテンプレート名を確認したい場合は、settings.phpに$conf['theme_debug'] = TRUE;を追加して、ページのソースを確認してください。 block--views--d131dd02c5e6eec4....のようなものが見つかった場合は、ビューのマシン名を短くすることをお勧めします(そうすることで管理できれば...人間が読める名前ではありません)。または、そのばかげた名前のテンプレートファイルを使用する必要があります。

も参照

Views Blockのマシン名は「ハッシュ化」されています(?)

そして

https://www.drupal.org/node/346602

1
user3074436

block--views--[view-name]-[display-name].tpl.phpblock--views--[view-name]-[machinename].tpl.phpに変更する必要があります。

あなたはそれが他に書かれているあなたのビューの高度なセクションからマシン名を見つけるでしょう

1
Arindam

D7> = 7.33を使用している場合、theme_suggestionをHTMLコメントとしてページに直接表示できます。

settings.php

$conf['theme_debug'] = TRUE;

これが完全なドキュメントです https://www.drupal.org/docs/7/theming/overriding-themable-output/working-with-template-suggestions

0
SwingingTom

パネルペイン内のブロックの場合、noTxtなどで提供されるソリューションが機能しません。構文は(アンダースコアなし!)になります。

panels-pane-block--views-[view-name]-[display-machine-name].tpl.php

この例外的なテーマのオーバーライドのケースを理解するために$ conf ['theme_debug']設定を提供してくれたuser3074436に感謝

0
rawdesk.be

このページをチェックしてください https://www.drupal.org/node/1089656 、およびビューが使用する下線に関する情報:

また、ビューのもう1つの例として、ビュー名が「front_news」で、表示IDが「block_1」のビューによって作成されたブロックがある場合、テーマフックの提案は次のようになります:block--views--front-news-block-1。 tpl.php(表示IDまたはビュー名にアンダースコアがある場合-単一のダッシュに変換する必要があります)