Inhaltstyp --> Auswahlfeld --> Ausgabe nicht als Text sondern als Grafik, aber wie???

am 20.12.2011 - 15:33 Uhr in
Hallo,
ich habe folgendes Problem. Ich habe im Inhaltstyp ein Auswahlfelddefinierte (ja/nein kann Ausgewählt werden). Nun möchte ich aber das bei der Ausgabe nicht der Text kommt, sondern eine Grafik. Mit php kenne ich mich nun nicht wirklich aus. Nun meine Fragen:
1) Wo muss ich das Definieren (Im Template oder in den Eigenschaften des Feldes)?
2) Hat zufällig auch jemand ein Php-Code dafür parat?
Herzlichen dank schon mal.
Grüße,
Manu
- Anmelden oder Registrieren um Kommentare zu schreiben
hi manuZitat:1) Wo muss
am 20.12.2011 - 16:23 Uhr
hi manu
1) Wo muss ich das Definieren (Im Template oder in den Eigenschaften des Feldes)?
das musst du im template machen
eben da wo die ausgabe stattfindet und der code
müsste ungefähr so aussehen
<?php
//abfrage ob das feld gesetzt ist
if(isset($content['field_dein_janein_feld'])){
//wenn ja gewählt wurde gib das ja bild aus ansonsten das nein bild
if($content['field_dein_janein_feld']['#items'][0]['value']==1){
return "<img src='pfad/zu_deinem_bild_bei_ja.jpg' >";
}else{
return "<img src='pfad/zu_deinem_bild_bei_nein.jpg' >";
}
}
?>
du musst jetzt also 'nur'
-> rausfinden welches template die ausgabe 'macht'...[ok blöd gesagt]
(dabei hilft dir das modul theme developer
http://drupal.org/project/devel_themer)
-> dann so wie du dein feld benannt hast das entsprechend ersetzen bei
_dein_janein_feld
-> ein bild anlegen für ja und eins für nein, das enstprechend bei
pfad/zu_deinem_bild_bei_ja.jpg
pfad/zu_deinem_bild_bei_nein.jpg
reinsetzen
hoffe ich konnte dir ein bisschen helfen :)
gruss
stef
danke, aber..
am 21.12.2011 - 12:02 Uhr
Hallo Stef,
tausend Dank vorab, leider kommt ne Fehlermeldung:
Parse error: syntax error, unexpected T_STRING, expecting ']' in /mnt/webg/b2/92/52935692/htdocs/drupal6/modules/contemplate/contemplate.module(833) : eval()'d code on line 184
so sieht der Code aktuell aus:
<?php
if(isset($content['field_mediated])){
if($content['field_mediated']['#items'][0]['value']==1){
return "<img src='themes/garland/images/green.gif' >";
}else{
return "<img src='themes/garland/images/red.gif' >";
}
}
?>
Grüße,
manu
Teste mal folgendes
am 21.12.2011 - 12:15 Uhr
Teste mal folgendes:
<?php
if (isset($content['field_mediated'])) {
if ($content['field_mediated']['#items'][0]['value'] == 1) {
return theme('image', 'themes/garland/images/green.gif');
} else {
return theme('image', 'themes/garland/images/red.gif');
}
}
?>
nicht ganz...
am 21.12.2011 - 12:38 Uhr
Hallo, danke Dir... jetzt zeigt er es zwar an, zerschiesst aber den rest des Templates, d.h. alles was danach angezeigt werden soll ist weg und er macht mir noch folgenden siehe Anhang darunter.
Hier mal das Template (unter Inhaltstypen - Bodytemplates - da habe ich alles eingetragen: ). Problem, in einem Views wo das Feld ebenfalls auftaucht nimmt er das gar nicht rüber :-(
<?php
print $node->field_chip[0]['view']
?>
<?php
print $node->field_healthbook[0]['view']
?>
<?php
if (isset($content['field_mediated'])) {
if ($content['field_mediated']['#items'][0]['value'] == 1) {
return theme('image', 'themes/garland/images/green.gif');
} else {
return theme('image', 'themes/garland/images/red.gif');
}
}
?>
<?php
print $node->field_rehome[0]['view']
?>
<?php
print $node->field_new_owner[0]['view']
?>
<?php
print $node->field_left_shelter[0]['view']
?>
<?php
print $node->field_dog_remarks[0]['view']
?>
Steht der Code den ich
am 21.12.2011 - 12:44 Uhr
Steht der Code den ich angepasst habe in einem Template? Wenn ja ersetze bitte "return" durch "print" oder "echo"
so weit, sogut...
am 21.12.2011 - 12:52 Uhr
Danke, dass hat erstmal funktioniert im Beitrag sieht es jetzt supi aus, ich frage mich nur warum er das nicht auch in dem Views anzeigt? Sondern nur im Beitrag?
Weißt Du woran das liegt?
Huhu Das wird in der view
am 21.12.2011 - 13:02 Uhr
Huhu
Das wird in der view nicht angezeigt weil die view ein eigenes template benutzt.
Welches das ist kannst du mit dem Themen developer
http://drupal.org/project/devel_themer
Rausbekommen
Vg
Stef
okay...
am 21.12.2011 - 13:05 Uhr
schau mir das mal an, obwohl es aus meiner sicht keinen sinn macht in dem Template etwas zu ändern, oder produziert jeder View ein eigenes Template??
Zitat: oder produziert jeder
am 21.12.2011 - 13:15 Uhr
oder produziert jeder View ein eigenes Template??
Nicht wirklich, aber Views haben natürlich trotzdem spezielle Templates. Die greifen dann standardmäßig für viele Views, nicht für jede View einzeln (obwohl auch das möglich ist), aber trotzdem werden andere Templates verwendet.
das Template gefunden, aber
am 21.12.2011 - 14:29 Uhr
Hi, das Template habe ich gefunden aber wo zum Teule setze ich das ein?
<?php
if (isset($content['field_mediated'])) {
if ($content['field_mediated']['#items'][0]['value'] == 1) {
print theme('image', 'themes/garland/images/green.gif');
} else {
print theme('image', 'themes/garland/images/red.gif');
}
}
?>
Hier noch der Code vom template:
<?php
/**
* @file views-bulk-operations-table.tpl.php
* Template to display a VBO as a table.
*
* - $title : The title of this group of rows. May be empty.
* - $header: An array of header labels keyed by field id.
* - $fields: An array of CSS IDs to use for each field id.
* - $class: A class or classes to apply to the table, based on settings.
* - $row_classes: An array of classes to apply to each row, indexed by row
* number. This matches the index in $rows.
* - $rows: An array of row items. Each row is an array of content.
* $rows are keyed by row number, fields within rows are keyed by field ID.
* @ingroup views_templates
*/
?>
<table class="<?php print $class; ?>">
<?php if (!empty($title)) : ?>
<caption><?php print $title; ?></caption>
<?php endif; ?>
<thead>
<tr>
<?php foreach ($header as $key => $value): ?>
<?php if ($key == 'select') { ?>
<th class="select"><?php print $value ?></th>
<?php } else { ?>
<th class="views-field views-field-<?php print $fields[$key] ?>"><?php print $value ?></th>
<?php } ?>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<?php foreach ($rows as $count => $row): ?>
<tr class="<?php print implode(' ', $row_classes[$count]); ?>">
<?php foreach ($row as $field => $content): ?>
<?php if ($field == 'select') { ?>
<td class="views-field select">
<?php } else { ?>
<td class="views-field <?php if (!empty($fields[$field])) print "views-field-{$fields[$field]}"; ?>">
<?php } ?>
<?php print $content; ?>
</td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>