Создать шаблонный файл для блока представлений

drupal.stackexchange https://drupal.stackexchange.com/questions/11468

  •  16-10-2019
  •  | 
  •  

Вопрос

Есть много о тематических пользовательских блоках, но как насчет блоков, созданных представлениями?

В блоке моего представления есть идентификатор: блок-блок-листингование блоков-видов,

Я пробую много способов для файла шаблона именования, пример: block-block-views-posts-listing-block.tpl.php, но я не могу найти правильное имя файла.

Это было полезно?

Решение

Отредактируйте свой взгляд. и под «расширенными» настройками данных вашего блока нажмите "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 

Например: В вашем блоке есть имя Сообщения в листинге, и имеет стиль неформатированный, тогда «информация о теме» предложите имя views-view-unformatted--posts-listing--block.tpl.php (Это только одно из нескольких имен). Вы можете скопировать оригинал views-view-unformatted.tpl.php Файл шаблона (расположенный в/модули/представления/тема) в ваш текущий каталог темы и переименовать этот файл с предложенным именем:views-view-unformatted--posts-listing--block.tpl.php. Анкет Затем внесите изменения в файл шаблона. Если этот шаблон не позволяет внести ваши желательные изменения, ищите другие шаблоны в соответствии с вашими потребностями.

В конце концов, если вы добавите новый шаблон, список файлов шаблонов Rescan:

Важный! При добавлении, удалении или переименовании файлов шаблонов необходимо информировать о изменениях, чтобы изменить его файлы в вашей системе. Нажав кнопку «Файлы шаблонов Rescan», вы очистите реестр тем Drupal и тем самым запускаете этот процесс восстановления. Выделенные шаблоны (в вашем списке шаблонов выше «Кнопка« Файлы шаблонов ») будет отражать новое состояние вашей системы.

Также модуль разработчиков темы http://drupal.org/project/devel_themer Предлагаемый Освальдом может быть полезен для обнаружения возможных шаблонов/с для изменения определенных элементов в соответствии с вашими критериями. Я не рекомендую этот модуль, включенный в средах Productions (в моем случае, даже я отключил модуль в тестовой среде, потому что, похоже, возникает конфликт с взглядами, но когда это было необходимо, был очень полезен)

Другие советы

Для тех, кто ищет ответ в D7, по словам разработчика тем (он же devel_themer), вы можете создать переопределение TPL для блока представления, используя соглашение:

Блок-просмотр--{view's machine_name}-блокировать

Поэтому в примере дайте вам

Блок-просмотр-- после списка -block.tpl.php

Без пространств (я не мог бы отредактировать это правильно, чтобы все это было встроено.

В конце получаса меняя имена TPL, вот мой последний вывод:

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

view-name]-[Display-name] часть можно найти, например, notxt, или соединение с идентификационным идентификационным идентификационным идентификационным идентификационным идентификационным идентификационным идентификационным идентификационным идентификационным Анкет

В Drupal 8

enter image description here

Шаблон полей будет:

Views-Fields-[view-name]-block-1.html.twig

block--views--[view-name]-[display-name].tpl.php должен быть изменен наblock--views--[view-name]-[machinename].tpl.php.

Вы найдете название машины из вашего расширенного раздела, где он написан другим

Обработчики имени файла описываются выше, если только ваше имя представления + отображаемое имя длиннее, чем определенное количество символов !! Я был пойман этим и не мог найти, почему файл шаблона заканчивается ...block.tpl.php работал и следующий дисплей ...block-1.tpl.php не работал.

Оказывается, что виды заменяют имя машины хэшем MD5, если имя слишком длинное. Если вы хотите быть уверенным в названии шаблона, который вы должны использовать, добавьте $conf['theme_debug'] = TRUE; В ваших настройках.php, а затем посмотрите на источник страницы. Если вы найдете что -то вроде block--views--d131dd02c5e6eec4.... вам лучше сократить название машины представления (если вы справитесь с этим ... это не читаемое на человеку имя). Или вам нужно использовать файл шаблона с этим глупым именем.

смотрите также

Имя машины видов - это «хэширование» (?)

а также

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

Проверьте эту страницу https://www.drupal.org/node/1089656, и информация о недостатках, которые используют представления:

Кроме того, еще один пример с представлениями, если у вас есть блок, созданный представлениями с именем представления «Front_news» и отображение идентификатор «block_1», тогда предложением Theme Hook будет: Block-Views-Front-News-Block-1. tpl.php (Обратите внимание, когда у вас есть недостатки в идентификаторе дисплея или в имени представления - вы должны преобразовать их в одну черту)

Для блоков внутри панельных панелей решение, предоставленное NOTX, и другие, не работает. Синтаксис был бы тогда (без подчеркивания!):

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

Спасибо user3074436 за предоставление настройки $ conf ['theme_debug'], чтобы выяснить эту исключительную тему.

Вы находитесь на 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top