Utwórz plik szablonu dla bloku widoków


19

Wiele tematów dotyczy niestandardowych bloków, ale co z blokami utworzonymi przez widoki?

Mój blok widoków ma identyfikator: block-views-posts-listing-block,

Próbuję na wiele sposobów nazwać plik szablonu, np .: blok - blok - views-posts-listing-listing-block.tpl.php, ale nie mogę znaleźć poprawnej nazwy pliku.


1
Motyw deweloper moduł można powiedzieć nazwę pliku szablonu.
Oswald

Dzięki, ale wykrywam, że Themer dla D7 czasami nie działa prawidłowo.
Codium

Odpowiedzi:


18

Edytuj swój widok. i W ustawieniach „Zaawansowane” szczegółów Bloków kliknij "Theme: Information". Wyświetlona zostanie lista opcji plików szablonów.

na przykład, jeśli twój blok ma nazwę „lista wpisów”, zobacz możliwe nazwy wymienione w opcji „Informacje o motywie”:

* 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 

na przykład : twój blok ma listę wpisów z nazwami i ma niesformatowany styl , a następnie „Informacje o motywie” sugerują nazwę views-view-unformatted--posts-listing--block.tpl.php(jest to tylko jedna z kilku nazw). można skopiować oryginalny views-view-unformatted.tpl.phpplik szablonu (w katalogu / modules / views / theme) do bieżącego katalogu tematycznego i zmień nazwę tego pliku z nazwą sugerowane: views-view-unformatted--posts-listing--block.tpl.php. następnie wprowadź zmiany w pliku szablonu. Jeśli ten szablon nie pozwala wprowadzić żądanych zmian, poszukaj innych szablonów zgodnie z potrzebami.

Na koniec, jeśli dodasz nowy szablon, przeskanuj ponownie listę plików szablonów:

Ważny! Podczas dodawania, usuwania lub zmiany nazw plików szablonów konieczne jest uświadomienie Drupalowi zmian poprzez ponowne przeskanowanie plików w systemie. Klikając przycisk „Skanuj ponownie pliki szablonów”, wyczyścisz rejestr motywów Drupala i tym samym uruchomisz ten proces ponownego skanowania. Podświetlone szablony (na liście szablonów powyżej przycisku „Skanuj ponownie pliki szablonów”) będą następnie odzwierciedlały nowy stan twojego systemu.

Również moduł dewelopera motywów http://drupal.org/project/devel_themer sugerowany przez Oswalda może być przydatny do wykrywania możliwych szablonów w celu zmiany określonych elementów zgodnie z twoimi kryteriami. Nie polecam tego modułu włączonego w środowisku produkcyjnym (w moim przypadku nawet wyłączyłem moduł w środowisku testowym, ponieważ wydaje się, że ma konflikty z widokami, ale gdy był potrzebny, był bardzo przydatny)


Nie, nie pomaga to w blokowaniu widoków motywów. Dotyczy tylko treści widoku motywu, ale chcę zablokować motyw, który
zawinie

Witaj, jeszcze raz przejrzyj listę szablonów wskazanych przez „Informacje o motywie” w Widok-> Ustawienia blokowania, istnieje kilka szablonów, które kończą się --blockna jego imieniu. Pamiętaj o ponownym skanowaniu szablonów i pamiętaj o umieszczeniu szablonu w katalogu bieżącego motywu (skopiuj wybrany szablon z modułów / widoków / motywu). szablon musi mieć nazwę sugerowaną na liście „Informacje o motywie”. To działa.
cigotete

@drupality, dodałem przykład z krokami do przeglądu procesu, proszę przejrzeć w akapicie „ na przykład ” w odpowiedzi.
cigotete

Dzięki, ale nie mogę też usunąć domyślnego opakowania div class = "content". Mogę zmienić tylko HTML utworzony przez widoki
Codium

2
@ moon.watcher Myślę, że źle zrozumiałeś. Zakończenie pliku szablonu „blokiem” nie wpływa na temat samego bloku. Dzięki temu plik szablonu jest specyficzny dla bloku, który wyświetla widok (ponieważ widok może wyprowadzać wiele bloków z tego samego widoku). Treść tematyczna z widoku jest wyprowadzana do silnika motywów blokowych i jest pakowana w znaczniki dostarczone przez block.tpl.php. To, co drupalność próbuje zrobić (tak jak ja), to zmienić temat samego bloku.

18

Dla tych, którzy szukają odpowiedzi w D7, według Theme Developer (alias devel_themer), możesz utworzyć przesłonięcie tpl dla bloku widoku, stosując konwencję:

block - views-- {view's machine_name} -block

Dlatego w podanym przykładzie otrzymasz

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

Bez spacji (nie mogłem tego poprawnie edytować, aby wszystko było w linii.


Potwierdzam, że noTxt jest poprawny, przejdź do sekcji bloku i edytuj blok, adres URL powinien pokazywać nazwę bloku widoku z podkreśleniem, my_view_name-block. zamień podkreślenia na my-view-name i użyj tego formatu: „block - views - my-view-name = block.tpl.php”
Nevos

2
Tak, to jest poprawniejsza odpowiedź, więc: blok - widoki - VIEWNAME-MACHINENAMEOFDISPLAY.tpl.php Uwaga na pojedynczy myślnik przed nazwą komputera! Nazwa komputera = domyślnie jest nazwana jako blok, blok-1 itd., Ale możesz zmienić jej nazwę w interfejsie widoku.
Nikit

7

Pod koniec pół godziny zmiany nazw tpl, oto mój końcowy wniosek:

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

[view-name] - [display-name] część można znaleźć tak, jak powiedział noTxt lub łącząc się z '-' nazwa id widoku i nazwa id wyświetlanego widoku, -block na końcu jest niepoprawny .


5

W Drupal 8

wprowadź opis zdjęcia tutaj

Szablon pól byłby:

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


To pytanie dotyczyło D7 ... Dlaczego Drupal 8 w twojej odpowiedzi?
Pierre.Vriens,

@ Pierre.Vriens, ponieważ pytanie jest popularne w widokach (nie w module), pomyślałem, że powinienem tutaj dodać odpowiedź w wersji D8.
Bez Sssweat

To interesujący pomysł ... Co powiesz na zrobienie tego samego w przypadku tych + 21 000 pytań ?
Pierre.Vriens

@ Pierre.Vriens większość z nich nie jest popularna.
Bez Sssweat,

1
Dodano 8 tagów, miło;)
Codium

1

block--views--[view-name]-[display-name].tpl.phpnależy zmienić na block--views--[view-name]-[machinename].tpl.php.

Nazwę maszyny znajdziesz w sekcji zaawansowanych widoków, w której jest ona zapisana jako inna


1

Wzorce nazw plików opisane powyżej działają, chyba że nazwa widoku + nazwa wyświetlana jest dłuższa niż pewna liczba znaków !! Zostałem złapany przez to i nie mogłem znaleźć przyczyny, dla której plik szablonu z rozszerzeniem ... block.tpl.phpdziałał, a następujący ekran ... block-1.tpl.phpnie działał.

Okazuje się, że widoki zastępują nazwę komputera skrótem MD5, jeśli nazwa jest za długa. Jeśli chcesz mieć pewność, że nazwa szablonu powinna być używana, dodaj $conf['theme_debug'] = TRUE;plik settings.php, a następnie spójrz na źródło strony. jeśli znajdziesz coś takiego block--views--d131dd02c5e6eec4... lepiej skróć nazwę maszyny widoku (jeśli to zrobisz ... To nie jest nazwa czytelna dla człowieka). W przeciwnym razie musisz użyć pliku szablonu o tej głupiej nazwie.

Zobacz też

Widoki Nazwa maszyny Blocka jest „mieszana” (?)

i

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


0

Sprawdź tę stronę https://www.drupal.org/node/1089656 i informacje o podkreśleniach używanych przez widoki:

Jeszcze jeden przykład z widokami, jeśli masz blok utworzony przez widoki o nazwie widoku „front_news” i identyfikatorze wyświetlania „block_1”, wówczas sugestia zaczepienia motywu to: blok - widoki - wiadomości-front-blok-1. tpl.php (zauważ, że jeśli masz podkreślenia w identyfikatorze wyświetlania lub nazwie widoku - musisz je przekształcić w pojedynczy myślnik)


0

W przypadku bloków wewnątrz paneli panelowych rozwiązanie dostarczone przez noTxt i inne nie działa. Składnia byłaby wtedy (bez podkreślenia!):

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

Podziękowania dla user3074436 za udostępnienie ustawienia $ conf ['theme_debug'] w celu ustalenia tego wyjątkowego przypadku zastępowania motywu


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.