Alle vorhandenen Variablen und Arrays einer Seite ausgeben
Eingetragen von DrupalFan (1646)
am 18.05.2009 - 17:32 Uhr in
am 18.05.2009 - 17:32 Uhr in
Ich möchte das Modul "photos" etwas verändern. Ich befindet mich auf dem Pfad
/photos
und editiere die Datei
photos_default.tpl.php
eventuell muss auch das Modul
photos.module
angepasst werden.
Nun bin ich auf
/photos
und möchte dort alle Variablen und Arrays, die existieren, ausgeben. Ich verwende auch "devel", aber hier sehe ich hauptsächlich Theming-Variablen.
Ich will die Seite /photos etwas umschreiben, anders verlinken als Standard und als Ergebnis soll so ca. das hier rauskommen (genial einfach):
http://www.aguaviva.com/media/photos
Wie kann ich alle Variablen und Arrays, die auf /photos existieren, ausgeben?
vielen Dank
- Anmelden oder Registrieren um Kommentare zu schreiben
Suche mal in den Firefox
am 18.05.2009 - 21:43 Uhr
Suche mal in den Firefox Addons nach Drupal. Da gibts ein "Drupal for Firebug", das ist das was Du brauchst. Du brauchst natürlich Firefox, aber ich nehme nicht an, dass jemand mit IE irgendwas entwickelt :-)
Drupal for Firebug: Gibt nur Startseiten-Werte aus
am 18.05.2009 - 22:18 Uhr
Es ist eigenartig, aber Drupal for Firebug gibt nur Werte ($node, $view, ...) aus, die sich auf der Startseite befinden, obwohl ich aktuell auf der Seite
/photos
bin und dort jene Node-Teaser gar nicht existieren, welche Firebug ausgibt als Variablen (die befinden sich nur auf der Startseite).
Was ist denn hier los?
mithilfe
am 22.05.2009 - 18:29 Uhr
mithilfe von
<?php
dsm(get_defined_vars());
?>
Kannst du alle variablen die gerade Verfügbar sind ausgeben
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.de
SirFiChi ist auch dein Halbgott.
Doku zu devel-Modul
am 22.05.2009 - 19:06 Uhr
Danke, das ist mal ein guter Tipp.
Manche Objekte werden aber nur mit
∞ (Recursion)
beschrieben. Warum denn das?
Und wo gibt es denn weitere solche Dokus zum Devel-Modul?
Variablen in einem Node nicht auffindbar:dsm(get_defined_vars())
am 03.06.2009 - 17:11 Uhr
Ich werde das nicht schlau, wo sind nur all die Variablen hin?
Ich rufe einen Node
/node/134
über den URL alias auf. Es handelt sich um einen Video-Node (Content Type Video).
Aber wo sind all meine Variablen hin?
Ich möchte die Node-ID, weil ich sie brauche. Ich möchte auch Variablen wie $content und andere nutzen, einfach alles. Aber die Variablen sind nicht da!?
Weder mit dsm(get_defined_vars()) noch mit print_r($node) oder print_r($content) oder ähnlich kann ich die Variablen ausgeben, die sind alle leer.
Ich befinde mich direkt in der tpl-Datei und brauche dort die Variablen. Dort gebe ich sie auch aus. Anscheinend sind die dort nicht vorhanden. Warum nicht? Auch nicht, wenn ich zuvor "global $node, $content;" schreibe.
Und wie bringe ich die nid und andere wichtige Variablen der Noden in die tpl-Datei?
Benutze ich das Devel-Modul und gehe auf
node/134/devel/load
erhalte ich ein Objekt stdClass. Dort scheint die nid auf. Aber was ist stdClass und wie greife ich darauf zu? Und wie greife ich darauf im Template-File (tpl.php) zu?
Vielen Dank.
Variablen per mysql_query aus DB holen ist einfacher
am 18.06.2009 - 22:13 Uhr
Ich bin jetzt draufgekommen, dass es oft einfacher ist, mit mysql_query direkt auf die Datenbank zuzugreifen und sich die benötigten Werte per PHP zu holen, als zu raten, welche Variablen irgendwo existieren, was sehr mühsam ist.
Stellt sich die Frage, wie man korrekt ein DB-Query ausführt, um nicht direkt mit mysql_query() zu arbeiten, Drupal hat doch bestimmt eigene Funktionen.
Variablen
am 18.06.2009 - 22:26 Uhr
Moin.
Du möchtest db_query verwenden.
Und die Variablen bekommst Du in der tpl.php mittels
get_defined_vars()
.stdClass
ist einfach eine Standard-Klasse. In diesem Fall höchstwahrscheinlich das Node-Objekt ($node).Auf die Attribute in diesem Objekt kannst Du dann ganz einfach mit
$node->nid
zugreifen.Zu weiteren Details zu Objekten und Klassen in PHP empfehle ich das PHP-Handbuch und gängige Tutorials.
hth,
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Variablen oft nicht auffindbar
am 18.06.2009 - 22:33 Uhr
Ich habe schon weiter oben geschrieben, dass es fast nie klappt:
Weder mit dsm(get_defined_vars()) noch mit print_r($node) oder print_r($content) oder ähnlich kann ich die Variablen ausgeben, die sind alle leer. ...
dsm
am 19.06.2009 - 07:13 Uhr
Wo rufst Du die Debug-Ausgaben denn auf? In der node.tpl.php?
Und was genau meinst Du mit "leer"? Kommt überhaupt keine Ausgabe? Oder (bei Verwendung von
var_dump
stattprint_r
) sowas wie""
oderArray()
?Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Die Variablen existieren
am 19.06.2009 - 13:36 Uhr
Die Variablen existieren nicht, daher leere Ausgabe!
Und wo ist einfach erklärt: An den ganz unterschiedlichsten Stellen. Egal wo man ein paar Zeilen Code dazuprogrammieren will und auf vorhandene Variablen zugreifen will, immer hat man das gleiche Problem: Die Variablen existieren in den meisten Fällen nicht.
Variablen
am 19.06.2009 - 22:40 Uhr
Wo genau versuchst Du, auf die Variablen zuzugreifen? In der node.tpl.php?
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Überall
am 20.06.2009 - 09:24 Uhr
Und wo ist einfach erklärt: An den ganz unterschiedlichsten Stellen.
Eine tpl ist ein schlechter
am 20.06.2009 - 10:28 Uhr
Eine tpl ist ein schlechter Platz für dsm & Co. Weil zu dem Zeitpunkt, der Inhalt ($content) ein String ist und damit kann man nicht viel anstellen.
dsm($node) in der node.tpl geht, da dies ja ein Object ist und somit sieht genauso aus wie "devel laden"
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Antwort
am 20.06.2009 - 10:59 Uhr
Wenn Du nicht verraten willst, in welchen Dateien (respektive Funktionen) Du auf die Variablen zugreifen willst, will ich auch nicht weiter helfen ...
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Überall
am 20.06.2009 - 20:33 Uhr
Ich habe jetzt an so vielen verschiedenen Stellen Variablen gebraucht, dass man das gar nicht alles aufzählen kann. Sprich ich will wissen, wie es überall, einfach überall geht. Dann weiß man das nächste Mal, egal wo man gerade was programmieren will und eine Variable ausgeben will, wie man zu allen vorhandenen Variablen kommt. Egal wo man gerade ist.
Die $variablen erfährst du
am 20.06.2009 - 22:24 Uhr
Die $variablen erfährst du mit
<?php
dsm(get_defined_vars());// devel installieren
?>
Und Rekursiv -> einmal in das array variables schauen, dort sind zb das user object bzw. node object etc. (grad durchgeführt in der node.tpl)
Wenn du das nicht verstehst, keine Lust hast PHP zu lernen etc. haste pech gehabt, von nichts kommt nichts.
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Variablen
am 21.06.2009 - 10:22 Uhr
Genau.
Und falls man (aus welchen Gründen auch immer) devel nicht installieren möchte, tuts ein
<?php
drupal_set_message('<pre>'. var_dump(get_defined_vars(), 1) .'</pre>');
?>
<?php
error_log(var_dump(get_defined_vars(), 1));
?>
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Leider habt ihr oben nicht gelesen
am 21.06.2009 - 20:32 Uhr
...
Weder mit dsm(get_defined_vars()) noch mit print_r($node) oder print_r($content) oder ähnlich kann ich die Variablen ausgeben, die sind alle leer.
...
doch habe ich. um das
am 21.06.2009 - 21:00 Uhr
doch habe ich. um das glaubhaft zu machen, nehme bitte dein vorgehen auf von der theme auswahl bis zum betrachten einer node.
Das nicht alle Variablen einen Wert haben müssten ist ja wohl klar.
----------------------------------------
http://tobiasbaehr.de/
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Ein Forum ist kein Ersatz für das www (Google.de).
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.