Filters

Filters zorgen voor de omzetting van de inhoud van de database in presenteerbare HTML code.

De lussen (BOUCLES) zorgen voor de logische indeling van een webpagina. Maar er is ook een esthetisch aspect en daar kunnen de filters aan bijdragen...

In een database opgeslagen gegevens zijn niet anders dan blokken tekst en het kan nuttig zijn die gegevens te manipuleren voor ze op het scherm verschijnen. De filters voeren die taak uit:

-  de meest gebruikte filters (ze worden automatisch opgeroepen) zijn |typo en |propre; de eerste doet typografische correcties met als hoofdtaak spaties in te voegen waar dat moet (vgl. de online hulp van SPIP); de tweede houdt zich vooral bezig met paragrafen en de shortcuts van SPIP (cursief, vet gedrukt, tussentitels, enz.) - hij wordt op lange teksten toegepast, zoals (#TEXTE, #CHAPO, enz.).

-  andere nuttige filters: we vermelden er een paar, zoals |majuscules (zet alle tekst in hoofdletters), |justifier of |aligner_droite (twee filters die het uitlijnen van de tekst regelen), of |saison (die « zomer » weergeeft wanneer de variabele een datum is tussen 21 juni en 20 september)...

Om een filter toe te kunnen passen moet de variabele tussen rechte en ronde haakjes zijn geplaatst: [bla bla (#VARIABELE|filter) blo blo]. Hierover later meer!

Meerdere filters kunnen achter elkaar worden opgegeven (steeds vooraf gegaan door een vertikale lijn): zo geeft [(#DATE|saison|majuscules)] als resultaat «WINTER».

Een oefening waarin al het voorafgaande wordt gebruikt: Geef in hoofdletters de titels van de 10 meest recente artikelen weer uit een rubriek die via de context wordt doorgegeven en zet bovenaan de bladzijde het huidige seizoen (dat wil zeggen: het seizoen waarin het meest recente artikel van de gehele site werd gepubliceerd).

...

Waarom al die haakjes? Stel dat je database bestaat uit artikelen mét en zonder datem. De variabele #DATE geeft «2001-07-01 10-53-01» (datum in mySQL-formaat) in het eerste geval en «0000-00-00 00-00-00» in het tweede. Om de datum netjes in een (?) kader te krijgen, moeten we in het skelet de volgende regels opnemen:

[<table border="1"><tr><td>
(#DATE|affdate)
</td></tr></table>]

We zien hier een volgend filter |affdate dat de datum in letters weergeeft (in het formaat « 1 juli 2001 »), maar een lege tekenreeks retourneert wanneer de datum niet wordt herkend (gelijk aan «0000...»). Het gebied dat tussen de rechte haakjes staat moet worden weergegeven wanneer het gebied tussen de ronde haakjes niet leeg is.

Het resultaat is dus dat alleen bij gedateerde artikelen een kader met daarin de datum wordt weergegeven. Een goed gedefinieerd skelet kan zo probleemloos met verschillende situaties omgaan... En de filters dragen daar hun steentje aan bij!

Bepaalde presentatiefilters kunnen ook worden vervangen door stylesheets. Zo komt het filter |majuscules overeen met het CSS attribuut «text-transform: uppercase», en |justifier met «text-align: justify».

Lees De stylesheets van SPIP voor meer details over de CSS stylesheets in SPIP.

Auteur Hanjo Gepubliceerd op: Aangepast: 21/03/23

Vertalingen: عربي, català, corsu, Deutsch, English, Español, français, italiano, Nederlands, Português, русский, slovenčina, Türkçe, українська