Feature #9600
closedReport als File
0%
Description
Nach Diskussion mit BB, ME soll QFQ umgebaut werden, so das die T3 QFQ tt-content Records den Inhalt aus dem Filesystem laden koennen.
- Damit sollte (fuer bestehende tt-content records) ein GIT commit/pull (mergen) durch mehrere Entwickler moeglich werden.
- Im QFQ tt-content Record wird ein Keyword 'filebased' angegeben. Damit weiss QFQ das es filebased arbeiten soll und dann den Inhalt im Filesystem.
Es sind noch etliche Detailfragen zu loesen - insbesondere beim mergen. Evtl. koennen extended attributes helfen um den Dateinamen sprechend zu machen.
- Moegliche Directory Struktur
- Page als Verzeichnis: id-<title>
- Content als Datei: id-[column]-[language id]-<title> (column: lnrb)
- Ist der Inhalt im tt-content record neuer als die Datei, wird die Datei aktualisiert. Timestamps werden aktualisiert.
- Ist der Inhalt in der Datei neuer als der tt-content record, wird der Record aktualisiert. Timestamps werden aktualisiert.
- Somit kann auf Filesystemebene und im Browser gearbeitet werden.
Related issues
Updated by Carsten Rose over 4 years ago
- Related to Feature #3402: Syntax Highlighting via CodeMirror added
Updated by Carsten Rose over 4 years ago
- Related to Feature #9602: Form definition as JSON added
Updated by Carsten Rose over 4 years ago
- Related to deleted (Feature #3402: Syntax Highlighting via CodeMirror)
Updated by Carsten Rose over 4 years ago
- Status changed from New to Some day maybe
Updated by Carsten Rose over 4 years ago
- Status changed from Some day maybe to New
Updated by Carsten Rose about 4 years ago
- Tracker changed from Support to Feature
Updated by Carsten Rose about 4 years ago
- Target version changed from 55 to next7
Updated by Marc Egger almost 4 years ago
- Status changed from New to Priorize
- Assignee changed from Carsten Rose to Marc Egger
Updated by Marc Egger almost 4 years ago
- Subject changed from T3 tt-content record (Report) fuer QFQ: File based to Report als File
Updated by Marc Egger over 3 years ago
Ich bin mir nicht ganz sicher ob die oben genannte Lösung die beste ist.
Nach der Implementierung von Form As File, habe ich erlebt, wie kompliziert es sein kann, eine "simple" Synchronisation zwischen Files und Datenbank zu implementieren. Befolgen wir die obige Lösung, müssen wir nicht nur Files sondern auch die Ordnerstruktur synchronisieren. Natürlich wird es dadurch einfacher, dass wir die Ids mit synchronisieren, dies bindet die Files aber wiederum sehr stark an die Datenbank. Wie interpretieren wir drag-and-drop und copy-paste der files, wenn diese von der Datenbank id abhängig sind?
Ich würde folgende Alternative vorschlagen:
- Zusätzlich zu dem bisherigen qfq tt-content record, führen wir einen qfq-file tt-content record ein.
- Mittels Dropdown oder Textfeld kann man ein report file diesem tt-content record zuweisen.
- Wenn das qfq-file tt-content record gerendert wird, wird das referenzierte File geladen und gerendert.
- Ein file kann in mehreren tt-content records referenziert werden.
Vorteile:
- Keine Synchronisation !!!
- Files sind unabhängig von tt-content ids und page ids.
- Files koennen problemlos zwischen verschiedenen Typo3 Instanzen hin und her kopiert werden.
- File Struktur darf, muss aber nicht die Page Struktur wiederspiegeln.
- Ich schätze den Aufwand kleiner ein.
- Die Lösung ist unabhängig von Typo3, Einsatz von QFQ in anderen CMS/Frameworks wird ermöglicht.
- Diese Lösung erscheint mir stabiler gegenüber Typo3 updates.
- Update auf die neue QFQ Version (mit Report as File) ändert nichts an bestehender QFQ Applikation. Kann also nichts kaputt machen.
Nachteile:
- Beim erstellen des tt-content records muss ein File ausgewählt (oder erstellt) werden.
- Die Filestruktur spiegelt nicht automatisch die page Struktur.
- Der Report kann nicht innerhalb von Typo3 bearbeitet werden.
- Wir könnten allerdings einen eigenen web-editor in qfq bauen und diesen im Typo3 Interface verlinken.
- Es wird keine automatische History der Reports mehr erstellt. Versioning muss komplett über Git stattfinden.
- Die T3 Datenbank muss nachwievor synchronisiert werden. (Dies ist aber auch in der vorgesehenen Lösung der Fall und ist kaum zu verhindern)
Updated by Benjamin Baer over 3 years ago
ich wuerde die id ignorieren und automatisch eine speaking url aus dem ordnernamen generieren fuer die page und beim tt-content record einfach title = dateiname.
Updated by Marc Egger over 3 years ago
Falls wir meine Variante machen, haette Benj gerne ein Feature, mit dem man einmalig alle bestehenden tt-content records in report files exportieren und umwandeln kann.
hmm aber ja, kannst es auch so machen wie du gesagt hast
vermutlich besser, dann haben wir nicht viel mit der typo3 datenbank am hut
solange du ein ~sync~ export script macht der beim ersten mal alles schoen in ordner ablegt die nach pages benannt sind <3
- Benj
Updated by Marc Egger over 3 years ago
CR und ME entschieden:
- Es gibt kein neues tt-content element.
- Stattessen führen wir ein neues keyword ein: File=<path>
- Ist das keyword gesetzt, wird der report aus angegebenem file geladen.
- Ist es nicht gesetzt, wird der tt-content pfad im filestystem einmalig abgebildet und der inhalt tt-content bodytext in ein file in diesem pfad kopiert. Der bodytext des tt-content element wird ersetzt mit File=<path>.
- Den inhalt der report files kann man nicht im T3 backend direkt bearbeiten.
- Im Frontend wird weiterhin ein edit symbol angezeigt, wenn man im T3 backend eingeloggt ist. Damit kann man den inhalt des report files bearbeiten.
Updated by Marc Egger over 3 years ago
- Status changed from Priorize to In Progress
Updated by Marc Egger over 3 years ago
Implemented first working version with frontend report editor:
Branch: F9600ReportAlsFile
Unittests fail. Have to be corrected.
Updated by Marc Egger over 3 years ago
Fertig implementiert.
TODO:
- Mit Carsten die Notes in FormAsFile.php besprechen
- Selenium tests schreiben
Updated by Marc Egger over 3 years ago
- Status changed from In Progress to Priorize
Updated by Marc Egger about 3 years ago
- Status changed from Priorize to Closed
Report As File wird in den Selenium Tests jetzt abgedeckt durch den mitgelieferten Form Report.