Am soluția obișnuită de tematică pentru o entitate personalizată:
funcția module_theme($existent, $tip, $temă, $cale) {
întoarcere [
'personalitate' => [
'render element' => 'elemente',
'șablon' => 'personalitate',
],
];
}
funcția template_preprocess_customentity(matrice &$variabile) {
$variabile['conținut'] = [];
...
}
function module_theme_suggestions_customentity_alter(matrice &$sugestii, matrice $variabile) {
$sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_');
$suggestions[] = 'personalitate__' . $sanitized_view_mode;
}
Singura problemă este că atunci când vreau să folosesc o crenguță specifică modului de vizualizare, personalitate--viewmode.html.twig
, funcționează numai dacă fișierul twig este în interiorul temei. Dacă este în modul șabloane
folder, nu este preluat (verificate cu atenție toate cazurile cu depanarea twig).
Deci, în acest sens, funcționează. Totuși, aș avea nevoie de crenguța în modul în sine, deoarece în acest caz, nu este o simplă întrebare tematică, modul de vizualizare este atât logic, cât și programatic, un mod radical diferit de a prezenta conținutul. Este pentru uz intern, nu un modul contrib, așa că așteptările normale ale utilizatorilor nu se aplică.