Ergebnis 1 bis 7 von 7

Thema: Filetree File wird nicht mehr gespeichert (Nach Update)

  1. #1
    Contao-Nutzer Avatar von pgrob
    Registriert seit
    10.07.2009.
    Ort
    Schweiz
    Beiträge
    205
    Partner-ID
    10267

    Standard Filetree File wird nicht mehr gespeichert (Nach Update)

    Hallo miteinander
    Wieder einmal ein Problem mit einer selber erstellten Erweiterung. Es handelt sich um eine Erweiterung Kursverwaltung die von meinem Vorgänger erstellt wurde.
    In der Datenbank besteht eine Tabelle «tl_module_kursverwaltung_module», in dieser gibt es ein varchar-Feld «downloads». Über ein einen Input «filetree» konnte in der Contao Version 3.1 hier bis anhin eine oder mehrere Dateien angehängt werden, im Datenbankfeld «downloads» sah das dann so aus «a:1:{i:0;i:16864;}» wobei 16864 die ID des files ist und über diese auch ausgelesen werden konnte.

    Ich musst nun Contao auf 3.5.18 Updaten. Und leider funktioniert die Erweiterung wie zu erwarten nicht mehr sauber. Wenn man in der Erweiterung im Backend nun ein File hinzufügt und speichert, verschwindet der Pfad des Files im Backend nach dem Speichern gleich wieder und wird nicht mehr angezeigt. Das File im Datenbankfeld «downloads» sieht nun folgendermassen aus «a:1:{i:0;s:16:"M». Es wird hier keine ID mehr angezeigt.

    Aktuell bin ich gerade ein bisschen ratlos, ich habe bereits ziemlich alle Files Templates des Moduls durchgeschaut und auch die Ausgabe der Files gefunden, diese funktioniert jedoch korrekt, denn die Files die vor dem Update abgespeichert wurden werden korrekt ausgegeben.
    Weiss jemand einen Rat wo ich hier ansetzen müsste oder wonach ich suchen könnte/müsste.
    Geändert von pgrob (16.02.2017 um 09:47 Uhr)

  2. #2
    Contao-Fan Avatar von PaddySD
    Registriert seit
    26.10.2016.
    Ort
    Andechs
    Beiträge
    656

    Standard

    Ja, bei der Umstellung in der Erweiterung zum "neuen", datenbankgestützten Filesystem von Contao. Stichwort: UUID!

    Deine Erweiterung muss mittlerweilen, je nachdem was sie genau machen soll, die Daten entsprechend speichern (also in der DB) und dann natürlich auch entsprechend aufrufen. Deine "alten" Dateien müssten auch beim Update entsprechend angepasst worden sein.

  3. #3
    Contao-Nutzer Avatar von pgrob
    Registriert seit
    10.07.2009.
    Ort
    Schweiz
    Beiträge
    205
    Partner-ID
    10267

    Standard

    Hallo PaddySD
    Danke für den Input, auf der Spur UUID bin/war ich bereits.
    Es ist eine selber erstellte Erweiterung, durch das Update wurde hier noch nirgends was angepasst.

  4. #4
    Contao-Fan Avatar von PaddySD
    Registriert seit
    26.10.2016.
    Ort
    Andechs
    Beiträge
    656

    Standard

    Das anpassen war darauf bezogen, dass Dir beim Contao-Update die Verarbeitung der Dateien automatisch auf UUID umgestellt wurde. Du greifst ja in Deiner Erweiterung auf die Contao Files Funktionen zurück, daher zum Update die richtige Umwandlung (der vorhandenen files auf UUID). Neue Dateien werden dann aber nicht korrekt mit UUID erfasst, weil das ja Du im Code Deiner Erweiterung machen müsstest.

    Lies Dich einfach mal an das FileModel an.

  5. #5
    Contao-Nutzer Avatar von pgrob
    Registriert seit
    10.07.2009.
    Ort
    Schweiz
    Beiträge
    205
    Partner-ID
    10267

    Standard

    ok, danke für die Info/Tipp. Schaue ich mir gerne an.

  6. #6
    Contao-Fan Avatar von PaddySD
    Registriert seit
    26.10.2016.
    Ort
    Andechs
    Beiträge
    656

    Standard

    Ich mache das so (was heissen soll, ich erhebe damit keinen Anspruch auf Richtigkeit ):

    In der dca:
    PHP-Code:
    'picture'    => array(
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_irgendwas']['picture'],
                
    'inputType'               => 'fileTree',
                
    'exclude'                 => true,
                
    'eval'                    => array('fieldType'=>'radio''files'=>true'filesOnly'=>true'tl_class'=>'w50','extensions'=>$GLOBALS['TL_CONFIG']['validImageTypes'], 'doNotShow' => true),
                
    'sql'                     => "binary(16) NULL"
            
    ), 
    Ich brauche das dann an anderer Stelle in einem BE-Modul als Bild:
    PHP-Code:
    $objPic $this->Database->prepare("SELECT picture 
                    FROM tl_irgendwas 
                    WHERE id = 1"
    )
                    ->
    execute();
                
                [...]
                        
    $objPicture = \FilesModel::findByPk($objPic->picture); 
    So kurz runter geschrieben...

    Vielleicht kannst Du damit ja was anfangen, ansonsten Code posten....

    Schönes Wochenende!

  7. #7
    Contao-Nutzer Avatar von pgrob
    Registriert seit
    10.07.2009.
    Ort
    Schweiz
    Beiträge
    205
    Partner-ID
    10267

    Standard

    Danke dir vielmals, werde das anfangs Woche versuchen.
    Dir auch ein schönes Wochenende!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •