De site van H.J. de Boer

Homepage van H.J. de Boer > Frontpage

Smilies doen het allemaal weer


Zojuist heb ik de smilies weer in hun oude glorie hersteld. Sinds ik de nieuwe BB-code parser heb geïnstalleerd, deden sommige smilies het niet meer; bij anderen was niet onze 'eigen' smilie te zien. Het heeft zo lang geduurd voor ik dat gerepareerd heb, omdat ik tegen een probleempje aanliep. Toen ik mijn eigen smiliebestand ging gebruiken, bleek dat de smilie :/ die je schrijft als :/ ook omgezet werd wanneer ik HTML gebruikte. De parser kan namelijk wel checken of hij zich in een tag van zichzelf bevindt en in gespecificeerde gevallen zet hij codes die met smilies overeenkomen niet om, bijvoorbeeld bij plaatjes of links. Het ding kan echter niet checken of ik in mijn gewone tekst HTML gebruik, omdat ik de functionaliteit daarvan drastisch verbouwd heb.

Daardoor liep ik tegen het probleem aan dat wanneer ik een plaatje door middel van <img src="http://www.hjdeboer.nl/bla/plaatje.jpg" alt="Plaatje" /> in mijn tekst wilde plaatsen, de :/ uit http:// meteen omgezet werd naar het webadres van de bijbehorende smilie. Daardoor kwam er uiteindelijk nóch het bedoelde plaatje, nóch de smilie tevoorschijn. Dit alles heb ik zojuist zonder al teveel nadenken op een vrij ranzige manier opgelost. Hopelijk kan ik dat nog eens wat netter en vooral sneller maken, want zo te zien lijden de parsetimes wel onder deze oplossing. Hoe het ook zij, het werkt nu in ieder geval weer zoals het hoort. Aangezien ik met dit soort dingen erg resultaatgericht denk, vind ik dan ook dat ik weer lekker bezig ben geweest. :7

Dat mag je met mij oneens zijn overigens. Als je het maar niet vertelt tegen me. :P

Update:
Vandaag overdag heb ik het hele parsingverhaal nog eens grondig onder handen gehad. Alle FP-items worden nu tweemaal opgeslagen in de database, net zoals MyReact dat doet met de forumposts. Er wordt een ongeparste (ruwe) versie bewaard (zoals vroeger) en daarnaast een versie die reeds volledig door de OML-parser is gehaald. Die geparste versie wordt uiteindelijk uit de database getrokken wanneer er een pagina opgevraagd wordt; aan dat parsen hoeft dan dus niets meer te gebeuren, wat dat proces een stuk versnelt. De frontpage laadt nu bij mij in ongeveer 0,12 seconden en vanwege MySQL's querycache na een keer refreshen soms wel in 0,045 seconden. 8) Misschien dat ik deze grap ook nog voor andere delen van de site uit ga halen, maar dat weet ik nog niet zeker.