Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage: Was ist ein Draft, kann ich von außen via PHP Datensätze erstellen

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

  • Frage: Was ist ein Draft, kann ich von außen via PHP Datensätze erstellen

    Hallo,

    ich habe einen CC angelegt mit verschiedenen Feldern. Jetzt möchte ich die Datenbank via PHP manuell befüllen. Das funktioniert auch alles soweit.

    Allerdings werden die Datensätze, die ich über PHP eingefügt habe im Backend von Contao ausgegraut angezeigt und sie haben die CSS Klasse 'draft'.

    Siehe Bild.

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Screenshot_20230313_105319.png
Ansichten: 65
Größe: 188,1 KB
ID: 27177

    Was hat es damit auf sich?

    Zusatzfrage: Ein Feld habe ich als Tabelle angelegt. Das wird in der Datenbank ja als Blob gespeichert. Meine Datenstruktur ist erst mal ein JSON, wie folgt:
    Code:
    zeiterfassung: [{
    "monteur": "Test",
    "datum": "01.01.2023",
    "arbeitszeit_von": "10:00",
    "arbeitszeit_bis": "11:00",
    "fahrzeit_von": "10:00",
    "fahrzeit_bis": "11:00",
    "kilometer": "500"
    }],
    In PHP kann ich das dann serialisieren mit
    Code:
    $zeiterfassung = serialize($zeiterfassung);
    Wenn ich das aber einfüge, klappt das nicht. Geht das vielleicht und wenn ja wie?

    Beste Grüße
    Nick

  • #2
    Hi Nick,
    "draft" kenne ich aus einem Standard-Contao und CC nicht. Vielleicht ein für das System ungespeicherter Eintrag. Für Contao gilt ein Eintrag erst als gespeichert, wenn das tstamp Feld des Eintrags mit einem Unix-Zeitstempel befüllt ist.

    Du musst dir für deine eigene Import-Logik die Datenstruktur, die Contao (und damit auch der CC) benötigt exakt in der Datenbank abschauen, Feld für Feld, Feldtyp für Feldtyp.
    -> das gilt besonders für Tabellen-Felder. Die sind nicht einfach ein Blob mit einem Array, sondern der Array selbst muss eine exakte Struktur aufweisen, dass der Feldinhalt später von Contao als Tabellen-Widget-Inhalt gelesen werden kann.

    Ich würde auch empfehlen in deinem Import-Script auf Contaos Klassen zu zugreifen. Contao Datenbank Klasse konvertiert z.B. Array Werte in serialisierte Werte, passend zum jeweiligen Zielfeld. Darüber hinaus erfüllen Contao Klassen auch Contaos Sicherheitsrestriktiven.

    VG,
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Hi Tim, danke. Das mit dem tstamp wird es denke ich sein. Ja habe ich befürchtet, schau ich mir an. Danke für die Tipps.
      Beste Grüße
      Nick

      Kommentar

      Lädt...
      X