Korzystam z modułu programistycznego Theme do tworzenia tematów. Moduł jest całkiem dobry, ale nadal jest bardzo wadliwy. Czy istnieje mniej wadliwa alternatywa?
Nie całkiem.
Od wydania Drupal 7.33 dostępna jest teraz prosta obsługa alternatywnych szablonów i funkcji alternatywnych funkcji motywów w Drupal (rdzeń) poprzez dodanie ustawienia w settings.php
.
Dodano zmienną „theme_hook_original” do szablonów i funkcji motywu oraz opcjonalny tryb debugowania motywu na całej stronie, aby zapewnić kontekstualne informacje w kodzie HTML strony twórcom motywów. Tryb debugowania motywu oparty jest na tym, który jest używany z Twigiem w Drupal 8 i można uzyskać do niego dostęp, ustawiając zmienną „theme_debug” na TRUE (dodanie API).
Więc w ustawieniach.php ustawiłeś:
$conf['theme_debug'] = TRUE;
Następnie przejrzyj źródło swojej strony, a zobaczysz komentarze w kodzie HTML jako <!-- THEME DEBUG -->
listę funkcji i sugestie szablonów dla bieżącego węzła.
Przykładowe dane wyjściowe dla /admin/structure/views
:
<!-- THEME DEBUG -->
<!-- CALL: theme('html') -->
<!-- FILE NAME SUGGESTIONS:
* html--admin--structure--views.tpl.php
* html--admin--structure.tpl.php
* html--admin.tpl.php
x html.tpl.php
-->
... lots of HTML ...
<!-- THEME DEBUG -->
<!-- CALL: theme('region') -->
<!-- FILE NAME SUGGESTIONS:
* region--page-top.tpl.php
x region.tpl.php
-->
<!-- THEME DEBUG -->
<!-- CALL: theme('toolbar') -->
<!-- BEGIN OUTPUT from 'modules/toolbar/toolbar.tpl.php' -->
To jest backport funkcji pomocnika Drupala 8 Twig wbudowanej w Drupala 8 (w dużej mierze tak myślę, ponieważ devel_theme nie ma wersji Drupal 8).