De poll-module biedt een mooie manier om interactiviteit toe te voegen aan een website. Bezoekers kunnen hun stem achterlaten en de website-eigenaar/redacteur kan laagdrempelig te weten komen wat men van de website of onderwerp vindt.
Een redacteur kan 1 of meerdere polls op een pagina invoegen; direct via de poll-module of via stijl-instellingen. Elke bezoeker kan 1x stemmen per poll. De poll-module houdt via een cookie en een database bij wie op welke poll gestemd heeft. Na het stemmen worden direct de resultaten getoond en kan de bezoeker niet nog een keer stemmen. (Tenzij de cookie via de browser wordt verwijderd uiteraard.)
Er kan een archief van polls getoond worden. Indien een poll getoond moet worden in het archief kan er niet meer op gestemd worden.
Een poll kan worden ingevoegd door in de poll-module te kiezen voor ''Voeg actieve/default poll in' of door achter een poll op het invoegen-icoontje te klikken. In de tekst komt dan resp. de volgende macro te staan:
De actieve/default poll: In het overzicht van polls kan worden aangegeven welke poll de actieve ofwel default poll is. Aangezien een poll altijd dynamisch wordt ingevoegd kan zo dus eenvoudig de poll (bijv. op de homepage) veranderd worden zonder de website te moeten publiceren.
... [POLL] ...
of een vaste poll: door een specifieke poll in te voegen wordt altijd 'die' poll getoond. Op die manier kunnen dus verschillende polls op de website getoond worden. xxx bevat het id van de poll (een nummer) of het door de redacteur opgegeven label. Een poll mag namelijk ook direct worden ingevoegd door gewoon de macro in te typen. Door een poll een label te geven is dan makkelijk aan te geven welke poll bedoeld wordt.
... [POLL xxx] ...
NB: een poll kan ook buiten het tekstvlak gebruikt worden. Gebruik gewoon [POLL] op de gewenste plek voor de default poll of (voorbeeld!) [POLL <!-- TMPL_VAR NAME="tmplPollLabel" -->] zodat een redacteur het label kan opgeven en zo zelf kan kiezen welke poll getoond wordt.
Bij de instellingen van de poll-module kan worden opgegeven of een poll-archief getoond moet worden. Als dat zo is, dan staat onder elke poll een link naar het archief. De link naar het poll-archief kan ook in de tekst ingevoegd worden via de poll-module. Het poll-archief toont alle polls die ingesteld zijn om te tonen op het archief.
De opbouw van de html van het archief is voor elke poll gelijk aan een poll waarop al gestemd is door een bezoeker. Om toch een afwijkende opmaak mogelijk te maken zijn alle polls in een DIV met het ID pollarchive gezet.
Via de instellingen van de poll-module kan tevens een titel en inleidende tekst voor het archief worden getoond.
Zo goed als alle elementen van een poll kunnen via css opgemaakt worden. In xcms.css staat de volgende basis css:
/* poll */ .poll { /* de div om de complete poll heen */ margin: 0 0 1em 0; width: 200px; border:1px solid black; padding: 4px; } .poll .title { font-weight: bold; } .poll .question { line-height: 1em; margin: .25em 0 1.5em 0; } .poll .question input { /* de radiobutton */ width: auto; padding: 0; margin: 0 0 2px 0; } .poll .question label { /* tekst/antwoord achter radiobutton */ padding: 2px 0 0 4px; margin: 0; cursor: pointer; } .poll .question br { clear: left; } .poll .totalvotes { margin: 0 0 .5em 0; } .poll .answer { margin: 0 0 .5em 0; } .poll .bar div { /* (kleur van) de percentagebalk */ background: green; }
Bovenstaande css zorgt er voor dat de html van een poll (zie hieronder) er standaard al prima uitziet. In je eigen css-bestand kun je daar waar gewenst natuurlijk de nodige aanpassingen aangeven.
HTML van een poll:
... <div class="poll"> <div class="intro">Een website zonder interactiviteit is geen website.</div> <div class="title">Een poll is een mooi voorbeeld van interactiviteit?</div> <div class="question"> <input type="radio" value="0" /><label>Ja</label><br /> <input type="radio" value="1" /><label>Nee</label><br /> <input type="radio" value="2" /><label>Weet niet...</label><br /> </div> <div class="answers"> <div class="totalvotes"><span>0</span> Stemmen</div> <div class="answer">Ja<br /> <div class="bar"><div> </div></div> <div class="votes"><span>0</span> Stemmen | <span>0</span>%</div> </div> <div class="answer">Nee<br /> <div class="bar"><div> </div></div> <div class="votes"><span>0</span> Stemmen | <span>0</span>%</div> </div> <div class="answer">Weet niet...<br /> <div class="bar"><div> </div></div> <div class="votes"><span>0</span> Stemmen | <span>0</span>%</div> </div> </div> <a href="#">Poll archief</a> </div> ...
De poll-module zorgt er altijd voor dat of de div.question zichtbaar is (als er nog niet is gestemd) of de div.answers (als er is gestemd of de poll staat in het archief). Voor de opmaak/css maakt dat op zich niet uit, er hoeft dus niet expliciet rekening mee gehouden te worden.