Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler im Zusammenhang mit Grid-Spalten und Hintergrundbildern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehler im Zusammenhang mit Grid-Spalten und Hintergrundbildern

    Hallo Zusammen,

    im Zusammenhang mit Gridspalten und Hintergrundbildern ist mir jetzt schon mehrfach folgender Fehler untergekommen.

    Beim Löschen der Datei (ohne vorheriges entfernen des Pfades) UND beim Löschen des Pfades der Hintergrundbild Datei in Grid-Spalten kommt es völlig zufällig zu Fehlerausgaben im Backend und teilweise auch Frontend. Ersteres konnte ich Rückgängig machen, indem ich die gelöschte Datei wieder hochlud und die IDs etc. der Datei mit den alten (aus einem Backup) überschrieb.

    Aktuell jedoch habe ich einfach nur das Hintergrundbild (also den Pfad zum Bild) aus dem Element wieder entfernt (siehe Screenshot) und komme jetzt nicht mehr in die Backend-Seite des Artikels weil nachfolgende Fehlermeldung erscheint - das Element selbst lässt sich über Frontend-Vorschau schon noch bearbeiten:

    Code:
    Argument 1 passed to Contao\CoreBundle\Image\Studio\FigureBuilder::fromPath() must be of the type string, null given, called in
    /var/www/contao/vendor/contao/core-bundle/src/Resources/contao/library/Contao/Controller.php on line 1778
    Der Debug-Modus zeigt, dass der Fehler in "system/modules/pct_autogrid/PCT/AutoGrid/Core.php:" Zeile 262 entsteht:

    Code:
    \Contao\Controller::addImageToTemplate( $tmp, array('singleSRC' => $objFile->path) );

    Wenn ich ein Bild auswähle und einfüge, wird das nun auch auf der Frontend-Seite angezeigt, aber im Backend bleibt der Fehler.

    Dieses Phänomen ist mir noch bei keinem anderen Element untergekommen, weshalb ich jetzt einfach mal auf einen Bug in dem Grid-Spalten Element tippe.

    Gibt es hierzu einen fix?

    Danke für die Hilfe und Grüße
    Manuel
    Zuletzt geändert von PROSIS_Marketing; 16.08.2022, 17:17.

  • #2
    Also nach weiterem Probieren und einem stümperhaften Versuch, in der entsprechenden Core-Datei herumzupfuschen, konnte ich das ganze mit Folgendem zumindest wieder zum Laufen bringen:

    Datei: "system/modules/pct_autogrid/PCT/AutoGrid/Core.php" Zeile 262
    PHP-Code:
    var_dump($objFile->path);    // Test um Pfad anzeigen zu lassen
    echo("<br>");
    if( !
    is_null($objFile->path)) {
    \
    Contao\Controller::addImageToTemplate$tmp, array('singleSRC' => $objFile->path) );
    } else {
    echo(
    "Is null: ");    // Test um NULL zu finden
    var_dump($objFile->path);    // Test um Pfad anzeigen zu lassen


    Auf einer anderen Seite hat das auch gut funktioniert - dort war eine nicht aktive Grid-Spalte mit einem Bild, welches es nicht mehr gab für den Fehler im Backend verantwortlich (siehe Screenshot 1).
    Für den oben beschriebenen Fall, wo einfach kein Hintergrundbild eingegeben wurde, konnte ich allerdings noch keine Lösung (bis auf den Code-Pfusch oben) finden. Es wird dort auch keinerlei Ausgabe mit "var_dump" erzeugt - wieso wird dort dann NULL an die Methode übergeben?

    Gibt es hierfür eine Lösung (die schöner ist als meine)?
    Angehängte Dateien

    Kommentar


    • #3
      Danke ich prüfe es....
      ---
      Es scheint sich nicht um eine aktuelle Version des Modul zu handeln. Zeile 262 in dieser Datei entspricht nicht der im Screenshot.


      Contao 4.13.7, AutoGrid 2.3.4
      Ich kann das Problem unter aktuellen bislang Versionen nicht reproduzieren.
      Wenn ich das ausgewählte File umbenenne oder lösche entsteht kein Fehler im System. Natürlich wird das Bild nicht mehr angezeigt.
      Zuletzt geändert von Tim; 17.08.2022, 08:52.
      http://www.premium-contao-themes.com

      Kommentar


      • #4
        Das mit der Version ist seltsam - ich habe vor dem Testen extra nochmal die aktuelle Version aus dem Kundenbereich heruntergeladen
        In der Changelog steht auch explizit die Version 2.3.4 drin.
        Zuletzt geändert von PROSIS_Marketing; 17.08.2022, 10:13.

        Kommentar


        • #5
          Anbei ein Screenshot aus Zeile 262

          Unter oben angegebenen Versionen kann ich kein Problem feststellen, wenn eine ehemalige Datei umbenannt oder gelöscht wurde. Im Frontend entsteht in diesem Fall die passende 404-Meldung in der Browser-Console. Sobald das Feld leer gespeichert wird, wird die gesamte Routine im Code umlaufen.
          Angehängte Dateien
          Zuletzt geändert von Tim; 17.08.2022, 10:35.
          http://www.premium-contao-themes.com

          Kommentar


          • #6
            Das ist wirklich seltsam - ja, in der IDE wäre die eigentliche Zeile auch 256 (wie bei deinem Screenshot).
            Ich weiß wirklich nicht, warum Contao da eine andere Zeile ausgespuckt hat.
            Der Fehler weist ja auch explizit auf diese Zeile hin:
            PHP-Code:
             \Contao\Controller::addImageToTemplate$tmp, array('singleSRC' => $objFile->path) ); 
            Ich habe das Element gerade noch einmal angesehen und der Fehler ist nun auch wieder weg. Möglicherweise hängt das mit dem Server-Neustart von heute Nacht zusammen?

            Tesweise habe ich eine Datei hochgeladen, sie als Hintergrundbild eingebunden, die originale Core.php geladen und danach das Bild gelöscht. Es entsteht trotzdem wieder eine Fehlermeldung, sodass ich den Artikel nicht mehr bearbeiten kann.
            Nach Austausch mit meiner Abgeänderten Datei, wo der Pfad auf NULL geprüft wird (siehe oben), kann ich die Seite aufmachen und auch den Artikel bearbeiten.
            Im Feld des Hintergrundbildes steht nun eine UUID (siehe Screenshot).
            Angehängte Dateien

            Kommentar


            • #7
              Warum hast du die UID im Feld stehen? Der Picker setzt den lesbaren Pfad in das Feld. Das System konvertiert beim Speichern. Im Backend wird immer der lesbare Pfad angezeigt, in der DB steht die UID.

              Klicke auf die Grafik für eine vergrößerte Ansicht  Name: screenshot_958.png Ansichten: 0 Größe: 16,7 KB ID: 25604
              Zuletzt geändert von Tim; 17.08.2022, 11:08.
              http://www.premium-contao-themes.com

              Kommentar


              • #8
                Ich glaube du wählst invalide Bilder aus. Bilder, die als Hintergrund für CSS genutzt werden sollen werden auf Leerzeichen und Sonderzeichen etc. geprüft und ggf. der Pfad bereinigt und dann versucht die Bilddatei zu lokalisieren. In CSS sind Leer-/ und Sonderzeichen für background-image Stylings invalide.
                Scheitert dies, wird die UID genutzt.
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  Das gewählte Bild für denn Fall jetzt hieß "tmp.jpg" - solange die Datei existiert, stand in dem Feld auch der Pfad - erst nach Löschen des Bildes steht id UID drin.

                  Kommentar


                  • #10
                    Ich kann es bei aller Mühe einen Fehler zu produzieren, nicht nachstellen.

                    Selbst wenn die ausgewähle Datei gelöscht wird und man daraufhin das Element erneut speichert (ohne die nun verwaiste Datei zu leeren oder zu erneuern -> was man eigentlich machen sollte), verbleibt der gewählte Pfad im Feld. Ich schaffe es nicht die UID zu bekommen oder einen PHP Fehler zu generieren. Irgendwas mache ich falsch

                    Bitte versuch in unserem System (Zugang kommt per PN) den Fehler nachzustellen.
                    http://www.premium-contao-themes.com

                    Kommentar


                    • #11
                      So, jetzt

                      Das ist schon eine lange Kette. - Ich hatte immer per FTP direkt gelöscht. In diesem Fall hat Contao keine Änderung an seinen Files registriert, lediglich das Frontend -> 404

                      Wird per Dateiverwaltung gelöscht und daraufhin das Element erneut gespeichert - ohne dass der Redakteur die nun verwaiste Datei bereinigt, wird die UID eingesetzt (weil die Lokalisierung der Datei scheitert).
                      Löscht man einfach nur die Datei (oder benennt sie um), egal auf welchem Weg, merkt man es nicht - nur im Frontend wird's nen 404. Es ist das erneute Überspeichern des Elements ohne die Korrektur der verwaisten Datei.

                      Ich passe es so an, dass in diesem Fall das Feld geleert wird. Dann obliegt es nicht mehr dem Redakteur.

                      Danke Dir für den langen Atem
                      Zuletzt geändert von Tim; 17.08.2022, 11:49.
                      http://www.premium-contao-themes.com

                      Kommentar


                      • #12
                        Alles Gut - bin ja schon froh, dass es nicht nur bei mir so war. Was mich wundert ist das "erneute Speichern" was bei dir notwendig war, damit der Fehler auftritt - bei mir reicht es, die Datei über den Dateimanager zu löschen und der Fehler tritt auf. Ins Backend komme ich dann ja auch gar nicht mehr, weil da ebenfalls ein Fehler geworfen wird... deswegen konnte ich ja auch die Fehlerhafte UID nicht entfernen. Das ging erst, wie ich die Core.php abgeändert und eine NULL Prüfung eingebaut habe.

                        Kommentar


                        • #13
                          Ich sichere noch mit einer If-Abfrage zusätzlich ab. Dann sollte das einsturzsicher sein.
                          http://www.premium-contao-themes.com

                          Kommentar


                          • #14
                            Gibt es schon einen groben Zeitplan für das Update?

                            Kommentar


                            • #15
                              Zitat von PROSIS_Marketing Beitrag anzeigen
                              Gibt es schon einen groben Zeitplan für das Update?
                              Grob: KW35 oder KW36.
                              http://www.premium-contao-themes.com

                              Kommentar

                              Lädt...
                              X