Mijn CMS'je biedt gebruikers de mogelijkheid om plaatjes te uploaden en deze desgewenst te hernoemen of weer te verwijderen van de server. Ik zoek nu een manier om de hernoem / verwijder functie te disablen als een plaatje ergens op de website gebruikt wordt.
In beginsel lijkt dit eenvoudig: op het moment dat een gebruiker een pagina, artikel of andere contenttype aanmaakt of verandert, controleer ik bij het saven ervan met een regex of er img-tags zijn en match het src-attribuut met plaatjes op de server. Vervolgens sla ik in een aparte database tabel op welke plaatjes waar in de site in de html staan.
Iets irritanter wordt het bij css files: ik heb nog geen regex kunnen schrijven die bullet-proof plaatjes filtert. Waarschijnlijk kun je gewoon filteren op url(), toch? Voor zover ik weet pak je dan alle plaatjes.
Nog lastiger - imho niet te doen - wordt het bij js bestanden: image tags kunnen op verschillende manieren worden aangemaakt (via DOM of innerhtml bijvoorbeeld), en de src-url kan op nog veel meer manieren tot stand komen.
Nu dacht ik dit alles te kunnen omzeilen door een javascriptje te schrijven dat de DOM uitleest nadat de pagina op de client gerenderd is, en alle images terug te sturen naar de server en dan op te slaan in genoemde tabel. Het probleem hierbij is weer dat de DOM ook op de client gemanipuleerd kan worden - sommige plaatjes worden pas onclick of onmouseover aan de DOM toegevoegd bijvoorbeeld. Ik zou dan een soort "listener-scriptje" kunnen schrijven, dat bij elke client-side actie kijkt of er een plaatje geladen wordt.
Je snapt het al - lastig lastig! Daarom graag jullie input. Is dit te doen? Heb je het al eens ergens gezien? Ben je zelf al eens met zoiets bezig geweest? Heb je een ander idee waarop dit uitvoerbaar is? Heb je commentaar (positief of negatief) voor me? Ontzettend graag!
In beginsel lijkt dit eenvoudig: op het moment dat een gebruiker een pagina, artikel of andere contenttype aanmaakt of verandert, controleer ik bij het saven ervan met een regex of er img-tags zijn en match het src-attribuut met plaatjes op de server. Vervolgens sla ik in een aparte database tabel op welke plaatjes waar in de site in de html staan.
Iets irritanter wordt het bij css files: ik heb nog geen regex kunnen schrijven die bullet-proof plaatjes filtert. Waarschijnlijk kun je gewoon filteren op url(), toch? Voor zover ik weet pak je dan alle plaatjes.
Nog lastiger - imho niet te doen - wordt het bij js bestanden: image tags kunnen op verschillende manieren worden aangemaakt (via DOM of innerhtml bijvoorbeeld), en de src-url kan op nog veel meer manieren tot stand komen.
Nu dacht ik dit alles te kunnen omzeilen door een javascriptje te schrijven dat de DOM uitleest nadat de pagina op de client gerenderd is, en alle images terug te sturen naar de server en dan op te slaan in genoemde tabel. Het probleem hierbij is weer dat de DOM ook op de client gemanipuleerd kan worden - sommige plaatjes worden pas onclick of onmouseover aan de DOM toegevoegd bijvoorbeeld. Ik zou dan een soort "listener-scriptje" kunnen schrijven, dat bij elke client-side actie kijkt of er een plaatje geladen wordt.
Je snapt het al - lastig lastig! Daarom graag jullie input. Is dit te doen? Heb je het al eens ergens gezien? Ben je zelf al eens met zoiets bezig geweest? Heb je een ander idee waarop dit uitvoerbaar is? Heb je commentaar (positief of negatief) voor me? Ontzettend graag!
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."