Feladat: Full nézeteben szeretném külön formázni (két külön div) a summaryt (régi teaser) és a (summary mentes) bodyt
Bonyodalom: Full nézetben egyetlen bodyban van minden (a summary is). Ezt kéne szétszedni.
Ha szerkesztéskor külön kezelem a summaryt és bodyt, az már valami, de mivel sok-sok régi noderól is szó van, ez a megoldás nem tetszik.
Egy megoldás fel: a Teaser külön formázása témából tanulva és abba belekontárkodva elindultam egy úton:
- template.php-ban a THEME_preprocess_node()-ban újra betöltöm a node-ot (node_load), majd abból legyártatot a summary (text_summary). Így az már megvan.
- ugyanitt az alapértelmezett body-ból kivonom a summaryt (str_replace(summary,"",body)). Így az is megvan.
- Átadom az új summaryt és bodyt a node.tpl.php-nak, ahol beállítom, hogy a body field hidden legyen és beszúrom a render ($uj summary)-t és render ($uj body)-t.
Ez azért elég csúnya, mert pl. "lefejezi a mező megjelenítéseket". Itt tanulok:D7 - preprocess_node-ban body buherálása
működik, de csúnya
Sikerült egy megoldást gyártanom, de elég csúf
template.php
Most már olyan div-ekbe rakjuk, amilyenbe akarjuk
node.tpl.php:
Fontos még, hogy a "Manage fields"-nél beállítsuk, hogy oldal nézetben ne jelenjen meg a body.
Itt még nem vettem figyelembe ezt: ezzel lefejezed a mező megjelenítéséket
hát egyelőre így, de ez se túl szép
új nekem még ez a render dolog, szóval hirtelen így tudnám megcsinálni, lehet láma, szóljatok és behúzom ircen az lct.
működik, de nem tetszik nekem így. ennél egyszerűbben is mennie kell hetesben.
-
clear: both;
így rövidebb,
ezt találtam hasznosnak (a meglévő írásos doksikon kívül) a témában:
http://sf2010.drupal.org/conference/sessions/page-render-drill-down-drup...
template.php
-
clear: both;
az első fele még nem ok
Hű, sajnos azt hiszem nem jól fejeztem ki magam. (És tényleg le vagyok nyűgözve, hogy így belásol az én problémámba.)
Szóval épp az okozza a gondot, hogy a $vars['content']['body']['#items'][0]['safe_summary'] ÜRES. Az adatbázisban is üres. Az esetek 90%-ban. Így készült szinte minden node: a summary-ra sosem figyeltem, automatikusan kb. jó helyen vágta el.
A teaser nézetben természetesen van summary, de full nézetben üres. Igaz, hogy a full nézet body-jában minden benne van. ($vars['content']['body']['#items'][0]['safe_value'];
Vagyis én azt szeretném szépen, hogy full nézetben, ha üres a summary, akkor a full nézet bodyjából szedje ki az általában legyártott summary-t, hogy azt külön formázhassam. (Jaaj, talán még ígysem érthető.)
(De az utolsó sor sokat segít.)
a második fele bejön
Ez a $vars['content']['body'][0]['#prefix'] tetszik.
Bár gondolkozom abban, hogy full nézetbe lévő summary (amit külön akarok formázni) egy külön fieldbe kerüljön. Mert így a field managementben könnyen tudom majd ki-bekapcsolni esetleg, meg formázni meg minden. Szóval létrehozok egy field-et, amit weben keresztül üresen hagyok, de preprocessben beletöltöm ezt a full nézetes summary-t. De ez talán már más téma lesz.