Sziasztok!
Egy felhasználói profiloldalról kellene néhány elemet eltávolítanom. Odáig sikerült eljutni, hogy a preprocess_html() függvénynnyel beleraktam a body-ba egy egyedi azonosítót, így ha másképp nem megy, css-sel el lehet rejteni a szükségtelen dolgokat.
Azt viszont nem sikerült kitalálnom, hogyan tudnám eleve kizárni ezeket az elemeket, hogy bele se kerüljenek a kódba. A preprocess_html() $variables változója tartalmazza ezeket, de sok keresgélés után sem találtam meg, hogyan tudnám pl. a $variables['page']['content']['system_main']['profiloldal'] tömbből a #title elemet kivenni. Nyilván egyszerű szintaktikai hibáról van szó, de nem jövök rá a megoldásra...
Fórum:
Úgy tűnik, hogy a $title-t a
Úgy tűnik, hogy a $title-t a template_process_page()-ben lehet kiiktatni. Ettől a page.tpl.php nem printel oda semmit.
A kihívás nekem abban áll, hogy megbízhatóan és szépen sikerüljön beazonosítani, ha profiloldalon vagyunk (könnyen lehet, hogy az alábbi se nem szép, se nem eléggé megbízható...).
Ezt sikerült összehozni:
EDIT:
Ja igen, szóval hogy keletkezik nálad a
tömb? Én a template_preprocess_html() variabléi között hasonlót sem találtam (odáig megvan, hogy 'system_main', de abban semmi ilyen használhatóbb dolog, semmi, ami #title-t, vagy akár hasonlót tartalmazna). (Másik dolog, hogy a preprocess_html()-ben nem tudom, hogy hogyan kell olyat tenni, aminek a hatását aztán a template_process_page()-ben is látom, hogy ott feltételként tudjam használni.)
Ha valaki tudna elegánsabb megoldást, azt szívesen megismerném.
köszönöm
Ez a title nem az a title :) Ez úgy tűnik, határozottan a preprocess_html()-ben van. A
$variables['page']['content']['system_main']['profiloldal_neve']
tömb a profiloldalt-típus címét (pl. eladói profil) írja le, egyfajta alcímként jelenik meg a képernyőn. Nálam a #type #title, #prefix elemeket (ezekre nincs szükség) ill. egy view tömböt (a profiladatok) tartalmazza.De majd az profiloldal címét is ki kell kapcsolni, tehát valóban szükség lesz a preprocess_page()-re is. A két függvény közötti kapcsolat megteremtéséhez ezt találtam keresgélés közben.
Köszi a variable-passzolós
Köszi a variable-passzolós dolgot!
Olvastam, hogy ezen a ponton különösen izgalmas, hogy milyen sorrendben futnak le ezek, úgyhogy mindenhova betettem egy-egy drupal_set_message()-t, azt remélve, hogy a message-k sorrendje elárulja a feldolgozás sorrendjét. (A template_ kezdetűek az /includes/theme.inc-ben vannak definiálva.)
Ezt kaptam:
Aztán belekevertem a node-ot is, mert van hogy abban van valami fontos infó, amire jó lenne alapozni dolgokat... (a template_ kezdetű a /modules/node/node.module-ban definiálva).
Theme Developer
Theme Developer + Devel modulok kellenek neked. Már ha nem Views-ról van szó, mert akkor pedit a views beállító felület Advanced fül jobb legalján található Theme information menüpontban találod meg a választ a kérdésedre.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Úgy néz ki, sikerült
Köszi mindenkinek a tippeket, azt hiszem, sikerült mindent kitakarítani. A profiloldal címét a sminknév_preprocess_page()-ben, a profiltípus-címet pedig a sminknév_preprocess_user_profile_category()-ban lehetett elérni és kikapcsolni. Emellett a sminknév_preprocess_html()-ben hozzáadtam egy egyedi osztály a body-hoz.
Azzal végülis nem küzdöttem, hogyan lehet egyetlen helyen definiálni és utána a különféle preprocess-eknek átadni a profiloldal-típust meghatározó változót, mivel mindegyik függvényben sikerült beazonosítani. Nem állítom, hogy ez a legszebb és bombabiztos megoldás, de egyelőre működik.