Formulieren

SPIP laat een uitgebreide interactie met bezoekers van de site toe. Daarvoor staat op de publieke site een aantal formulieren ter beschikking, ofwel om toegang te krijgen tot het privé gedeelte, ofwel te reageren en berichten te sturen of petities te ondertekenen.

Een formulier wordt door een simpel baken ingevoegd en SPIP zorgt voor de (soms complexe) opbouw en context.

Interactieve functies

-  #FORMULAIRE_RECHERCHE

Dit is het formulier om de zoekmachine van SPIP aan te sturen. Je leest erover in het artikel over zoeklussen.

-  #FORMULAIRE_FORUM

Dit formulier bestuurt de interface die het plaatsen van berichten in de publieke forums toelaat. Het betreft dus in eerste instantie de lus FORUMS, maar het kan worden gebruikt in elke lus die een forum kunnen bevatten (afhankelijk van de configuratie van de site):

Het formulier houdt natuurlijk rekening met de instellingen voor het beheer van het forum.

Je kunt ook een retouradres meegeven, het adres waar naar de bezoeker moet worden gestuurd nadat hij zijn bericht heeft gepost. Bijvoorbeeld: <a href="spip.php?page=forum&(#PARAMETRES_FORUM{#SELF})">Reageer op dit artikel</a> zal de bezoeker terugbrengen naar de bladzijde vanwaar hij de reactie begon (lees: #SELF).

Maar je kunt hem ook naar een andere pagina sturen, zoals:

  • [(#FORMULAIRE_FORUM{'spip.php?page=merci'})]

In het specifieke geval dat trefwoorden in het forum zijn toegelaten, kun je het gedrag van het formulier aanpassen met variabelen voor personalisatie.

-  #FORMULAIRE_SIGNATURE

Dit formulier laat bezoekers toe een aan een artikel gekoppelde petitie te ondertekenen. Het baken wordt dus binnen een ARTICLES lus geplaatst.

Omdat dit formulier een email validatie oproept, zal je hosting provider het verzenden van PHP emails moeten toelaten.

-  #FORMULAIRE_SITE

Het genereert en toont een formulier waarmee bezoekers een website kunnen voorstellen. Deze sites verschijnen met een status «voorgesteld» in het privé gedeelte in afwachting van validatie door een beheerder.

Dit formulier verschijnt uitsluitend wanneer de optie «Een adresboek van websites aanmaken» in de Configuratie van de site in het privé gedeelte is geselecteerd en daarbij de vraag «Wie kan referentiesites voorstellen» is ingesteld op «bezoekers van de publieke site».

Gerefereerde sites zijn in SPIP gekoppeld aan een rubriek; Daarom kan #FORMULAIRE_SITE uitsluitend binnen een lus RUBRIQUES worden geplaatst.

-  #FORMULAIRE_ECRIRE_AUTEUR

Dit baken toont, geplaatst binnen een lus AUTEURS, een formulier waarmee direct een email naar een auteur kan worden gestuurd. Op deze manier hoeft een auteur zijn emailadres niet op de site kenbaar te maken.

Maar het mag ook binnen een lus ARTICLES worden geplaatst, waarbij de mail naar alle auteurs van dat artikel wordt gestuurd.

Het mag ook binnen een lus FORUMS worden geplaatst en laat toe een mail direct naar de auteur van een forumbericht te sturen, mits het om een op de site geregistreerde auteur gaat.

Inschrijving, authentificatie...

-  #FORMULAIRE_INSCRIPTION

Met dit baken wordt het formulier getoond waarmee nieuwe redacteurs zich op een site kunnen inschrijven. Deze optie moet wel in de configuratie van de site zijn geactiveerd (anders toont het baken niets).

Omdat dit formulier een email validatie oproept, zal je hosting provider het verzenden van PHP emails moeten toelaten.

-  [(#FORMULAIRE_INSCRIPTION{6forum})]

Is gelijk aan het vorige formulier voor inschrijving van bezoekers, opgeroepen om in een forum te kunnen reageren (een forum wat aan geregistreerde bezoekers is voorbehouden). De parameter «6forum» correspondeert met de gewenste status van de auteur.

Na validatie ontvangt de bezoeker een bericht: "Je nieuwe identificatie zal je per email worden toegezonden."

-  #LOGIN_PRIVE

Dit baken geeft het toegangsformulier voor het privé gedeelte weer.

Let op: Dit baken moet beslist in het skelet van de pagina spip.php?page=login, dus het skelet login.html zijn opgenomen. Wanneer je direct de URL van je site met het adres «/ecrire» benadert, zul je automatisch naar spip.php?page=login worden doorgestuurd.


-  #LOGIN_PUBLIC

Dit baken kan worden gebruikt om je op de publieke site aan te melden (zonder naar het privé gedeelte te worden geleid). Het baken is bedoeld voor het gebruik van forums waaraan alleen kan worden bijgedragen als je bent aangemeld. Ook kan het gebruikt worden wanneer bepaalde delen van de site authenticatie vereisen, maar deze techniek is nog in ontwikkeling.

Het baken is van zichzelf een lus, dus de gebruiker verlaat de pagina niet. Toch kan naar een "retourpagina" doorverwezen worden:

[(#LOGIN_PUBLIC|spip.php?page=depagina)]

Ook is een andere schrijfwijze mogelijk (en de enig mogelijke bij SPIP 2) om de URL als parameter door te geven en niet via een filter. Dit geeft:

 [(#LOGIN_PUBLIC{#URL_PAGE{depagina}})]

Wanneer je site een automatische registratie tot het privé gedeelte biedt, zijn de verbindingsgegevens voor de publieke site identiek aan die voor het privé gedeelte; dat wil zeggen de gegevens waarmee de gebruiker zich identificeert in de publieke site geven hem ook toegang tot het privé gedeelte. Heb je geen automatische registratie voor het privé gedeelte, wat essentieel is zodra je één artikel met een forum waarvoor aanmelding verplicht is, dan zal SPIP de login-gegevens voor de publieke site leveren zonder dat dit toegang tot het privé gedeelte mogelijk maakt.

-  #URL_LOGOUT is de tegenhanger van #LOGIN_PUBLIC En geeft een URL waarmee de gebruiker zich kan afmelden.
Denk eraan dat #URL_LOGOUT een dynamisch baken is, het stuurt altijd iets terug waardoor het conditionele deel van de lus (De syntax van de bakens van SPIP) altijd wordt weergegeven. Dus een schrijfwijze van het type [<a href="(#URL_LOGOUT)">Afmelden</a>] resulteert in een HTML code <a href="">Afmelden</a> wanneer de bezoeker niet is aangesloten. Van een conditionele weergave zie je hieronder een voorbeeld.

Je kunt een parameter voor een retouradres meegeven. Bijvoorbeeld [(#URL_LOGOUT{spip.php?page=sommaire})] stuurt door naar de beginpagina van de site.

Hieronder een eenvoudig, maar compleet gebruik van de twee bakens. Je moet een stukje PHP gebruiken om de waarde van de variabele $auteur_session te testen die aangeeft of de auteur is aangemeld. Als dat zo is, dan kun je er allerlei gegevens mee testen, zoals status, login, enz. door middel van $auteur_session['statut']....

Je moet wel alle skeletten beveiligen met $auteur_session, anders kan iedereen alsnog de inhoud bekijken.

<?php if ($auteur_session) { ?>

Je bent aangemeld, <a href='#URL_LOGOUT'>klik hier om je af te melden</a>

... beschermde inhoud....

<?php } else { ?>

<h2>Voor dit deel moet je je aanmelden</h2>
#LOGIN_PUBLIC

<?php } ?>

Maar tegenwoordig hoeft geen PHP meer in het skelet worden opgenomen. We kunnen schrijven:

[(#LOGIN_PUBLIC|non)
  [<a href="(#SESSION|oui)
    #URL_LOGOUT">Afmelden</a>
  ]
]

om naar keuze het aanmeldformulier wilt aan te bieden of de afmeld-link, afhankelijk van de situatie (niet of wel aangemeld) van de bezoeker.

In [SPIP 3.0] kun je in je skelet opnemen:

[(#SESSION{id_auteur}|non) #LOGIN_PUBLIC]
[(#SESSION{id_auteur}|oui)<a href="#URL_LOGOUT">Afmelden</a>]

Styling

Je kunt de grafische weergave van formulieren aanpassen met stylesheets. Zie: «Vind je mijn formulieren niet mooi!».

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

Vertalingen: عربي, català, Deutsch, English, Español, français, italiano, Nederlands