page.tpl.php-ban milyen változók érhetők el?

mhncsa képe

sziasztok!

az weblapomon minden oldal tetején van egy flash header. ennek szereknék átadni változókat, hogy a különnböző odalakon más-más animáció játszódjon le a flashben.
a flash object cuccot beleépítettem a page.tpl.php-ba.
egyrészt arra rájöttem, hogy a
...
global $user;
...
uid
...
formában ez működik.
a kérdésem az lenne, hogy egyéb, pl. a node-okra vagy taxonomiákra vonatkozó változókat, hogy tudok elérni.
pl. feltettem a devel modul, az ugye elég sok mindent kiír, ha a dev load, dev render fülekre kattintok, de nem jövök rá, hogy az a modul honnan veszi az értékeket. (mármint nem sikerült kibogozni a forráskódot)
nekem kb. hasonló változókra lenne szükségem.
előre is köszönöm!

Fórum: 
mhncsa képe

most vettem észre, h lényeg nem látszódik
szval a kódrészlet

...
global $user;
...
<embed ...  header.swf?param1=$user->uid ...
...
0
0
crt képe

Szia.

Itt találod a page.tpl.php fájlban elérhető változók listáját: http://api.drupal.org/api/file/modules/system/page.tpl.php/6

Üdv: Zoli

0
0
mhncsa képe

szia!

köszi a választ, de az is lemaradt, hogy 5ös drupalt használok. :)
megnéztem a linket, viszont én arra gondoltam, hogy milyen változókat tudok elérni a

global $user;

-hez hasonlóan.
0
0
hosszu.kalman képe

http://drupal.org/node/11812

Ha pedig a node objektumot szeretnéd elérni akkor így megteheted:

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
  $node = node_load(array('nid' => arg(1)));
}
?>

Minden node-nak más az id-ja (nid), így az oldalakra más és más bannert tudsz feltenni.

0
0
mhncsa képe

köszönöm! ezt kerestem.

0
0
crt képe

Lehet, hogy valamit félreértek, de: "If you are in page.tpl.php displaying a node in full page view then $node is available to your template."

Ez alapján elérhető a $node objektum közvetlenül is.

Üdv: Zoli

0
0
hosszu.kalman képe

Ezt az eljárást akkor kell követni ha egy blokk-ban, vagy egy node-ban vagyunk. A page.tpl-ből elérhető a node objektum.

0
0
pp képe

ezzel itt:
 drupal_set_message(print_r(get_defined_vars(),true));

mindig megtudhatjuk, hogy milyen változó érhető el az adott helyen(névtérben)

ezzel meg:
 drupal_set_message(print_r($_GLOBALS,true));
mindig megtudjuk, hogy a globális névtérben milyen változók érhetőek el.

A node.tpl.php-ban és a page.tpl.php-ban(5.x-től felfelé és ha a node/x az útvonal) elérhető a $node ojjektum.

Ha a php beviteli formát használjuk akkor kell az általad használt formát használni, ugyanis ott nem a "Drupal" névterében vagyunk, hanem egy eval() függvény névterében. Ezt fontos tudnunk, hisz a webes felületen keresztül nem tehetünk be tetszőleges php kódot. A következő pl. hibát fog dobni.:

<?php if($mindegy){?>
<p>ez is mindegy</p>
<?php}?>

persze átírható, de Kopipészt Mester elvérzik ezen.

pp

0
0
hosszu.kalman képe

Köszönöm a javítást! Ez nem jutott eddig eszembe

0
0