Adott egy reklam
tartalomtípus, benne egy field_hatter
kötelező, single-value imagefielddel. Feladat: a tartalom hátterének beállítani ezt a képet anélkül, hogy sminkhez nyúlnánk (azaz sminkváltás után is ugyanúgy működjön a dolog). IRC-n kaptam vagy öt embertől segítséget, aminek a lényege a következő:
- A modulomban mondjam meg a theme registrynek, hogy a node modul
node.tpl.php
-ja helyett a sajátnode-foo.tpl.php
-mat szeretném használni:
- A modul könyvtárába bemásoltam a
modules/node/node.tpl.php
fájlt. - A modul könyvtárában létrehoztam a
node-foo.tpl.php
fájlt, és teleraktam debug szeméttel (hogy azonnal lássam, amint használatba kerül). - A modulomat a node modul (és a content modul) utánra súlyoztam (egyelőre a
{system}
táblában kézzel átírva - ha majd végre működni fog, berakom az.install
fájlba is). - Bekapcsoltam a modult, töröltem a cache-t - mégsincs használatban a
node-foo.tpl.php
fájlom. - Bekapcsoltam a Theme developer modult, hátha az segít (azon kívül, hogy továbbra is elrejti a sidebar blokkokat) kideríteni, mi is van a theme registryben, és nem látni nyomát a modulom hatásának.
Miért? Mit szúrok el, vagy hagyok ki?
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
hook_theme_registry_alter
És ettől fogva simán a node.tpl.php-t használhatod és ezt fogja a Drupal felnyalni mert ez van "legelől" a keresési listában. Ide aztán node-type.tpl.php-t is használhatod, vagy a page_preprocessben adhatsz hozzá saját node-foo.tpl.php suggestion-t és akkor azt nyalja be a Drupal.
pp
(jár a sör?)
Palócz István
https://palocz.hu | https://tanarurkerem.hu
ez az egyik megoldás
Mivel egy saját tartalom típusról van szó, amit típus szerint sminkelünk, elég az is, ha a hurokban megadjuk az útvonalat.
Innentől kezdve elég, ha a modul mappájában ott a
node-reklam.tpl.php
, areklam
típusú tartalmakhoz azt fogja használni, ha a smink mappájában nincs ilyen. Az olvasottakból kiindulva nyílván nem lesz.Legyen a „szokásos” pálinka. ;)
Legyen a „szokásos” pálinka. ;)
Btw snufkin++: eredetileg ő is ezt favorizálta, de csak most sikerült eljutnia a dolognak a tudatomig.
Hanem a template hinting valamiért nem akar összejönni - ellenben a következő (nem tudom, mennyire gurány, de) működik, és így tartalomtípustól függetlenül is meg tudom oldani a dolgot: