Ergebnis 1 bis 12 von 12

Thema: tl_news enclosures per Hand in der DB hinzufügen

  1. #1
    Contao-Nutzer
    Registriert seit
    20.08.2009.
    Beiträge
    3

    Frage tl_news enclosures per Hand in der DB hinzufügen

    Hallo Zusammen,
    ich habe aus einem alten System Daten in ein Typolight importiert. Was aber nicht klappen will sind die Anhänge (Enclosures) von Nachrichten und Terminen.

    Wenn ich ein enclosure zu einer Nachricht hinzufüge werden folgende Einträge in der Tabelle tl_news gamacht:
    addEnclosure=1
    enclosure=a:1:{i:0;s:72:"tl_files/test.pdf";}

    Und genau dieses Array, was bei enclosure eingetragen wird, verstehe ich nicht ganz. Was bedeutet der Wert hinter dem s?

    Danke und viele Grüße
    Zoidberg

  2. #2
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Zoidberg Beitrag anzeigen
    Und genau dieses Array, was bei enclosure eingetragen wird, verstehe ich nicht ganz. Was bedeutet der Wert hinter dem s?
    Das ist ein serialisiertes Array.

    Um dies zu verstehen zerlege ich es mal ein wenig.

    Code:
    a:1:{ // ein array mit einem Eintrag.
    i:0; // dies ist der eintrag mit index 0
    s: // es folgt ein String.
    72: // mit Laenge 72??? du meinst hier sicherlich 17, vermute hier einen copy&paste Fehler.
    "tl_files/test.pdf"; // und das steht drin.
    }
    Hoffe es hilft.

    Gruss
    Chris
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  3. #3
    Contao-Nutzer
    Registriert seit
    20.08.2009.
    Beiträge
    3

    Standard

    Hi,
    danke für die schnelle Antwort. Jetzt verstehe ich die Bedeutung des "s:" in dem Array. Leider kann ich trotzdem keine Anhänge auf diese Art und Weise hinzufügen.

    Wenn ich ein enclosure im Backend hinzufüge, dann wird es in der Nachricht so wie erwartet angezeigt. Wenn ich jedoch die entsprechenden Datenbankfelder manuell fülle, dann sehe ich die Dateianhänge nicht. Sieht für mich so aus, als müsste ich noch weitere Datenbankeinträge vornehmen. Ich habe die Tabellen aber schon nach möglichen Kandidaten durchforstet und kann nichts finden. Vielleicht hat jemand einen Hinweis für mich. Danke.

    Viele Grüße
    Zoidberg

  4. #4
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Moment... du befuellst die Datenbank von HAND?

    Lass das doch bitte PHP selbst machen, mit Hilfe der serialize() Funktion, denn dazu ist sie da.
    Ich dachte du wolltest generell wissen wie serialisierte Arrays aufgebaut sind und verstehen.

    Aber zum Manipulieren derselbigen solltest du bitte sehr die funktionen benutzen, die dazu gedacht sind.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  5. #5
    Contao-Nutzer
    Registriert seit
    20.08.2009.
    Beiträge
    3

    Standard

    Hi,
    keine Sorge mit von Hand meinte ich nicht, dass ich das da selbst eintrage. Ich meinte damit bloß, dass ich das nicht auf den vorgesehenen Weg im Backend machen will. (Aber danke für den Hinweis mit serailize()...ich habe das schon mehr oder weniger nachprogrammiert )

    Ich habe jedoch einen ersten kleinen Test gemacht, indem ich den Inhalt der beiden Felder addEnclosure und enclousre aus einem Nachrichtenbeitrag, der Anhänge hatte kopiert habe und in einem eingefügt habe, der keine hat. Und da bereits das nicht funktioniert hat, frage ich mich, was ich noch tun muss, damit die Anhänge anzeigt werden.

    Danke nochmal und liebe Grüße
    Zoidberg

  6. #6
    Contao-Fan
    Registriert seit
    08.07.2009.
    Beiträge
    530

    Standard

    In Contao 3.2 wird der Dateipfad des Enclosures nicht mehr als Klartext in das serialisierte Array gespeichert. Gibt es irgendwo eine Dokumentation, wie der Pfad konstruiert bzw. kodiert wird? Ich möchte per Datei-Upload (Formular) den Pfad einer Datei als Enclosure speichern.

    Beispiel: a:1:{i:0;s:16:"+ÍñcUå´";}

  7. #7
    Contao-Nutzer
    Registriert seit
    30.09.2010.
    Beiträge
    64

    Standard

    Würde mich auch interessieren ...
    Ebenfalls Datei-Upload per Formular (Contao 3.5.4)

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Es steht einfach die UUID drin. Die UUID bekommst du mit
    PHP-Code:
    \FilesModel::findByPath('…')->uuid
    Oder auch
    PHP-Code:
    \Dbafs::addResource('…')->uuid 
    Bei Formularen hilft dir evt. [store_uuid], da wird dann automatisch das richtige in die Datenbank geschrieben.

    // ah, store_uuid wird hier nicht helfen - könnte ich aber mal erweitern, damit das auch für fileTree Felder mit multiple => true funktioniert.
    Geändert von Spooky (24.11.2015 um 15:13 Uhr)

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Version 1.0.0 der [store_uuid] Extension greift nun auch bei solchen Feldern.

  10. #10
    Contao-Nutzer
    Registriert seit
    30.09.2010.
    Beiträge
    64

    Standard

    Super Spooky. Es hat geklappt. Vielen Dank!

  11. #11
    Contao-Nutzer
    Registriert seit
    30.09.2010.
    Beiträge
    64

    Standard store uuid

    Hallo Spooky
    Bei der 1.0.1 Version hat sich, glaube ich, ein kleiner Fehler eingeschlichen: Das Modul heißt statt "store_uuid" jetzt "store_uuids"
    Wenn ich es richtig gessehen habe, ist das nur im ER so. Auf github ist der Modulname geblieben. Store_uuid 1.0.1 aus dem ER funktioniert nicht richtig. Man muss das Verzeichnis im System/Module/ in "store_uuid" ändern, dann läuft es wieder.

    Gruß Alibi

  12. #12
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Oh danke, werde ich in einer halben Stunde oder so ändern können.

    // ist im neuesten Build im ER behoben
    Geändert von Spooky (09.12.2015 um 13:51 Uhr)

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Antworten: 20
    Letzter Beitrag: 17.07.2012, 15:40
  2. Antworten: 1
    Letzter Beitrag: 29.10.2010, 11:59
  3. Auswahlmenü zum BE hinzufügen
    Von Russe im Forum Entwickler-Fragen
    Antworten: 6
    Letzter Beitrag: 19.03.2010, 09:56
  4. Benützer hinzufügen?
    Von lightstyles im Forum Geschützte Bereiche/Mitglieder
    Antworten: 3
    Letzter Beitrag: 27.09.2009, 09:13

Lesezeichen

Lesezeichen

Berechtigungen

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