Week 5 - Alles is een widget… of toch niet?

In week 5 (tijdens de vakantie) ben ik begonnen aan de widgetstructuur zoals eerder vermeld. Dit liep echter niet altijd volgens een leien dakje. Zo was ik vergeten om uit te werken hoe ik data aan de widgets zou doorgeven en dit was nochtans een vrij belangrijk onderdeel.

Een pagina wordt opgebouwd door een klasse met de naam FrontController. In deze klasse staan functies met een bepaalde naamgeving zodat op basis van een url de juiste pagina wordt gegenereerd. Ik had deze klasse uitgebreid met een oproep naar de WidgetFactory-klasse die ik vorige week besproken had, zodat alle widgetzones werden gevuld met de widgets die er volgens de database thuishoorden.

De context van een widget is echter op iedere FrontController anders: Als we het weer van een bepaald land willen weergeven, moeten we informatie uit de landentabel ophalen. Als we het weer van een bepaalde bestemming willen weergeven moeten we dan weer informatie uit de bestemmingentabel halen. Het probleem was echter hoe we aan de widget konden doorgeven welke informatie nodig was.

Na een hele tijd erover hebben nagedacht heb ik uiteindelijk Chris als hulplijn ingeroepen, waarna we besloten om constanten te definiëren en deze mee te geven aan een bepaalde FrontController (DestinationFront, Destination_categoryFront, CountryFront). Zo kunnen we dan een verwijzing naar de FrontController meegeven met de widget, waarna de widget voor zichzelf kan bepalen aan de hand van de constante uit welke tabel de meegegeven id komt. Ook heb ik voor de volledigheid een methode opgesteld waarmee kan bepaald worden of een bepaalde widget voor iedere FrontController gebruikt kan worden of alleen in bepaalde FrontControllers om later te gebruiken in de webadmin.

Een tweede zaak die ik heb uitgewerkt is een uitbreiding voor de Smartyplugin die de widgetzones rendert,waardoor er, als de pagina gepreviewed wordt, een kader rond de widget wordt gerendered met knoppen om de widget te sluiten en om de volgorde van de widgets aan te passen. Dit allemaal als voorbereiding op het schrijven van een previewpanel voor de artikelmodule.

Als uitbreiding wilde ik het mogelijk maken dat de gebruiker via de WebAdmin gemakkelijk widgets kan toevoegen aan een pagina d.m.v. een paar klikken. Het project was nog niet gesliced, waardoor ik de kans kreeg om dit nu al uit te werken. Ik ondervond al snel dat dit niet gemaakt kon worden zonder de url-structuur uit te werken. Dit was dan weer iets dat ik best even met Chris en Jente zou  bespreken.

Bovendien leek het me ook nodig dat er hiervoor al tenminste 1 FrontController (dus 1 categorie op de site) was uitgewerkt. Daarom hebben we (de 2 projectleiders Dennis en Wim en ik) besloten om dit gedeelte van widgets een paar weken vooruit te schuiven. Vervolgens hebben we in de planning wat geschoven met de modules met als resultaat dat ik aan de Citytripmodule kon beginnen.

De Citytripmodule nam in de planning een hele week in, maar al snel ondervonden we dat 1,5 dag voldoende was, omdat de code grotendeels gelijk aan de code van de Bestemmingenmodule was. Deze module is dan ook op het moment van schrijven al af. Hierna ga ik beginnen aan de Bezienswaardighedenmodule, die op papier ook een volledige week in beslag neemt. Hopelijk gaat dit zowat even snel, zodat ik 2 weken gewonnen heb om aan de Front-end te werken: Ik heb daar namelijk wel wat schrik voor. Ook aan de Preview in de artikelmodule is er nog heel wat werk. Ik ben dan ook blij dat we bij de planning voor dit soort zaken voldoende tijd hebben voorzien, zodat de enige verrassingen positieve verrassingen zijn.

Werken in de vakantie

Zoals al eerder vermeld is het deze week eigenlijk vakantie. Toch vind ik het niet erg om nu ook te werken: Ik zou dit project echt graag afgewerkt hebben bij het einde van mijn stage en hopelijk ook nog wat extra’s invoegen, zodat dit echt een geslaagd project wordt. Komen werken tijdens de vakantie geeft mij 2 extra weken om dit te verwezenlijken, wat voor mij eigenlijk wel een geruststelling is. Bovendien ben ik niet de enige stagiair die tijdens de vakantie werkt: het stagiairteam is zelfs voltallig, dus lijkt het juist een week zoals de voorbije weken.

Coming up next week

Volgende week ga ik waarschijnlijk nog wat modules in de WebAdmin uitwerken aangezien het slicen waarschijnlijk pas aan het einde van de week zal gebeuren. Op zich is dit ook niet echt een probleem: als ik meer ongefragmenteerde tijd heb voor de Front-End, is dat alleen maar positief!

Een reactie op “Week 5 - Alles is een widget… of toch niet?”

  1. Jan Raedschelders zei op 11/04/2010 om 17:52,

    Als student is je vakantie natuurlijk een heilige periode, je instelling om dit even links te laten liggen en er volledig voor te gaan is zeker een pluim waard. Goed bezig Philippe, doe zo voort!


Reageren