Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

PHP Variablen auslesen

Eingetragen von kloewer@drupal.org (79)
am 26.07.2007 - 10:51 Uhr in
  • Allgemeines zu Drupal
  • Drupal 5.x

Wie kann ich den die Variablen von Feldern auslesen und per PHP wiedergeben?

Habe einen neuen Inhaltstypen ertsellt und dem neue Felder zugeordnet wie Adresse, Strasse, Land.

Jetzt möchte ich diese gerne per PHP abfragen:

<?php
echo "Du wohnst in der $Adresse, $Strasse, $Land";
?>

Oder besser noch:

<?php
echo "<a href=http://www.googlemap.com/adresse=$Strasse+$Land> KLICK </a>";
?>

Wie aber komme ich an diese Variablen?

‹ php-my admin Frage zur Index bzw. /node ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Wo willst Du das anzeigen

Eingetragen von sanduhrs (1285)
am 26.07.2007 - 11:18 Uhr

Wo willst Du das anzeigen lassen?

--
sanduhrs - drupalcenter
--------------------------------
Stefan Auditor
http://erdfisch.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

<?php

Eingetragen von dawehner (2639)
am 26.07.2007 - 15:06 Uhr

<?php
node_load
($nid);
$node->adresse;
//usw
?>

denke mal das geht

Mein Blog: www.exper-tec.de
Deutscher IRC-Channel: irc.freenode.net #drupal.de je mehr desto besser
... Jabber-me: dereine@jabber.ccc.de Warum Jabber?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hmm, irgendwie nicht...

Eingetragen von kloewer@drupal.org (79)
am 28.07.2007 - 09:40 Uhr

Klappt irgendwie nicht so recht...

Habe einen Inhaltstyp, und da gibt es ein feld mit dem Wert field_strasse

Jetzt habe ich einen neuen Block angelegt und dem dem einen PHP Code in den Body geschrieben

<?php
echo "Hallo Welt!";
?>

Klappt auch wunderbar:

Wenn ich allerdings:

<?php
$node_load
($nid);
print
$node->field_strasse;
?>

Schreibe bleibt die Seite weiß

bei

<?php
print $node->field_strasse;
?>

Sieht man nichts vom Block...

Was mach ich falsch?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Irgend eine Idee?

Eingetragen von kloewer@drupal.org (79)
am 28.07.2007 - 10:45 Uhr

Hat irgendjemand ne Idee wo ich da nachschauen kann?

  • Anmelden oder Registrieren um Kommentare zu schreiben

So vielleicht?

Eingetragen von drubb (580)
am 28.07.2007 - 11:57 Uhr

Hallo,

versuch's mal so:

print $node->field_strasse[0]['value'];

Gruß,
Boris

  • Anmelden oder Registrieren um Kommentare zu schreiben

$nid

Eingetragen von md (3717)
am 28.07.2007 - 13:13 Uhr

<?php
$node_load
($nid);
print
$node->field_strasse;
?>

So geht das auch nicht, da $nid NULL ist. Musst du dir erst über arg(1) holen. Um rauszufinden wie du auf die einzelnen Felder im zurückgelierfertem Array zugreifst probier mal:

<?php
var_dump
($node)
?>

Im Quellcode der Seite ist die Ausgabe schön übersichtlich formatiert.

vg
--
md - DrupalCenter

mdwp* :: Drupal Services

  • Anmelden oder Registrieren um Kommentare zu schreiben

Stimmt

Eingetragen von drubb (580)
am 28.07.2007 - 14:06 Uhr

Meinolf hat natürlich recht, in Blöcken steht $nid nicht zur Verfügung, bzw. nur als Zufallswert. Hatte ich übersehen.

Ansonsten zur Erklärung des oben genannten Print Befehls:

CCK erweitert das Objekt $node grundsätzlich mit mehrdimensionalen Arrays, zum einen weil ein Feld ja mehrere Werte haben könnte (deshalb $field_strasse[0]), und zum anderen um zwei unterschiedliche Repräsentationen des Feldinhalts bereitzustellen, nämlich "pur" und ggf. HTML-formatiert (wäre hier $field_strasse[0]['value'] bzw. $field_strasse[0]['view']).

Mit dem oben erwähnten var_dump kann man das schön sehen.

Gruß,
Boris

  • Anmelden oder Registrieren um Kommentare zu schreiben

Workaround

Eingetragen von kloewer@drupal.org (79)
am 28.07.2007 - 15:54 Uhr

Habs jetzt so gelöst das ich in der node.tpl.php die variablen abfrage und als Konstanten speichere, dei danach auch in den Blöcken zur Verfügungh stehen:

<?php
$strasse
= $node->field_strasse[0]['view'];

define('STRASSE', $strasse);
?>

in den Blöcken sowie sonst auf der seite stehen sie dann über

<?php
echo STRASSE;
?>

zur Verfügung

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mehr dazu:

Eingetragen von kloewer@drupal.org (79)
am 28.07.2007 - 16:24 Uhr

http://www.drupalcenter.de/node/4365

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sicher ?

Eingetragen von drubb (580)
am 28.07.2007 - 18:51 Uhr

Bist Du sicher, dass diese Methode Multi-User-fähig ist? Was passiert wenn zwei User gleichzeitig die Information abrufen? Ich würde da eher mit Session-Variablen arbeiten:

$_SESSION['STRASSE'] = $node->field_strasse[0]['view'];

bzw.

echo $_SESSION['STRASSE'];

Gruß,
Boris

  • Anmelden oder Registrieren um Kommentare zu schreiben

Konstante

Eingetragen von md (3717)
am 28.07.2007 - 19:21 Uhr

Ich glaub auch nicht, dass das so sinnvoll ist. Habs aber noch nicht ausprobiert. Eigentlich ist der Wert einer Konstanten unveränderlich. Vielleicht geht es ja auch mit global $strasse.
Ausserdem würd das auch mit einer View (output = block) gehen.

vg
--
md - DrupalCenter

mdwp* :: Drupal Services

  • Anmelden oder Registrieren um Kommentare zu schreiben

Globale Variablen

Eingetragen von drubb (580)
am 28.07.2007 - 22:23 Uhr

Hallo,

globale Variablen gelten meines Wissens auch systemweit (für alle User), d.h. auch hier würden sie sich gegenseitig die Inhalte überschreiben...

Und was die Konstantenn angeht, laut PHP-Handbuch lassen sie sich nach der Definition weder ändern noch löschen.

Gruß,
Boris

  • Anmelden oder Registrieren um Kommentare zu schreiben

global $user

Eingetragen von md (3717)
am 28.07.2007 - 23:01 Uhr
bb schrieb

Hallo,

globale Variablen gelten meines Wissens auch systemweit (für alle User), d.h. auch hier würden sie sich gegenseitig die Inhalte überschreiben...

Gruß,
Boris

Das denke ich nicht. Nehm als Beispiel global $user. Die Variable liefert mir immer das User Objekt des gerade eingelogten Besuchers einer Site.

Was die Konstanten betrifft bestätigst du meine Meinung.

vg
--
md - DrupalCenter

mdwp* :: Drupal Services

  • Anmelden oder Registrieren um Kommentare zu schreiben

Es war spät :-)

Eingetragen von drubb (580)
am 29.07.2007 - 11:06 Uhr

Du hast natürlich recht, ich war gedanklich ganz woanders, nämlich bei den Drupal-eigenen Variablen, die man mit variable_set und variable_get ansprechen kann. DIE gelten systemweit. Die GLOBAL Variablen tun das nicht.

Keine Kommentare nach 23 Uhr...

Gruß,
Boris

  • Anmelden oder Registrieren um Kommentare zu schreiben

Was immer und ueberall

Eingetragen von Frando (16)
am 01.08.2007 - 13:17 Uhr

Was immer und ueberall funktioniert (egal ob in einem Block, in irgend einem Template wie z.B. page.tpl.php oder auch in template.php) ist die folgende Methode:

<?php
if (arg(0) == 'node' && is_numeric(arg(1))) { // Fuehrt den folgenden Code nur aus, wenn wir uns auf einer node-Seite befinden
 
$node = node_load(arg(1)); // Laedt die momentan betrachtete Node.
 
print_r($node); // Gibt dir eine Uebersicht ueber alle zur Verfuegung stehenden Eigenschaften des $node-Objektes.
  // Einzelne Variablen koennen jetzt mit
  // print $node->foo;
  // ausgegeben werden.
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 3 Tagen 16 Stunden
  • Hey danke
    vor 4 Tagen 10 Stunden
  • Update: jetzt gibt's ein
    vor 5 Tagen 5 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 2 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 2 Tagen
  • Kannst doch auch alles direkt
    vor 1 Woche 6 Tagen
  • In der entsprechenden View
    vor 1 Woche 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 6 Tagen
  • gelöst
    vor 4 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 14 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association