User:Sent~metawiki/Poll (nl)

Poll is als een extensie ontwikkeld voor gebruik in verschillende implementaties van MediaWiki. Dit maakt het mogelijk dat verschillende pagina's een poll kunnen bevatten.

Zie ook RandomPoll voor de uitbreiding om een willekeurige poll op de pagina te krijgen. En kijk naar PollTemplate voor de manier hoe de Poll op gemaakt dient te worden.

Gebruik Poll edit

Poll is een MediaWiki extensie. Om deze te gebruiken moet je de volgende HTML-achtige syntax opnemen in de pagina:

<Poll>
...parameters...
</Poll>

De parameters meegegeven aan de poll, naast de Question, de meerdere Awnsers en Explaination, beginnen allemaal met een # en zijn optioneel. U kan hiervoor kiezen uit de volgende: #ID, #REFOKE, #STYLE, #CLOSED, #RESULT, #BUTTON, [[Poll:Result]] en [[Poll:Refoke]]

Bijvoorbeeld de volgende poll:

 

met resultaat:

 

word als volgd gemaakt:

<Poll>
 #RESULT AVERAGE PERCENT
 #REFOKE OFF
 #ID[[Poll:Balkenende moet direct aftreden]]
 ; Met het oog op de [[Nacht van Balkenende|recentelijke crisis]] binnen het [[kabinet]]...
 Moet [[Jan Peter Balkenende]] per direct aftreden?
 ;; {{SITENAME}} zal deze stemming als [[handtekeninglijst]] versturen, met vermelding van deze [[Poll:Result|uitslag]].
 =(100%) Ja
 -(0%) Nee
 : $1 van de {{total}} gestemde bezoekers is het met de stelling eens.
 #BUTTON Stem!
</Poll>

Question edit

Doel:

Het duidelijk maken aan de bezoeker op welke vraag hij mag antwoorden.

Voorbeeld:

Moet [[Jan Peter Balkenende]] per direct aftreden?

Er mag maar één Question zijn gedefinieerd.

QuestionElaboration edit

Doel:

De vraag verduidelijken of exacter definiëren.

Voorbeeld:

; Met het oog op de recentelijke crisis binnen het kabinet...

Deze parameter word ten opzichte de regel - in de definitie - van Question verwerkt; dus kan er voor en/of er na worden gevonden. Bij de dubbele ; (;;) wordt deze regel niet vermeld in het resultaat, terwijl Explaination dan wel wordt vermeld.

Awnser edit

Doel:

Het bieden van een keuze voor de bezoeker om te maken op de gestelde vraag.

Voorbeeld:

- Ja

Het is ook mogelijk om de vraag te beginnen met -(100%) of een ander percentage. Dan word het percentage alleen gebruikt bij de waardevorming, in combinatie met #RESULT AVERAGE PROCENT. Het werkt ook als -(4) wanneer de optie #RESULT AVERAGE MARK aanwezig is, of als simpele identificatie van de optie (handig wanneer de volgorde van de poll word gewijzigd).

Om een standaard een Awnser te selecteren kan het voorbeeld worden vervangen door = Ja.

Explaination edit

Doel:

Vorm te geven aan het resultaat van de poll.

Voorbeeld:

: $1 is het met de stelling eens.

Note: Word alleen gebruikt in combinatie met de #RESULT AVERAGE-opties. Anders word de standaard resultaat gebruikt. $1 word vervangen door de uitkomst: het gemiddelde.

ID edit

Doel:

Om deze poll te identificeren. In de database word in een tabel bij gehouden welke stemmen zijn uitgebracht. Omdat MediaWiki meerdere polls kan bevatten moeten de resultaten hiervan bij de juiste poll blijven.

Achter de #ID komt de identificerende sleutel geplaatst. Standaard word deze afgeleid van het document waar in de poll is op geslagen. (Hierom kan iedere pagina maar maximaal 1 poll bevatten [zonder ID]!).

Wanneer er een #ID word meegegeven dan word de identificerende sleutel afgeleid van de waarde die hier achter komt te staan.

Voorbeeld van identificatie door een andere pagina:

#ID[[andere pagina]]

Op deze manier kun je ook verwijzen naar de vertaling van de pagina waar deze poll opstaat. Erg handig wanneer je de mening wil hebben over een stelling van mensen in verschillende taalgebieden.

Voorbeeld van identificatie door de werkelijke identificatie sleutel:

#ID:0123456789ABCDEF0123456789ABCDEF

In deze laatste variant word de sleutel vermeld die ook in de tabel word gebruikt om deze poll te identificeren, welke al een volledig afgeleide sleutel is doormiddel van de MD5-functie.

REFOKE edit

Doel:

Bepalen of het toegestaan is om voor de bezoeker om van mening te veranderen.

Voorbeeld:

#REFOKE ON

Standaard staat deze parameter op OFF.

STYLE edit

Doel:

Het mogelijk maken om gebruik te maken van verschillende opmaak definities. Handig voor een MediaWiki die op sommige pagina's een gewone poll kent, maar ook gebruik wil maken van het kunnen waarderen van pagina's (v.b.: Pagina kwaliteit).

Voorbeeld:

#STYLE {{mijn poll opmaak}}

CLOSED edit

Doel:

De mogelijkheid om nog te stemmen ontnemen. M.a.w: de Poll sluiten.

Voorbeeld:

#CLOSED

RESULT edit

Doel:

Het bepalen hoe het resultaat van de poll moet worden bepaald. De Poll kan gedefinieerd zijn zodat het een percentage en een aantal/totaal geeft per antwoord door middel van EACH AWNSER. Of als een in totaal maar 1(!) resultaat: AVERAGE PERCENT en AVERAGE MARK.

Voorbeeld:

#RESULT AVERAGE PERCENT; DOUBLE 4,1

Standaard is het EACH AWNSER.

Voor beide AVERAGE-opties worden de resultaten op volgorde gezet (indien mogelijk). In het bovenstaande voorbeeld word dan afgeweken aan de standaard volgorde van keuze opties: hier krijg je eerst optie 1, en dan pas 0. Om de opmaak volgorde van Ja/Nee vragen te behouden.

De opties EACH AWNSER en AVERAGE PERCENT kunnen ook de variabele ; DOUBLE x,y mee krijgen - om te bepalen tot in welk detail moet worden afgerond. De standaard 4,1 resulteert in bijvoorbeeld '100,0%' en '  7,3%'.

Note: AVERAGE PERCENT werkt alleen wanneer de verzameling die begint met 0% en eindigt met 100%. En alleen bestaat uit Awnsers die de opmaak als bv. 75% hebben.

BUTTON edit

Doel:

Het bepalen wat er op de button vermeld moet worden.

Voorbeeld:

#BUTTON Stem!

Poll:Result edit

Doel:

Het voorzien van de juiste link naar het resultaat van deze poll.

Voorbeeld:

[[Poll:Result|resultaat]]

Poll:Refoke edit

Doel: Het voorzien van de juiste link naar het herstemmen in het resultaat van deze poll.

Voorbeeld:

[[Poll:Refoke|verander je stem]]

Bron code edit

free2xs/Poll.php: User:Sent/Poll/Source

poll.sql

CREATE TABLE `poll` (
  `poll_id` VARCHAR(32) NOT NULL DEFAULT '',
  `poll_user` INT(5) NOT NULL DEFAULT '0',
  `poll_user_text` VARCHAR(255) BINARY NOT NULL DEFAULT '',
  `poll_cur_id` INT(8) unsigned NOT NULL DEFAULT '0',
  `poll_answer` DOUBLE(3,1) NOT NULL DEFAULT '0.0',
  `poll_procent` ENUM('Y','N') NOT NULL DEFAULT 'N',
  `poll_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY  (`poll_id`,`poll_user_text`)
);

Installatie edit

  1. Upload de free2xs/Poll.php naar de extentions.
  2. Voeg de tabel poll toe aan de database van MediaWiki (poll.sql).
  3. Voeg de lijn include("extensions/free2xs/Poll.php"); toe aan het eind van jouw LocalSettings.php.
  4. Voeg de onderstaande Sjablonen toe.

Sjabloon:Poll edit

Wanneer deze niet bestaat in de MediaWiki database, dan word de standaard uit de bron code gebruikt.

<PollTemplate>
  <table border="0" cellSpacing="0" cellPadding="0">
  ;<form name="poll" method="POST">
  <input type="hidden" name="ID" value="{{ID}}"/>
  <tr><td>{{QuestionLines}}</td></tr>
  ;<tr><td>{{Awnsers}}</td></tr>
  ;<tr><td align="right">{{BUTTON}}</td></tr>
  :<tr><td>{{Explaination}}</td></tr>
  :<tr><td>{{REFOKE}}</td></tr>
  ;</form>
  </table>
  ----
  Question=<b>$i</b>
  QuestionElaboration=<i>$i</i>
  QuestionNewLine=<br/>
  Awnser=<input type="radio" name="poll_{{ID}}" value="{{value}}" id="{{label}}"{{checked}}/><label for="{{label}}">$1</label>
  AwnserNewLine=</td></tr><tr><td>
  Checked= CHECKED="true"
  Explaination=<i>$1</>
  REFOKE=Ik heb mij bedacht, ik wil m'n stem [[Poll:Refoke|herzien]].
  BUTTON=<input type="submit" value="$1"/>
</PollTemplate>

Sjabloon:Article Quality Poll edit

Om gebruik te maken van dit object zult u {{Article Quality Poll}} moeten toevoegen aan het artikel, op de plaats waar u de poll wil hebben te staan: meestal boven aan het document.

<PollTemplate>
  <table border="0" cellSpacing="0" cellPadding="0">
  ;<form name="poll" method="POST">
  <input type="hidden" name="ID" value="{{ID}}"/>
  <tr><td colspan="6">{{QuestionLines}}</td></tr>
  ;<tr>
  ;  <td>{{Awnsers}}</td>
  ;  <td align="right">{{BUTTON}}</td>
  ;</tr>
  :<tr><td colspan="5">{{Explaination}}</td><td>{{REFOKE}}</td></tr>
  ;</form>
  </table>
  [[Categorie:Article Quality]]
  ----
  Question=<b>$i</b>
  QuestionElaboration=<i>$i</i>
  QuestionNewLine=<br/>
  Awnser=<input type="radio" name="poll_{{ID}}" value="{{value}}" id="{{label}}"{{checked}}/><label for="{{label}}">$1</label>
  AwnserNewLine=</td><td>
  Checked= CHECKED="true"
  Explaination=<i>$1</>
  REFOKE=[[Poll:Refoke|stem herzien]].
  BUTTON=<input type="submit" value="Stem!"/>
</PollTemplate>
<Poll>
 #REFOKE ON
 #STYLE {{Article Quality Poll}}
 Hoe veel sterren verdiend deze pagina?
 -(0) heel slecht
 -(1) slecht
 =(2) ok
 -(3) goed
 -(4) zeer goed
 : Deze pagina is <b>{{Awnser}}</b>!
 #RESULT AVERAGE MARK
</Poll>


ToDo List edit

  • Ondersteuning voor #STYLE, er mist nog een →StyleOpen()-handler. De interpetatie van de template werkt al wel!
  • Ondersteuning voor #RESULT. Op dit moment word deze parameter genegeerd en is (tijdelijk/momenteel) vervangen door een test of de Explaination bestaat en valide is.
  • Opschonen code van free2xs/Poll.php.
  • Het implementeren van de juiste methode om met de database te communiceren, m.a.w. de manier MediaWiki dit doet.