Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Hilfe zu Fehlermeldung

Eingetragen von Alex183 (35)
am 11.08.2011 - 23:13 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Hallo zusammen,

ich brauche dringend Rat zu einer Fehlermeldung :(

Ich bekomme auf meiner Drupal Startseite seit heute (Änderungen, die zu diesem Fehler führen könnten, habe ich schon vor ein paar Tagen durchgeführt) folgende Fehlermeldung angezeigt:

  • Notice: Undefined property: stdClass::$field_serie in eval() (Zeile 3 von /www/htdocs/w00d91dc/drupal/sites/all/modules/views/plugins/views_plugin_argument_default_php.inc(49) : eval()'d code).

Ich habe mir eine View (vw_1) mit contextual filter erstellt, die mir den Wert des Feldes "field_serie" abfragt, und alle anderen Inhalte des Typs "Blogeintrag" mit dem selben Wert auflistet.
Der Code dafür:

<?php

if (arg(0) == 'node' && is_numeric(arg(1)))
{  
$node = node_load(arg(1));
   
$result= $node->field_serie['und'][0]['value'];
    return
$result;
}
?>

Das ist auch die einzigste Stelle, wo field_serie als Variable vorkommt.

Ich habe mir weiterhin eine .tpl.php Datei gebaut, die mir den Inhalt dieser View in Blogeinträgen zwischen derm Inhalt und dem Kommentarfeld anzeigt.

Eine weitere View (vw_2) listet mir alle Blogeinträge auf und wird über einen php Aufruf auf der Startseite dargestellt.

Soweit funktioniert das auch alles problemlos (nach mehreren Abenden rumprobieren :) ) aber seit ich vorhin einen weiteren Blogeintrag veröffentlicht habe, bei dem das Feld field_serie noch nicht belegt war, bekomme ich auf der Startseite diese Fehlermeldung.
Ach ja, bei drei gelisteten Inhalten auf der Startseite wird die Fehlermeldung drei mal angezeigt, bei vier Einträgen vier mal usw...

Kann mir irgendwer von euch nen Denkanstoß geben, warum auf einmal eine Fehlermeldung kommt, wo könnte ich suchen?

Vielen Dank schonmal im Vorraus

lg Alex

edit:

Der Fehler scheint irgendwie im Aufruf der View vw_2 auf der Startseite zu liegen...
Wenn ich in der Konfiguration die Startseite direkt auf den Pfad der View vw_2 setze, bekomme ich alle Einträge angezeigt, aber die Fehlermeldung ist weg.

Ich rufe die View auf der Startseite mit folgendem Code auf:

<?php
    $view
= views_get_view('vw_2');
    print
$view->execute_display('default');
?>
?>

‹ Forum Struktur ändern drupal bei user löschen auch alle nodes löschen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

hi alexich will nicht

Eingetragen von 1kubik (903)
am 13.08.2011 - 13:20 Uhr

hi alex
ich will nicht klugdingsen
aber ein

Zitat:

Notice

ist keine fehlermeldung in php,
keine von drupal,
sondern 'nur' ein hinweis
das eben die besagte variable eine

Zitat:

Undefined property

also eine undefinierter wertebereich ist.

$node->field_serie['und'][0]['value'];
das ['und'] zeigt schon das das hier nicht richtig gesetzt
wurde, ist eine verkürzung von 'undefined'..

du kannst in deinem skript
folgendes machen:

if(isset($result= $node->field_serie['und'][0]['value']) and !empty($result= $node->field_serie['und'][0]['value'];)){
$result= $node->field_serie['und'][0]['value'];
}else{
$result= '';
}

oder verkürzt ohne default zuweisung

$result= @$node->field_serie['und'][0]['value'];

oder der field_serie in der feld verwaltung
einen default wert

oder du stellst die ausgabe der notice ab
zb in der index.php
error_reportings(E_ALL ^ E_NOTICE)
das besagt, das dir weiterhin alle
fehlermeldungen (ERROR, WARNING) angezeigt werden
aber diese Hinweise (NOTICE) eben nicht

Im produktiv betrieb sollten die aber eh grundsätzlich ausgeschaltet sein

schönen gruss
stf

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo stf, vielen Dank für

Eingetragen von Alex183 (35)
am 14.08.2011 - 09:29 Uhr

Hallo stf,

vielen Dank für deine ausführliche Antwort.
Wenn ich das also richtig verstanden habe, dann ist die Warnung keine schwerwiegende Sache, sondern normal, da meine View in allen Nodes vom Typ Blogeintrag nach einem Wert für dieses Feld sucht.
Hat das Feld keinen Inhalt, weil der Node nicht zu einer Artikelserie gehört gibt es dann die Warnung.

D.h. für mich, die sinnvollsteVariante wäre:

Zitat:

$result= @$node->field_serie['und'][0]['value'];

weil das "@" die Warnung unterdrückt, wenn das Feld keinen Wert hat. (sagt zumindest google)

Warum sieht man an dem ['und'] denn, dass das Feld nicht richtig gesetzt ist?
Das Feld wurde ja ganz normal im Inhaltstyp als ganze Zahl, Textfeld, 1 Wert erzeugt.

var_dump gibt im Node dann folgendes aus

Zitat:

["field_serie"]=> array(1) { ["und"]=> array(1) { [0]=> array(1) { ["value"]=> string(1) "1" } } }

Wie müsste man denn ein Feld anlegen, welches einfach nur einen Wert speichern soll?

was dann zum Beispiel so aussieht:

Zitat:

["field_path"]=> array(0) { }

Vielen Dank schonmal und liebe Grüße,

Alex

  • Anmelden oder Registrieren um Kommentare zu schreiben

moin alexAlex183

Eingetragen von 1kubik (903)
am 15.08.2011 - 09:26 Uhr

moin alex

Alex183 schrieb

Wenn ich das also richtig verstanden habe, dann ist die Warnung keine schwerwiegende Sache,

genau. es sollten aber immer alle variablen vorab deklariert sein
bevor sie verarbeitet werden.
ausserdem helfen die NOTICE beim debuggen, machen daher also schon sinn.
sie verursachen aber keinen skript abruch.

Zitat:

D.h. für mich, die sinnvollsteVariante wäre:

Zitat:

$result= @$node->field_serie['und'][0]['value'];

weil das "@" die Warnung unterdrückt, wenn das Feld keinen Wert hat. (sagt zumindest google)

yep, besser wie gedagt wäre sie zu deklarieren
if(!isset($node->field_serie['und']) or empty($node->field_serie['und']) )
muss aber nicht zwingend s.o.

Zitat:

Warum sieht man an dem ['und'] denn, dass das Feld nicht richtig gesetzt ist?

ich vermute das weil da ein 'und' im schlüssel des arrays ist
@$node->field_serie['und']

das deutet auf eine fehlerhafte deklarierung des array hin
weil da statt 0 eben 'undefined' (abgekürzt und) verwendet wurde..
und zwar bevor dann 'später' der eigendliche inhalt zugewiesen wurde.
ich kann mich da auch irren, aber dieses 'und' macht für mich garkeinen sinn sonst..

Zitat:

Wie müsste man denn ein Feld anlegen, welches einfach nur einen Wert speichern soll?

ich hab noch nich so ganz verstanden wo dieses 'field_serie'
angelget wurde. ist das ein cck feld das du erstellt hast?

grüße zurück
stef

  • Anmelden oder Registrieren um Kommentare zu schreiben

Na hallo stef, ja, ist ein

Eingetragen von Alex183 (35)
am 15.08.2011 - 19:19 Uhr

Na hallo stef,

ja, ist ein cck field (allerdings drupal 7 core modul), das im Inhaltstyp Blogeintrag angelegt wurde...ist angelegt als ganze Zahl, Textfeld, ohne Standardwerte, da ich ja darüber die zusammengehörigen Artikel finden will.

Viele Grüße,

Alex

  • Anmelden oder Registrieren um Kommentare zu schreiben

hey alex Zitat: ohne

Eingetragen von 1kubik (903)
am 15.08.2011 - 19:34 Uhr

hey alex

Zitat:

ohne Standardwerte

was passiert wenn du ihm einen standartwert zuweist
0 zb..

gruss
stef

  • Anmelden oder Registrieren um Kommentare zu schreiben

gibt in Einträgen, die einen

Eingetragen von Alex183 (35)
am 15.08.2011 - 20:24 Uhr

gibt in Einträgen, die einen eigenen Wert haben, also den Standard überschreiben jetzt die Warnung

Zitat:

Notice: Undefined index: und in eval() (Zeile 3 von /www/htdocs/w00d91dc/drupal/sites/all/modules/views/plugins/views_plugin_argument_default_php.inc(49) : eval()'d code).

aus

In Einträgen, die den Standardwert haben, gibt es keine Warnung...

var_dump zeigt das Feld aber nach wie vor noch als

Zitat:

["field_serie"]=> array(1) { ["und"]=> array(1) { [0]=> array(1) { ["value"]=> string(1) "1" } } }

an :(

Edit:

Sehr seltsam...habe grade nochmal nen Inhaltstyp angelegt, Testfeld dazu....alles schön...var_dump() zeigt mir Field_test-->Array(0)
Sobald ich beim Bearbeiten des Inhalts einen Wert in das Feld eintrage und speichere macht er mir

Zitat:

["field_test"]=> array(1) { ["und"]=> array(1) { [0]=> array(1) { ["value"]=> string(1) "1" } } }

draus...hmmm

Edit2:

Also das ['und'] kommt aus der Datenbank...Das Feld schein in etwa so angelegt zus ein.

field_serie[language] (=und)[delta] (=0 da nur ein Wert pro Feld zulässig)[value] (=1 bei meiner Artikelserie), also damit kann die Warnung nichts zu tun haben...

hmm..wird immer undurchsichtiger grade :(

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Tagen 1 Stunde
  • Hey danke
    vor 2 Tagen 19 Stunden
  • Update: jetzt gibt's ein
    vor 3 Tagen 14 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 23 Stunden
  • Da scheint die Terminologie
    vor 1 Woche 1 Tag
  • Kannst doch auch alles direkt
    vor 1 Woche 5 Tagen
  • In der entsprechenden View
    vor 1 Woche 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 5 Tagen
  • gelöst
    vor 4 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 18 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association