[gelöst] Sporadischer Fehler "Notice: Undefined index: und" & "dpm($node)" verweist plötzlich auf "stdClass" statt "node"
am 31.01.2018 - 16:01 Uhr in
Hallo,
ich habe diesmal ein merkwürdiges Problem: Ab und zu (ohne nachvollziehbaren Grund) wird folgende Fehlermeldung in einer unserer Views angezeigt:
Notice: Undefined index: und in include() (Zeile xxx von drupal/sites/all/themes/template_name/templates/node--inhaltstyp_name.tpl.php).
Dies geschieht meistens, wenn man die Funktion "sort" des Search API Moduls verwendet - aber nicht jedesmal. Manchmal funktioniert das Sortieren auch ohne Fehlermeldung.
Die Liste innerhalb der View wird auch mit der Fehlermeldung sortiert - also die Funktion scheint noch problemlos nutzbar zu sein.
In den angemahnten Zeilen des Templates binde ich ein Feld ein oder formatiere den Inhalt des Felds.
Beispiel-Code:
<?php
$zahlenfeld_val_format = number_format(floatval($node->field_zahlenfeld['und']['0']['value']), 0, ',', '.');
?>
Bisher hatte ich damit keine Probleme - habe an den betreffenden Codezeilen auch seit ca. einem halbem Jahr nichts geändert.
Und seit einpaar Tagen wird plötzlich der Fehler erzeugt.
Ein Update des Search API Moduls hat in letzter Zeit nicht stattgefunden.
Mir fiel auch auf, dass wenn ich mit aktiviertem "devel" Modul die Funktion "dpm($node)" oder "dpm($content)" aufrufe, jeweils nur ein Array mit dem Namen "stdClass" erhalte - nicht wie gewohnt node oder content.
Was läuft hier schief und wie kann ich es beheben?
Vielen Dank im Voraus für eure Vorschläge.
(wir nutzen Drupal 7.56)
PS: Wir sind Kunde von Mittwald -der Hoster hatte bekanntermaßen vor kurzem einen Serverausfall Deluxe. Kann es auch damit zusammenhängen? Würde zeitlich wenigstens passen.
- Anmelden oder Registrieren um Kommentare zu schreiben
Hat jemand das Zahlenfeld
am 31.01.2018 - 17:08 Uhr
Hat jemand das Zahlenfeld (field_zahlenfeld) auf übersetzbar geändert? Dann wäre das erklärbar, denn 'und' steht für keine Sprache.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Das müsste man doch einfach
am 31.01.2018 - 17:22 Uhr
Das müsste man doch einfach beheben können, indem man vorher isset verwendet
<?php
if (isset($node->field_zahlenfeld['und']['0']['value'])) {
$zahlenfeld_val_format = number_format(floatval($node->field_zahlenfeld['und']['0']['value']), 0, ',', '.');
}
?>
Dein Hoster hat nach dem Serverausfall höchstwahrscheinlich eine neuere PHP-Version installiert und da gibt es Notices wenn man die Values printet/ausgibt ohne vorher zu checken ob es sie überhaupt gibt.
Drupal rockt!!!
Vielen Dank wla für den
am 01.02.2018 - 09:31 Uhr
Vielen Dank wla für den Hinweis - leider oder Gott sei Dank nein. Die Taxonomie-Felder sind weiterhin auf "No multilingual options for terms. Only the vocabulary will be translatable." und die Zahlenfelder sind in meinem Fall normale Textfelder und da habe ich keine Option gesehen, hier nachträglich die Sprache oder Übersetzbarkeit zu ändern - also vermutlich auch - nein.
Aber vielen Dank für den Hinweis. Hätte ja sein können und wäre ein schneller und einfacher Weg gewesen.
Vielen Dank Ionit für deinen
am 01.02.2018 - 10:39 Uhr
Vielen Dank Ionit für deinen Tipp.
Mit dem "isset" habe ich es tatsächlich lösen können. Vermutlich hast du Recht mit der PHP-Versionsänderung.
Vielen Dank!