[gelöst] Abfrage auf Feldinhalt in views-view-fields--xy.tpl.php
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 27.03.2014 - 09:52 Uhr in
Hallo zusammen!
Ich bastel mir gerade eine eigene views-view-fields--xy.tpl.php
Darin möchte ich auf den Inhalt eines Feldes (boxtyp) abfragen und entsprechend eine andere Ausgabe machen.
<?php if (!empty($field->separator)): ?>
<?php print $field->separator; ?>
<?php endif; ?>
<?php print $field->wrapper_prefix; ?>
<?php print $field->label_html; ?>
<?php print $fields['field_boxtyp_1']->content;?>
<?if (($fields['field_boxtyp_1'])=="1")
{echo "passt";}else{echo "passt nicht";}?>
body2: <?php print $fields['body']->content; ?>
<?php print $field->wrapper_suffix; ?>
Also wenn der Inhalt von $fields['field_boxtyp_1']=="1" ist -> soll er "passt" ausgeben, ansonsten "passt nicht".
Obwohl im Feld "1" steht, wird trotzdem "passt nicht" ausgegeben. Wo habe ich den Fehler?
Danke schon mal für Eure Hilfe
Gruß, Markus
- Anmelden oder Registrieren um Kommentare zu schreiben
Der Fehler liegt im Operator
am 27.03.2014 - 10:08 Uhr
Der Fehler liegt im Operator. Es ist hier der Unterschied zwischen !== und !=. Wenn Du Zahlen in Double Quotes packst werden die als Text interpretiert und Dein eingesetzter Operator verlangt Typgleichheit. 1 und "1" sind bei dem Operator !== unterschiedlich, denn es wird nicht nur der Wert abgefragt.
Hi, danke für den Tipp -
am 27.03.2014 - 10:25 Uhr
Hi,
danke für den Tipp - stimmt, dass ist natürlich ein "Anfängerfehler", was ich da gemacht habe.
Wenn ich die Abfrage aber ändere
<?php if ($fields['field_boxtyp_1']==1)
{
echo "passt";
print $fields['field_boxtyp_1']->content;
}
else
{
echo "passt nicht";
print $fields['field_boxtyp_1']->content;}?>
}
geht er immer in die "passt" Bedingung, obwohl im Feld boxtyp_1 auch der Wert z.B. 3 steht.
Bei der Ausgabe print $fields['field_boxtyp_1']->content; erkennt die Ausgabe auch, dass 3 drinsteht, trotzdem geht es in die "passt" Bedingung.
Gruß
Markus
Hast Du DIr denn mal die
am 27.03.2014 - 10:45 Uhr
Hast Du DIr denn mal die Struktur von $fields['field_boxtyp_1'] angesehen? Das ist mit an Sicherheit grenzender Wahrscheinlichkeit ein Array. Der Wert, den Du suchst, liegt vielleicht in $fields['field_boxtyp_1']['und'][0]. Laß Dir doch mittels print_r die Struktur anzeigen.
Danke für den Tipp. Leider
am 27.03.2014 - 13:48 Uhr
Danke für den Tipp.
Leider lässt sich kein print_r auf $fields['field_boxtyp_1'] machen...
das muss
am 27.03.2014 - 14:50 Uhr
das muss $field_boxtyp_1['value'] heißen in der abfrage, je nach feldtyp.
$tmp=array_pop(field_get_items($entity_type, $entity, 'field_boxtyp_1'));
$tmp['value']
Vielen Dank für Eure
am 02.04.2014 - 08:02 Uhr
Vielen Dank für Eure Hilfe.
Jetzt geht es - Problem war, dass durch die View "mehr Inhalt" im Feld stand, als die Zahl. So war z.B. noch ein Div Container enthalten.
Durch Einstellung auf "Formatter "Unformatiert" in der View, klappt jetzt auch die Abfrage!