egy megoldás
Sikerült egy megoldást gyártanom a problémára. :)
template.php
function OWNTHEME_preprocess_node(&$vars) { if ($vars['page'] == TRUE ) { //ujra betoltjuk a nodeot, hogy legyen erteke a teasernek, ne csak egy kapcsolo legyen $node = node_load($vars['nid']); //csak az érdekel, ha nincs külön summary if($node->body[$node->language][0]['summary'] == '') { //megkérjük, hogy alkossa meg a summary-t, ahogy szereti $text = text_summary($node->body[$node->language][0]['value'], $node->body[$node->language][0]['format']); // formázza is meg szépen $vars['summary_x'] = check_markup($text, $node->body[$node->language][0]['format'], $node->language, FALSE); } // az új $vars['summar_x']-be betoltuk a kiemelendő summary-t most az új $vars['body_x']-ből kiszedjük, hogy ne legyen duplázás $vars['body_x'] = str_replace($vars['summary_x'],"",check_markup($node->body[$node->language][0]['value'], $node->body[$node->language][0]['format'], $node->language, FALSE)); } }
Most már olyan div-ekbe rakjuk, amilyenbe akarjuk
node.tpl.php:
print("<div class='summary_x'>"); print render($summary_x); print("</div>"); print("<div class='body_x'>"); print render($body_x); print("</div>");
Fontos még, hogy a "Manage fields"-nél beállítsuk, hogy oldal nézetben ne jelenjen meg a body.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
nem értem pontosan mire kell ez
nekem úgy működik a drupal 7, hogy ha egy node szerkesztésekor az edit summary -re kattintok és a summaryt kitöltöm, akkor mentés után teaser nézetben a summary jelenik meg, full nézetben a node body, summary nélkül ahogy kell. alapból így működik. vagy nem értem mi a probléma :)
node szerkesztése: https://skitch.com/aboros/rt6fm/edit-article-appellatio-virtus-seven
teaser nézet: https://skitch.com/aboros/rt6fs/seven
full nézet: https://skitch.com/aboros/rt6fu/appellatio-virtus-seven
amúgy ez már egy új kérdés, légyszi nyiss neki új témát. köszi.
-
clear: both;
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
ezzel lefejezed a mező megjelenítéséket
minden így módosított mezőt akkor hiddenre kell állítanod mindig. amivel használhatatlanná teszed a node display uit. (mert ugyis mindig minden hidden lesz, hiszen kodbol variálod)
a mezőnek ugyan úgy van előfeldolgozója, mint a nodenak.
devel_themer modul segít.
minden aminek van .tpl.php -ja, van előfeldolgozója is. ha a mezőt akarod variálni, a mező előfeldolgozójában tegyed, ne a nodeban.
-
clear: both;
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
a probléma
Olyan full nézet kell, ahol a teaser és a (teaser nélküli) body látható, de külön div-ben. (Hogy közéjük lehessen rakni valamit. Hogy a külön lehessen formázni a teaser-t.)
a) Ha azt akarom, hogy néhány nodenál a teaser csak a teaser nézetben jelenjen meg. Full nézetben pedig a body (a teaser nélkül), akkor úgy csinálom, ahogy mutattad. Külön veszem a summary-t.
b) De én sokszor a teaser-t szeretném látni a full nézetben is, csak nem egybeöntve az egészet (ahogy alapértelmezetten megy, ha szerkesztéskor "Hide summary" van), hanem külön: summary és teaser. Ez a problémás.
A b-t meg lehetne úgy oldani, hogy minden egyes node-nál külön szerkesztem a treaser-t és a body-t, ahogy a linkelt szerkesztés képen van. Majd a full nézetbe belereakom a body-t (amihez így nem tartozik a treaser) és valahogy meghívom a treaser-t.
De nem szeretném az összes régi nodeomat így átszerkeszteni. Ezért kell valami ilyesmi buherálás.
(Talán így érthetőbb.)
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
a $content kerül renderelésre, a bodyt hiába piszkálod
ha megnézed a node.tpl.php -t, ilyen van benne, hogy render($content)..
ami a $vars['content'] alatt van, azt variáljad és minden sztár lesz.
kb:
function PROBA_preprocess_node(&$vars) { $vars['content']['body'][0]['#markup'] = '<strong>Yahoo, it works!</strong>'; }
ez minden node 'body' mezőjét mindig yahoo it works -re cseréli. tplhez nem nyúltunk.
-
clear: both;
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
új téma
nyiss új témát kérlek.
-
clear: both;
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
bocs
bocs. (az előbbi megjegyzésedet elvolvastam. de csak a linkekig. basszus)
nyitottam új témát: D7 - Summary és Body szétválasztása full nézetben
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
(nem szép) megoldás
template.php:
note.tpl.php:
print render($modositott_{fieldname});
Ez így remekül működik. Annyi kell még, hogy a field egyébként "hidden" legyen. (Különben kétszer is megjenne.) Pl. itt lehet ilyet álíltani: admin/structure/types/manage/blog/display