Report As File » History » Revision 2
« Previous |
Revision 2/3
(diff)
| Next »
Marc Egger, 22.07.2020 12:59
Report As File¶
Path structure
The directory structure mirrors exactly the typo3 page structure.
Each QFQ tt-content record corresponds to exactly one file located in the directory which is named after the page in which the tt-content record lies.
Problem: The page name might not be unique thus multiple directories with the same name must exist.
Problem: QFQ applications depend on more than the tt-content records:
- position of tt-content record on page (center/column)
- order of tt-content records on page
- page alias of page on which tt-content record is
- page alias of all other pages
Problem: If someone used the page id or the uid of a tt-content record inside a QFQ report as a link, then this will break.
File and tt-content table synchronization:
Assume we can recognize wheter the file or the report was changed since the last synchronization between the two.
File exists | tt-content exists | last synch data exists | File Changed | tt-content Changed | QFQ reaction when Report is rendered |
X | X | X | render Report from tt-content record | ||
X | X | X | X | Update tt-content record and render report | |
X | X | X | X | Write tt-content to file and render report | |
X | X | X | X | X | Show an error message to developer with two sip protected links: "overwrite file" and "overwrite database"If one is clicked, the page is reloaded with a respective flag which indicates to QFQ what it should overwrite. |
X | X | - | - | ||
X | - | - | |||
X | - | - | |||
- | - | never happens |
Chalenges:
- recognize changes since last synchronization efficiently
- Obvious solution: create table "Sync" and use it to track the last synchronization
- columns:
- id
- recordId
- recordFingerprint
- pathFileName
- fileFingerprint
- modified
- created
- columns:
- Obvious solution: create table "Sync" and use it to track the last synchronization
- overwrite tt-content without braking the typo3 tt-content history mechanism.
- look at how tt-content is edited by the QFQ admin interface in the frontend and copy aproach.
- scenarios not covered yet:
- file exists, but not tt-content
- tt-content exists, but not file
- both exists but where never synchronized
- Typo3 does not enforce page pathes to be unique
- Possible solution: QFQ enforces uniqueness by throwing exception if not satisfied
Updated by Marc Egger almost 4 years ago · 2 revisions