Fehler bei leeren Feldern (Node-Template)
![](https://www.drupalcenter.de/files/imagecache/upic_mini/pictures/picture-3797.png)
am 04.03.2011 - 09:21 Uhr in
Hallo zusammen,
ich habe für einen Inhaltstypen ein eigenes Template angelegt um die Felder entsprechend positionieren zu können. Das funktioniert indes auch ganz gut, es wird alles richtig dargestellt. Jedoch gibt es Probleme wenn ein entsprechendes Feld leer gelassen wurde. Dann gibt es beim Editieren eine Fehlermeldung, wobei ich mir nicht sicher bin ob es daran liegt das ich die Felder eventuell falsch im Template ausgebe.
Eines der Felder lautet z.B.:
<?php
print $content['field_linkart2']['#items']['0']['value'];
?>
Bekommt das Feld beim Editieren einen Wert gibt es kein Problem, lasse ich es aber frei gibt es folgende FM:
Notice: Undefined index: field_linkart2 in include() (Zeile 41 von /home/www/xxx/www/sites/all/themes/themename/templates/node--neuigkeiten.tpl.php).
Binde ich die Felder einfach nur falsch ein, oder rührt die FM woanders her? Das macht er übrigens bei allen entsprechenden Feldern, egal ob Select-Liste, Text, oder CCK-Link.
Über Hilfe würde ich mich sehr freuen!
Grüße vom,
Genesis
- Anmelden oder Registrieren um Kommentare zu schreiben
Niemand eine Ahnung woraus
am 11.03.2011 - 10:17 Uhr
Niemand eine Ahnung woraus das Problem resultieren könnte? Habe ich eventuell etwas vergessen oder doch falsch gemacht?
Vielen Dank für erneute Hilfe!
Dann solltest Du vor dem
am 11.03.2011 - 11:55 Uhr
Dann solltest Du vor dem Print eine Abfrage haben, ob dieser Wert überhaupt gesetzt ist und erst dann ausgeben. Das ist aber üblicher Programmierstil.
Beste Grüße
Werner
Hallo Werner, erstmal vielen
am 12.03.2011 - 10:36 Uhr
Hallo Werner,
erstmal vielen Dank für deine Hilfe. Ich habe diese Abfrage bereits im Template, hatte sie nur nicht mit gepostet, wofür ich mich entschuldige. Da ich aber so gar kein Coder bin kann es natürlich sein das ich sie schlicht falsch ansetze:
<?php if ($content['field_linkart1']): ?>
<?php print $content['field_linkart1']['#items']['0']['value']; ?> :
<?php endif; ?>
Oder muss da noch ein ELSE mit rein, aber warum sollte es? Ich habe mir das auf Drupal.org so zusammen gesucht und anscheinend hat es dort so funktioniert, aber eventuell mache ich auch einfach etwas falsch...
Würde mich über weitere Hilfe sehr freuen! :)
Edit
Okay, habe mich nun nochmal eingelesen und habe eine andere Variante ausprobiert, welche so auch zu funktionieren scheint. Warum diese nun funktioniert kann ich in meinem Unvermögen nicht sagen, aber eventuell kann mich da ja noch jemand aufklären.
<?php if (!empty($field_linkart1)): ?>
<?php print render($content['field_linkart1']);?>
<?php else: ?>
*whatever*
<?php endif; ?>
Beste Grüße und ein schönes Wochenende.
Bei Arrays, die evtl
am 12.03.2011 - 11:03 Uhr
Bei Arrays, die evtl strukturmäßig aber ohne Inhalt sind, mußt Du schon genauer arbeiten. z.B.
<?php if (isset($content['field_linkart1']['#items']['0']['value'])): ?>
<?php print $content['field_linkart1']['#items']['0']['value']; ?> :
<?php endif; ?>
Damit wird überprüft, ob das Feld existiert und nicht NULL ist.
Beste Grüße
Werner
Hallo, hab eigentlich das
am 20.10.2011 - 17:11 Uhr
Hallo,
hab eigentlich das gleiche Problem und vermutlich eine Denkblockade. Ich habe mir den Inhaltstyp "event" erstellt und mit Inhalten gefüllt. Nun gefällt mir nicht, dass die Werte des Feldes "field_date" unter dem Feldnamen angezeigt werden-ich möchte, dass sie daneben stehen.
Also habe ich den Quellcode wie folgt geändert:
<?php if (isset($content['field_date']['#items']['0']['value'])): ?>
<strong>Datum:</strong> <?php print $content['field_date']['#items']['0']['value']; ?> :
<br />
<?php endif; ?>
<?php echo $content; ?>
Nur bekomme ich nun die Fehlermeldung:
Datum:
Fatal error: Call to undefined function render() in /is/htdocs/wp10812980_FS5ISFABI8/www/hsf2011/themes/HSF_Jun_2011/node-event.tpl.php on line 22
Was mache ich falsch? Und wie blende ich dann nur den reinen Inhalt des Textkörpers (Body-Feld) ein?
Ich weiß, dass es auch mit views realisierbar wäre. Aber ich gehe davon aus, dass eine neue view mehr Ressourcen braucht als eine php-Datei, darum möchte ich es so lösen.
Kann mich bitte jemand aufklären?