Hoe werken sjablonen (templates)
Wat zijn sjablonen eigenlijk?
Om te beginnen spreken we vanaf nu over templates, dit is de Engelse benaming maar aangezien je deze benaming ook moet gebruiken is het handiger als we gewoon over templates spreken als we sjablonen bedoelen.
Het zijn voorop vastgelegde structuren waaraan een hele reeks van pagina's zullen voldoen. Je wil bijvoorbeeld een overzicht maken van leuke auto's met een beschrijving van een auto op een pagina. Dan zal je op die pagina voor elke auto ongeveer dezelfde gegevens willen vermelden zoals het merk, de cilinderinhoud, enkele foto's …
Als je nu met een template gaat werken zorgt deze ervoor dat al deze pagina's er hetzelfde gaan uitzien: je doet 1 keer de moeite om een mooie en goede layout te bedenken en dan vul je gewoon als je pagina's zonder aan de layout te moeten denken.
Om een goed voorbeeld te zien kijk eens op http://siliconcity.wikidot.com/template:herocharacter. Hier maakt men een soort van steekkaart voor een herocharacter met al zijn/haar eigenschappen.
Hoe ga je te werk?
Stap 1: Opstellen van de template.
Alvorens je een template gaat opstellen is het handig dat je weet waar je reeds gemaakte templates voor ouw site kan vinden. Ga hiervoor naar de Site Manager (admin:manage) van je site en kies Page templates. Je zal zien dat je een overzicht krijgt van alle categorien en eventueel bijbehorende templates. Als dit je eerste poging is om een template te maken zal er geen lijst met templates getoond worden maar wel volgende boodschap:
Laten we dus beginnen met onze eerste template aan te maken.
Maak een nieuwe pagina aan door gebruik te maken van het formuliertje add new page in het zijmenu. Vul volgende paginanaam in: "template:auto" en klik op de knop new page
Zoals je waarschijnlijk wel weet is het deel voor het dubbele punt een categorienaam en wat volgt is de paginanaam. Je ziet dus dat we een template aanmaken die we auto noemen in de categorie van de templates. Deze template-categorie is een voorbehouden categorie, hierin zitten alle templates.
Je krijgt een blanco pagina. Typ hier om te beginnen volgende begrippen… we kunnen ze achteraf nog aanpassen:
* Merk
* Type
* Uitvoering
* Motorvermogen
Save je pagina
Laten we nog een template aanmaken. Typ opnieuw een paginanaam in het zijmenu, noem het deze keer "template:recepten" . Geef volgende tekst in op deze nieuwe template:
* Receptnaam
* Ingredienten
* Bereidingstijd
* Aantal personen
Als je nu terug via de site manager naar de templates-pagina gaat, zal je twee inputboxen zien:
eentje met categorien en eentje met templates
nog niet vertaald
Now lets go back to Site Manager » Page templates
You will see two boxes.
The left one shows the Categories used in your site.
The right one lists the templates you have made.
If you click on the templates listed, you will see a preview underneath. (note i could only get it to preview one of them. I think there is a bug, but don't worry)
Now go back to your site
Create a new page in the New page box on the side bar.
Have a look in the edit box
you should see a new drop down box
Initial template: |~ no template (default)|
This should display the templates you have created. (note there is also a number of no template (default) listed. Again I think this is a bug.)
Click on the one you wish to use.
Job Done!!
Part two:
Assigning templates to Categories.
You might find it useful to use a particular template for a particular category.
Eg.category | Template |
---|---|
breads | bread template |
meats | meat template |
Cakes | Cake template |
First lets create the templates as we did above.
eg :-
- template:bread template
- template:meat template
Then we create the categories, using the New Page box. More info here. It will be a good idea to have a "base" "start"page, or "Introduction" page to each category.
eg:-
- Breads:basebread
- Meats:basemeat
Adding the create page box
Lets use "breads" as an example.
- create template. Called. template:breads
- create new page called breads:basebread
In the new breadbase page inset the following code
[[module NewPage category="breads"]]
Once you have saved that new page you should have a new "create page" box displayed
creating new pages within it, eg:-
- newpage one
- newpage two
- newpage three
will do two things.
- create a new page and automatically put it in the "breads" category
- present the user with the template required for that category.
Step Three:
The Side Bar
Instead of having a base page with the Create new page module, we can place that module on the Side (nav:side) Bar.
In the default set up, using the New page module, will give you the opportunity to chose which Template you wish to use.
If we create a NEW Side bar, and assign that to say the Base Category, then we can use that to give the required template as the default option.
For example:
Have a look at at the side bar to your left. Right at the top it says "nav:side-en"
This is the actual page name of that particular side bar.
Now have a look : Here
Notice at the top, it says "nav:side-de." This is the German category side bar
Just to hammer it home, have a look here
This is the Spanish version of the side bar
Adding New page to it
In each of these Side bars we could add a Create Page module.
When we enter a page name in it, it will automatically assign that page to that particular category, and if we tell it to, we can make it apply a specific template.
eg: Inserting the following into the a side bar that has been assigned to the category "breads"
[[module NewPage category="breads" size="15" button="new page"]]
Will generate a new page, automatically put it in the "breads category, AND if a template has been assigned to that category, automatically provide you with that template.
EDIT: This does not work as explained.
Your explanation suggests that when one creates a "template:name-one" and a page "name-one:first" the template is automatically used without invoking it. This is not so. And the similar page names between the "template:X" and "X:demo-page" have no relations. Instead one needs to use
[[module NewPage category="ball" template="round-object"]]