[geloest ]Auf Daten im Content Array zugreifen?
am 27.10.2011 - 15:53 Uhr in
Hallo
Ich schreibe gerade mein erstes eigenes Template fuer eine Node-Ansicht.
Dabei kann ich mithilfe der Standardvariablen wie $title
auf die in jedem Inhaltyp vorhandenen Daten zugreifen. Doch wie sieht es mit den mit CCK erstellten eigenen Feldern aus?
Ueber <?php print render($content['field_referenzbild']);?>
kann ich mir mein Bild schon sehr schoen rendern lassen, allerdings nur komplett mit img-Tag etc.. Wie sieht es aus, wenn ich nur an einen Teil der Arrayinformation heran moechte, wie z.B. der Bild URL (markiert in meinem Bild)
Mit $content['field_referenzbild']['und']['0']['uri']
komme ich nicht heran. da sagt er mir dass er 'und' nicht findet.
gleiches gilt fuer den anderen Feldwert den ich markiert hab.
Im Anhang befindet sich ein Bild mit einem ausschnitt aus dem mit print_r ausgegebenen $content.
Gibt es eine Moeglichkeit an diese Werte heran zu kommen ohne mit render() sich alles komplett erstellen zu lassen?
Anhang | Größe |
---|---|
Unbenannt.PNG | 221 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
Dann probier doch mal, über
am 27.10.2011 - 17:45 Uhr
Dann probier doch mal, über die Struktur, die du in deinem Bild siehst, auf die uri zuzugreifen. Momentan gehst du ja über $content, allerdings liegt die von dir hervorgehobene Information nicht im von dir verwendeten Pfad, sondern unterhalb des Arrays
"[nodes]"
(wo auch immer das her kommt).file_create_url
am 27.10.2011 - 22:14 Uhr
Du musst Dir, soweit ich es weis, erst einmal die Url zum Bild holen, da dieses ja über den Wrapper ausgegeben wird, da hilft Dir file_create_url
<?php
// hole datei uri aus filefield x
$pathToFile = $node->field_DeinFeld[LANGUAGE_NONE][0]['uri'];
// file_create_url macht aus public://xxxx eine url...
'url' => file_create_url($pathToFile),
?>
Der Code ist nur ein Beispiel, wie ich ihn für ein Video verwendet hab und muss natürlich noch angepasst werden ;-)
Array noch mal ordentlicher
am 28.10.2011 - 12:54 Uhr
Dann probier doch mal, über die Struktur, die du in deinem Bild siehst, auf die uri zuzugreifen. Momentan gehst du ja über $content, allerdings liegt die von dir hervorgehobene Information nicht im von dir verwendeten Pfad, sondern unterhalb des Arrays "[nodes]" (wo auch immer das her kommt).
Ich weiss auch nicht, woher das Nodes kam. Es ist nur da, wenn ich mehrere Eintraege in der View habe. Ich habe mal alle deaktiviert, bis auf einen zum testen und dann sieht das ganze wie folgt aus:
das ist die Ausgabe von
<?php print_r($content);?>
:http://www.flickr.com/photos/69138034@N05/6288225611/in/photostream/ligh...
Ich kann nichtt so wirklich was mit den # vor den ersten Werten anfangen.
Interessant finde ich, dass ich trotz der vielen Ebenen mit
<?php print render($content['field_referenzbild']);?>
auf den Array field_referenzbild zugreifen kann, ohne mich durch die Ebenen zu hangeln. Nur tiefer komme ich nichtt rein.Ich braeuchte halt wirklich die beiden Rot umrandeten Werte.
Die Funktion file_create_url hat so nichtt funktioniert, ich muss mal schauen, ob ich die umgeschrieben bekomme. Aber auch dafuer brauchh ich ja den 'uri' Wert den ich nicht mals so als Text abrufen kann. =S
Problem geloest
am 28.10.2011 - 13:10 Uhr
Ok, mithilfe des Node-Objekts bin ich an meine Daten gekommen. Das Schluesselwort lag wirklich bei LANGUAGE_NONE anstelle des in meinem Array auftauchhenden 'und' zu verwenden.
Ich bin nun mit den beiden Begriffen an die Rotumrandeten Werte herangekommen:
<?php
echo $node->field_projektlink[LANGUAGE_NONE][0]['value'];
$pathToFile = $node->field_referenzbild[LANGUAGE_NONE][0]['uri'];
$bildurl = file_create_url($pathToFile);
echo $bildurl;
?>
Danke fuer eure Hilfe :-)