Node preview megkülönböztető jelzés a body class-ba

Mityusz képe

A page.tpl.php fájlban a body class-ba szeretnék valamit kiíratni, de csak akkor, amikor a node a beküldés előtti előnézetben van. Tehát nem a teaserről van szó. Van-e a $node objektumnak ilyen tulajdonsága, ami megmondja, hogy éppen milyen állapotban van? Néztem az $op változót, de használható infót nem találtam még róla. Erre azért van szükség, hogy ne csak a részen belül tudjak sminkelni, hanem a teljes oldalon. A segítséget előre is köszönöm!

Mityusz képe

Erre azért van szükség, hogy ne csak a div class="preview" részen belül tudjak sminkelni, hanem a teljes oldalon.

0
0
Mityusz képe

No, akkor válaszolok magamnak, meg az utókornak :)
Miután napokig tanulmányoztam a drupal.org fórumokat és a forráskódokat, rájöttem, hogy amikor előnézetben vagyunk, akkor a $title változó értéke "Előnézet" egyébként pedig valami más. Tehát az ékezetmentesítés miatt:

if ($title=="Előnézet"){
  $elonezet="elonezet";
}

Aztán pedig a body-ba:

<body class="<?php print $elonezet;?>">
0
0
aboros képe

de nagyon érdekes kerülés, bravó. ;)
esetleg a t() függvényt használd inkább és ne simán az "Előnézet" legyen a feltétel, hanem a t('Preview') meg talán legyen egy plusz feltétel, hogy arg(0) == 'node' && (arg(1) == 'add' || arg(2) == 'edit') és akkor biztos node szerkesztés előnézetén vagy.

de kell legyen ennek elegánsabb módja. nem akartam még ilyet csinálni, de ha beleszaladnék, nem adnám itt fel. ;)

0
0

-
clear: both;

sgabe képe

Van-e a $node objektumnak ilyen tulajdonsága, ami megmondja, hogy éppen milyen állapotban van?

Igen, van neki.

if (isset($node->build_mode) && $node->build_mode == NODE_BUILD_PREVIEW) {
  // ez legyen, ha a node előnézetben jelenik meg
}
0
0
Mityusz képe

Köszönöm a válaszokat!
Ez jól hangzik, csak a page.tpl.php fájlban úgy tűnik nem működik. Hogyan lehetne ott is meghívni a $node->build_mode-ot? Vagy ez csak D7-ben működik?

0
0
sgabe képe

A $node objektum elérhető a page.tpl.php fájlban, ha éppen egyetlen nodeot jelenít meg, viszont a build_mode nem lesz benne, mert azt a node_preview() állítja be a klónozott objektumon.

Szóval gyanítom, hogy a legegyszerűbb (külön modul írás nélküli) megoldás, amit magad is találtál, persze aboros javaslatait figyelembe véve. Amit a dorgon írtak neked(?), az tökéletes.

0
0
Mityusz képe

A $title változóval aboros kiegészítésével teljesen jól működik, köszönöm mindkettőtöknek!

0
0