[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