Mijn CMS'je werkt met "nette URL's als volgt. Voor elke pagina die de gebruiker aanmaakt moet hij een "alias" opgeven. Bijvoorbeeld: gebruiker maakt de pagina met titel "Onze Kledinglijn" aan en geeft als alias "kleding". Daaronder hangt hij een pagina "Broeken en Shorts" met alias "broeken". De URL www.site.com/kleding/broeken verwijst nu naar de "Broeken en Shorts" pagina. Nu mijn probleem. Ga uit van de volgende boom, waarbij de aliassen van de pagina's tussen haakjes staan:
Het CMS heeft een mogelijkheid om pagina's te verplaatsen. Stel nu dat de gebruiker de pagina met * (lange jassen) wil verplaatsen als kind onder ** (broeken). Ik kom dan in de knoei, omdat er al een pagina met alias "lang" onder broeken hangt. Met andere woorden: welke pagina moet er op het scherm komen als iemand de URL www.site.com/broeken/lang opvraagt? De boom ziet er immers zo uit:
Dit voorbeeld is eenvoudig, maar het zou net zo goed kunnen dat iemand een pagina (inclusief kinderen van die pagina) verplaatst naar een andere pagina, en dat er 3 niveau's down een dubbele alias zit. Ik zit er nog over te denken hoe ik efficient op dubbele waardes ga controleren (waarschijnlijk door aan elke node in de tree een "level" mee te geven en dan per level te kijken of er al zo'n waarde bestaat), maar vraag me af wat gebruiksvriendelijk is in het geval ik dubbele waardes tegenkom. Het scheelt nogal in programmeerwerk, dus vandaar mijn vraag of ik in het geval van dubbele aliassen:
code:
1
2
3
4
5
6
7
8
| Home
Broeken en Shorts (broeken) **
Lang (lang)
Kort (kort)
Schoenen (schoenen)
Jassen (jassen)
Lang (lang) *
Kort (kort) |
Het CMS heeft een mogelijkheid om pagina's te verplaatsen. Stel nu dat de gebruiker de pagina met * (lange jassen) wil verplaatsen als kind onder ** (broeken). Ik kom dan in de knoei, omdat er al een pagina met alias "lang" onder broeken hangt. Met andere woorden: welke pagina moet er op het scherm komen als iemand de URL www.site.com/broeken/lang opvraagt? De boom ziet er immers zo uit:
code:
1
2
3
4
5
6
7
8
| Home
Broeken en Shorts (broeken) **
Lang (lang)
Kort (kort)
Lang (lang) *
Schoenen (schoenen)
Jassen (jassen)
Kort (kort) |
Dit voorbeeld is eenvoudig, maar het zou net zo goed kunnen dat iemand een pagina (inclusief kinderen van die pagina) verplaatst naar een andere pagina, en dat er 3 niveau's down een dubbele alias zit. Ik zit er nog over te denken hoe ik efficient op dubbele waardes ga controleren (waarschijnlijk door aan elke node in de tree een "level" mee te geven en dan per level te kijken of er al zo'n waarde bestaat), maar vraag me af wat gebruiksvriendelijk is in het geval ik dubbele waardes tegenkom. Het scheelt nogal in programmeerwerk, dus vandaar mijn vraag of ik in het geval van dubbele aliassen:
- de gebruiker moet waarschuwen dat er door de verplaatsing een dubbele alias zal ontstaan en daarom de verplaatsing niet door kan gaan voordat de alias hernoemd is
- zelf de dubbele aliassen moet hernoemen (in dit geval zou ik de * pagina een "lang2" alias ofzo geven)
"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."