Hallo,
Ich sitze an einem Controlling-Tool für Filialen, bei dem jeden Monat CSV-Dateien eingelesen werden.
Nun sollen nach dem einlesen einige Werte daraus berechnet werden, z.B. Durchschnittswerte bundesweit, landesweit etc.
Einige dieser Berechnungen sind recht aufwendig, daher sollen diese nur einmal erstellt werden.
Im BE gibt es dann ein Modul mit einem "Jetzt berechnen"-Knopf, rödelrödel, fertig!
Ich würde diese Werte am liebsten ins TS der Extension schreiben, da diese Werte ja quasi statisch sind und nur angezeigt werden.
Die Daten wären dann im FE-Plugin sofort verfügbar, ohne neue DB-Abfrage.
Geht das mit Bordmitteln, also ohne direkten Zugriff auf sys_template oder Bearbeitung einer constant.txt oder setup.txt?
Die einfachste Lösung, aber eher unsauber, die ich sehe, ist ein Template anzulegen und davon sys_template.constants zu überschreiben, dann den Cache zu löschen.
LG
Jan
Lagere dein TS in eine Text-Datei aus, generiere die neu, leere den Cache. Fertig.
Im Prinzip willst du berechnete Daten zwischenspeichern und auslesen, aber diese Werte in eine txt Datei zu schreiben, den Cache löschen und dann neu einlesen zu lassen klingt für mich eher nach einer unsauberen Lösung.
Hier wäre eine DB-Abfrage wohl sauberer, den auch der Zugriff darauf ist durch die API besser. Wenn du jetzt selbst keine neue DB Anlegen willst schau die mal die Sys_registry an, das ist eine DB-Tabelle innerhalb von TYPO3 die dafür gedacht ist Key-Value pairs zu schreiben und zu lesen.
Schau mal hier für TYPO3 >=6:
https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/SystemRegistry/Index.html
oder hier
https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/Index.html
@aemka: Hatte ich auch überlegt, sehe ich aber als genauso unsauber an, wie den direkten Zugriff auf die sys_template. Außerdem müsste ich immer den Cache löschen.
@karlchen: sys_registry kannte ich noch nicht, danke. Ich denke, dass werde ich benutzen.
Bei der sys_registry Methode musst du ja auch den Cache leeren, wenn deine Plugins cachebar sind.