Een tijdje geleden heb ik in mijn cms'je de mogelijkheid gebouwd om een oneindig aantal templates te definieren: voor mijn eigen website heb ik er nu 4: de homepage template, een template met 2 en een met 3 kolommen, en een admin template (met het menu bovenaan de plagina ipv in de linker kolom).
Als ik een nieuwe pagina aanmaak, zeg een nieuw artikel invoer, moet ik bij het aanmaken in een dropdown menuutje aangeven welke template ik aan dit artikel wil toewijzen. In de database staat op deze manier 1 op 1 een template gekoppeld aan elke pagina binnen de site.
Op deze manier van werken ben ik de afgelopen dagen wat aan het terugkomen. Als ik naar nieuwe corporate websites kijk tegenwoordig (zoals Movabletype), vallen mij twee dingen op:
Stel dat mijn site 2 of 3 kolommen heeft. In de linker kolom staat altijd het navigatie menu. Daarnaast staat OF 1 kolom van 500 pixels breed met een artikel OF 2 kolommen: 1 van 350 pixels met een artikel en 1 van 150 pixels met extra informatie over het artikel. Die extra info staat in een div genaamd "column_right". Nu zou ik bovenaan mijn site een javascriptje kunnen maken dat checkt op de "column_right" div. Vindt hij deze, maakt hij de div waar het artikel in staat 350 pixels; anders 500 pixels:
Op deze manier hoef ik in mijn cms helemaal geen aparte templates te definieren; ik maar gewoon een zooi javascripts en css bestanden die alles clientside afhandelen. Een groot bijkomend voordeel is dat ik bij het maken van een nieuw artikel ook geen template meer hoef te selecteren.
Mijn vragen zijn:
Als ik een nieuwe pagina aanmaak, zeg een nieuw artikel invoer, moet ik bij het aanmaken in een dropdown menuutje aangeven welke template ik aan dit artikel wil toewijzen. In de database staat op deze manier 1 op 1 een template gekoppeld aan elke pagina binnen de site.
Op deze manier van werken ben ik de afgelopen dagen wat aan het terugkomen. Als ik naar nieuwe corporate websites kijk tegenwoordig (zoals Movabletype), vallen mij twee dingen op:
- het lijkt tegenwoordig steeds minder te gaan om de "kijk-mij-een-onwijze-flashfilm-en gephotoshopte-homepage-met-overal-ronde-hoekjes-en-kleine-plaatjes-hebben-waarbinnen-elke-
pagina-er-weer-anders-uitziet" maar steeds meer om een cleane, uniforme look. Ik heb het idee dat veel sites gebouwd worden naar het weblog-model (steeds meer draaien ook op weblog software (http://www.spreadfirefox.com op Drupal bijvoorbeeld). Waar 2 jaar geleden alle titeltjes nog met gephotoshopte plaatjes werd weergeven, wordt nu weer "normale" tekst gebruikt; - afhandeling van de template wordt steeds meer client-side gedaan. Het cms spuugt symantisch correcte html uit, welke mbv. een stylesheet wordt vormgegeven.
Java:
1
2
3
4
5
6
| if (path == 'persoonlijk') { document.write('<link rel="stylesheet" href="css/persoonlijk.css>'); } else { document.write('<link rel="stylesheet" href="css/standaard.css>'); } |
Stel dat mijn site 2 of 3 kolommen heeft. In de linker kolom staat altijd het navigatie menu. Daarnaast staat OF 1 kolom van 500 pixels breed met een artikel OF 2 kolommen: 1 van 350 pixels met een artikel en 1 van 150 pixels met extra informatie over het artikel. Die extra info staat in een div genaamd "column_right". Nu zou ik bovenaan mijn site een javascriptje kunnen maken dat checkt op de "column_right" div. Vindt hij deze, maakt hij de div waar het artikel in staat 350 pixels; anders 500 pixels:
Java:
1
2
3
4
5
6
| if (document.getElementById('column_right')) { document.getElementById('artikel_div').width == 350; } else { document.getElementById('artikel_div').width == 500; } |
Op deze manier hoef ik in mijn cms helemaal geen aparte templates te definieren; ik maar gewoon een zooi javascripts en css bestanden die alles clientside afhandelen. Een groot bijkomend voordeel is dat ik bij het maken van een nieuw artikel ook geen template meer hoef te selecteren.
Mijn vragen zijn:
- is dit een goede manier van werken?
- wie heeft er al ervaring met het volledig client-side bepalen van de lay-out?
- kom ik niet in problemen als de site ingewikkelder wordt (bijvoorbeeld met productpagina's etc)?
[ Voor 4% gewijzigd door Reveller op 30-05-2005 13:18 ]
"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."