[gelöst] D7 Views Php: Feldinhalte via PHP ausgeben | alternativ im Template lösbar?
am 01.06.2012 - 09:02 Uhr in
Hallo und guten Morgen :)
Ich möchte via Views-PHP ein Feld auslesen und entsprechend dem Wert ein Bild in einem bestimmten Bildstil ausgeben.
Mein Ansatz sah folgendermaßen aus: ich hole mir 2x das Bild der entsprechenden node, einmal mit dem Stil "klein" und einmal "groß".
Es gibt noch bei der Node ein Bool-Feld mit den Werten klein / groß bzw 1 und 0.
wenn ich jetzt via PHP auf $data und $row zugreife, wird mir bei den Feldern nur die Node-ID ausgegeben. ein print_r zeigt mir, dass dort auch nur diese Werte stehen.
Ist es möglich, irgendwie an die "echten" Werte zu kommen, um
a) die Entscheidung zwischen groß und klein aus dem Feld "bildgroesse" via If/else zu konstruieren?
b) ein Views-Feld direkt in PHP einzubinden, so wie bei der Einstellung "rewrite Results"?
Views selbst kann ja auch die echten Inhalte rendern. Also muss das ja auch irgendwie per PHP gehen. Ne stunde Googeln hat mir aber leider nicht weiter geholen.
Ich habe auch schon versucht im Template des Node-Typs ein Bildstil anzuwenden. Dort habe ich aber auch keinen Erfolg gehabt und versuche mich jetzt in Views.....
Aber wenn Ihr eine Template-Basierte Lösung wisst, nehme ich die auch ;)
besten Dank und ein schönes Wochenende
Kai
- Anmelden oder Registrieren um Kommentare zu schreiben
Einen Brauchbaren Wert für
am 01.06.2012 - 10:07 Uhr
Einen Brauchbaren Wert für die Bildgrösse habe ich im Objekt / Array data $data->_field_data['nid']['entity']->field_bildgroesse['und'][0]['value'] mittlerweile entdeckt. Jetzt muss ich nur noch ne möglichkeit finden, ein View-Feld zu printen :)
Gelöst
am 01.06.2012 - 11:55 Uhr
Habe mittlerweile eine andere Lösung gefunden, die via image_style_url eine gültige URL zum gestylten bild erstellt.
Ich finde es zwar nicht sauber gelöst, aber vielleicht hilft es ja noch mal jemandem
<?php
if(isset($data->_field_data['node_field_data_field_content_image_nid']['entity']->field_image['und'][0]['uri']))
{
$bild=$data->_field_data['node_field_data_field_content_image_nid']['entity']->field_image['und'][0]['uri'];
//print ($data->_field_data['nid']['entity']->field_bildgroesse['und'][0]['value']);
if(isset($data->_field_data['nid']['entity']->field_bildgroesse['und'][0]['value']) and $data->_field_data['nid']['entity']->field_bildgroesse['und'][0]['value']==1)
{
$style="content-image";
print('<img src="'.image_style_url($style, $bild).'"/>');
}
if(isset($data->_field_data['nid']['entity']->field_bildgroesse['und'][0]['value']) and $data->_field_data['nid']['entity']->field_bildgroesse['und'][0]['value']==0)
{
$style="box-image";
print('<img src="'.image_style_url($style, $bild).'"/>');
}
}
?>