I utworzeniu bloku przy użyciu hook_block_info
i hook_block_theme
i tym podobne. Ale jak to zrobić?
Mam pracę, aby zwrócić tablicę z kluczami 'subject'
i 'content'
. Ale stworzyłem znaczniki bezpośrednio na hook_block_view()
haku i nie tego chcę.
W dokumentacji jest powiedziane, że zawartość powinna zwracać się jako tablica do renderowania, a nie jako znaczniki. Ale czym jest ta tablica do renderowania ? Mówią, że powinny to być dane zamiast znaczników, ale w przykładach widzę tylko, że jest to po prostu opakowanie na znaczniki, więc nic tam nie zyskało.
Chcę mieć temat block--MYMODULE--DELTA.tpl.php
w moim motywie, ale jak go nazwać i jak przekazać dane do bloku?
Odpowiedzi:
Sposób, w jaki to robię, jest następujący ...
A następnie w podfolderze w module o nazwie
theme
powinien znajdować się plik o takiej nazwiemy-template.tpl.php
:A jeśli chcesz, możesz zastąpić „domyślną” implementację modułu, którą właśnie utworzyłeś
my-module.tpl.php
w swoim motywie, tak jak chceszblock--MYMODULE--DELTA.tpl.php
.źródło
admin/config/development/performance
i kliknąćclear cache
przycisk. Możesz także wyczyścić pamięć podręczną za pomocą drush, tj.drush cc all
Wypróbuj moduł Theme Developer . Po włączeniu możesz zaznaczyć pole wyboru w lewym dolnym rogu strony Drupal. Następnie możesz kliknąć blok i uzyskać przydatne informacje dotyczące tematów. Możesz zobaczyć na przykład możliwe nazwy plików .tpl.php dla swojego bloku.
Wybierz jedno z tych imion. Pierwszy jest najbardziej konkretny. Będzie to tylko jeden blok tematyczny. Utwórz plik o tej nazwie w folderze motywu, jeśli jeszcze go nie ma. Możesz umieścić go w podfolderze, jeśli chcesz się uporządkować.
Skopiuj zawartość pliku block.tpl.php do swojego pliku i zacznij zmieniać rzeczy tak, jak chcesz.
Zapisz plik, wyczyść pamięć podręczną i ponownie załaduj stronę.
źródło
Istnieje już wiele odpowiedzi na to pytanie, ale starałem się zapewnić bardzo uproszczone podejście. Mam nadzieję, że zidentyfikujemy dla devs strukturę tablicy oczekiwaną przez Drupala podczas zwracania zawartości bloku.
Aby to zrobić, podzieliłem pytanie na osobne przykłady kodu jako takie,
Zobacz pełne wyjaśnienie tutaj drupal 7, tworząc niestandardowe bloki tematyczne
źródło
To jest stary post, ale znalazłem lepsze rozwiązanie do zastępowania szablonów bloków z niestandardowego modułu dla Drupal 7.
Dodaj to do niestandardowego modułu:
Następnie potrzebujesz następującego kodu:
Wszystko, co musisz zrobić, to utworzyć
templates/block--my-custom-module.tpl.php
w folderze modułu.Napisałem samouczek na temat tego samouczka Drupal - jak przesłonić szablony bloków z niestandardowego modułu
źródło