[gelöst] PHP-Frage -> CCK-Feld (Checkbox) "Nein" soll nicht augegeben werden?
Eingetragen von Ionit (1802)
am 18.08.2010 - 11:57 Uhr in
am 18.08.2010 - 11:57 Uhr in
Hallo,
ich habe in CCK eine Checkbox mit "Ja" oder "Nein"! Nur wenn "Ja" ausgewählt wurde, soll eine Ausgabe erfolgen. Wenn "Nein" ausgewählt wurde, soll keine Ausgabe erfolgen.
Diesen Code - zum Steuern von Ja und Nein - habe ich in einem älteren Thread gefunden ....
<?php
if ($node->field_test_frage1[0]['value'] == 'ja') {
print "<div class="ja">" . $node->field_test_frage1[0] . "</div>";}
else if ($node->field_test_frage1[0]['value'] == 'nein') {
print "<div class="nein">" . $node->field_test_frage1[0] . "</div>";}
endif; ?>
Wie gibt man den print-Befehl bei "Nein" an damit nichts ausgegeben werden soll?
So vielleicht?
else if ($node->field_test_frage1[0]['value'] == 'nein') {
print "";}
Danke und Gruß
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich würde in dem Fall den
am 18.08.2010 - 12:27 Uhr
Ich würde in dem Fall den gesamten else-Zweig weglassen. Du willst doch nur bei "ja" eine Ausgabe.
<?php
if ($node->field_test_frage1[0]['value'] == 'ja') {
print "<div class="ja">" . $node->field_test_frage1[0] . "</div>";}
?>
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Hallo Werner, danke für die
am 18.08.2010 - 12:46 Uhr
Hallo Werner,
danke für die Hilfe.
Wärst Du so nett und könntest mir noch ein zweite Frage beantworten?
Bisher dachte ich, dass ich diesen PHP-Code direkt im Feld "field_test_frage1" (unter PHP-Code) im Inhaltstypen angebe. Das war aber falsch.
Die Ausgabe des Feldes erfolgt über Views und somit müsste ich den Code irgendwo in Views reinbekommen und aufführen damit nur "Ja" ausgegben wird.
Da ich in Views keine Möglichkeit fand um den PHP-Code nur für dieses Feld anzugeben, habe ich mir http://drupal.org/project/viewsphpfilter runtergeladen. Das funktioniert leider auch nicht.
Müsste ich für die Ausgabe nur von "Ja" für das Feld "field_test_frage1" eine eigene Views.tpl.php-Datei anlegen (das wollte ich vermeiden) oder gibt es eine andere Möglichkeit (direkt in Views)?
Unter "Rewrite the output of this field" kann man ja scheinbar kein PHP-Code angeben.
Bin etwas verwirrt im Moment.
Danke und Gruß
Matthias
Drupal rockt!!!
Das kommt darauf an, ob Du im
am 18.08.2010 - 13:17 Uhr
Das kommt darauf an, ob Du im View Felder oder Nodes ausgibst. Bei Nodes wird der entsprechende node.tpl.php angezogen, den Du entsprechend ändern könntest. Bei Feldern gibt es auch die Möglichkeit extra Template-Files anzulegen, da weiß ich aber die Syntax des Namens im Moment nicht, obwohl ich das gestern noch gesehen habe. Ich habe das selbst aber noch nie benutzt.
Nachtrag: habe die Syntax für die Felder hier gefunden
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Hallo Werner, die Ausgabe
am 18.08.2010 - 13:20 Uhr
Hallo Werner,
die Ausgabe über Views sind ausschließlich Felder.
Ich schaue mir mal den Syntax an - mal gucken ob ich das hinbekomme.
Danke und schöne Grüße
Matthias
Drupal rockt!!!
Funktioniert das auch bei
am 18.08.2010 - 13:27 Uhr
Funktioniert das auch bei Drupal 6 oder gilt das nur für die 5er Version?
http://drupal.org/node/206980 ist für 5.
Drupal rockt!!!
Also die Uberschrift in der
am 18.08.2010 - 13:45 Uhr
Also die Uberschrift in der linken Spalte meint dazu "Working with content types and fields (Drupal 6 and earlier)". Ich gehe davon aus, das das in Drupal6 genauso ist.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Stimmt - habe es oben
am 18.08.2010 - 13:50 Uhr
Stimmt - habe es oben übersehen.
Ich bin gerade am rumexperimentieren - ob ich das hinbekomme (schwitz)
Drupal rockt!!!
Hallo Werner, ich muss leider
am 18.08.2010 - 14:52 Uhr
Hallo Werner,
ich muss leider nochmal fragen.
Ich gebe den Inhalt des Feldes über print_r aus um die Arrays anzeigen zu lassen.
Meine möglichen Werte [allowed_values] lauten "auf Anfrage" und "Kosten angeben"
Array
(
[field_name] => field_1_kosten1
[type_name] => model
[display_settings] => Array
(
[label] => Array
(
[format] => above
[exclude] => 0
)
[teaser] => Array
(
[format] => default
[exclude] => 0
)
[full] => Array
(
[format] => default
[exclude] => 0
)
[4] => Array
(
[format] => default
[exclude] => 0
)
[token] => Array
(
[format] => default
[exclude] => 0
)
)
[widget_active] => 1
[type] => text
[required] => 1
[multiple] => 0
[db_storage] => 1
[module] => text
[active] => 1
[locked] => 0
[columns] => Array
(
[value] => Array
(
[type] => text
[size] => big
[not null] =>
[sortable] => 1
[views] => 1
)
)
[text_processing] => 0
[max_length] =>
[allowed_values] => auf Anfrage
Kosten angeben
[allowed_values_php] =>
[widget] => Array
(
[default_value] => Array
(
[0] => Array
(
[value] =>
)
)
[default_value_php] =>
[label] => Kosten
[weight] => 19
[description] =>
[type] => optionwidgets_buttons
[module] => optionwidgets
)
)
Ich habe nun eine Menge rumprobiert aber ich weiß nicht wie genau der Aufruf lauten muss um testweise "auf Anfrage" auszugeben und zu überschreiben. genausowenig bei "Kosten angeben"
funktioniert nicht
<?php
if ($field_1_kosten1['allowed_values'] == 'auf Anfrage') {
print ('Test1');}
?>
funktioniert auch nicht
<?php
if ($field_1_kosten1[0]['value'] == 'auf Anfrage') {
print ('Test1');}
?>
weiterhin habe ich ausprobiert (ohne Erfolg)
<?php
switch($field_1_kosten1[allowed_values]) {
case 'auf Anfrage': echo 'Test1'; break;
case 'Kosten angeben': echo 'Test2'; break;
}
?>
Wie müsste man das korrekt ausgeben - Ich verstehe leider nur Bahnhof.
Danke und Gruß
Matthias
Drupal rockt!!!
Ich habe es geschafft. Ich
am 18.08.2010 - 15:04 Uhr
Ich habe es geschafft. Ich hatte leider die falsche Variable aufgerufen weil ich wie der "Ochs vorm Tor stand" und keinen Plan hatte.
Es muss heißen ..
<?php
if ($items[0]['value'] == 'auf Anfrage') {
print ('Test1');}
?>
Und um die Ausgabe von 'Kosten angeben' zu unterdücken
<?php
if ($items[0]['value'] == 'Kosten angeben') {
print ('');}
?>
Das Problem zu lösen hat 4 Stunden gedauert .... unfassbar ...
Kopf schüttelnde Grüße
Matthias
Drupal rockt!!!
Ich habe damit auch noch
am 18.08.2010 - 15:06 Uhr
Ich habe damit auch noch nicht gearbeitet (sagte ich ja schon oben), aber sieh Dir doch mal einen passenden Templatefile an unter sites/all/modules/cck/theme. Da gibt es den content-field.tpl.php. Darin werden alle Variablen genau erklärt und ein Beispiel hast Du damit auch.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *