[TYPO3-UG Dutch] Record locking
H. Hahn
h.hahn at hahn-informatica.nl
Wed Sep 10 16:13:39 CEST 2008
Voor een klant heb ik een eigen vorm van front-end editing gerealiseerd,
op basis van TinyMCE in plaats van HtmlArea RTE. De redenen daarvoor
doen hier nu niet ter zake.
Ik heb hiervoor een eigen databasetabel gemaakt (waarin ik dus ook naar
believen nieuwe kolommen kan aanmaken als dat nodig is).
De klant wil met meer dan een redacteur kunnen werken. Het gevaar
bestaat dus dat redacteur A en redacteur B per ongeluk tegelijk aan
dezelfde pagina gaan werken. Er is dus een vorm van record locking
nodig. Daar heb ik alleen geen enkele ervaring mee.
Nu lijkt me een simpele record locking niet zo moeilijk te maken. Gewoon
een vlag (bijv. een extra veld in de databasetabel) die aangeeft dat er
iemend bezig is met die alinea (ik heb een record per alinea, dus
meerdere records per pagina). Als de betreffende redacteur de pagina
sluit, wordt de vlag gereset.
Maar als nu intussen door welke oorzaak dan ook de verbinding tussen
browser en server wegvalt, zou die vlag nooit meer gereset worden en het
betreffende record dus niet meer wijzigbaar zijn. Een gewone timeout
lijkt me ook bezwaarlijk; iemand kan immers net even een kopje koffie
aan het drinken zijn of zo, waardoor die vlag mogelijk te vroeg gereset
wordt.
Ook kan ik die vlag in plaats van de waarde "1" (= "bezig") en "0" (=
"vrij") de waarde van de session_id resp. "leeg" geven. Bij elke poging
om iets te wijzigen of op te slaan kan ik de session_id vergelijken met
die in be browser (cookie fe_typo_user). Maar dat levert nog geen
criterium op voor het resetten van de vlag.
Weet iemand bruikbare oplossing voor het veilig (dwz. niet te vroeg en
niet te laat) resetten van zo'n vlag? Graag oplossingen in PHP en/of
MySQL, maar niet in Typoscript (mijn FE-editing is niet als "extensie"
uitgevoerd en kan dus niet met TS overweg).
Bij voorbaat dank.
H. Hahn
More information about the TYPO3-UG-dutch
mailing list