Entschuldigung für den Code im Titel, ich könnte mir keinen klareren Weg vorstellen, ihn zu fragen.
Ich habe mehrere Knoten des location
Inhaltstyps und eine Ansicht, in der Teaser dieser Knoten ausgegeben werden. Ich möchte einige benutzerdefinierte Dinge tun node--location.tpl.php
, um die Teaser überall dort zu beeinflussen, wo sie angezeigt werden. Wenn ich einfach dpm($node)
an die Variablen komme, befinden sich einige Feldwerte nicht immer an derselben Stelle.
Zum Beispiel habe ich field_phone
das nur identisch formatierte Telefonnummern. Für den ersten Knoten in dieser Ansicht ist dieses Feld wie folgt strukturiert $node->field_phone['und'][0]['safe_value']
. Aber für den zweiten Knoten ist es einfach $node->field_phone[0]['safe_value']
.
Ich weiß, dass und
das mit Übersetzungen zu tun hat und vielleicht "undefiniert" bedeutet. Ich mache nichts mit Übersetzungen oder Lokalisierung oder Sprachen auf der Site, daher unterscheidet sich dieser Knoten auf diese Weise nicht von anderen Knoten.
Was verursacht dies und gibt es eine Funktion oder etwas, das mir helfen kann, den Wert leicht zu testen und zu ermitteln, oder muss ich meinen eigenen rollen?
EDIT : Chris Rockwell unten weist darauf hin field_get_items()
. Dies schien mein Problem auf der Website zu lösen, an der ich neulich arbeitete. Aber jetzt, auf einer anderen Seite, scheitert es genau aus dem Grund, den ich hier anspreche.
Ich habe eine Ansicht, die drei Knoten ausgibt. Aus irgendeinem Grund erhalte ich dpm($node)
in der node--node-type.tpl.php
Datei sechs variable Dumps. Der erste hat $node->field_link_image['und'][0]
, während alle fünf anderen - EINSCHLIESSLICH des Duplikats desselben Knotens - nur haben $node->field_link_image[0]
. Und jetzt field_get_items()
schlägt es stillschweigend fehl und gibt auf diesen letzten fünf Knoten false zurück.
Also gehe ich zurück zu meiner ursprünglichen Frage: Was verursacht diesen Unterschied zwischen einigen Knotenvariablen und anderen und was kann ich dagegen tun?
field_link_image
mehrere Werte annehmen?
field_view_value()
und das Delta auf das$item
übergeben.