H K Sze Cs P Szo V
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

Bejelentkezhet FaceBook és Google fiókjával is.

   
Útvonal: TEMAKOROK

Két féle rendszerü API felület lett kialakítva. Ezek segitségével lehet meglévő szavazás adatait lekérdezni, szavazások eredményeit lekérdezni és szavazatokat beküldeni. Szavazat beküldésnél a kliens programnak kell arról gondoskodnia, hogy egy ember csak egszer szavazhasson..

Javascript (JQuery) API

REST ajánlás szerinti API

REST ajánlás szerinti API

 

Szavazás adatainak lekérdezése

URL:  http://li-de.tk/api/poll/'szám'     ahol 'szám' a szavazás li-de rendszer beli azonosító száma

Válasz adat:

{
    "id": "szám a szavazás belső azonosító száma",
    "temakor_id": "szám a témakör belső azonosító száma",
    "megnevezes": "A szavazás megnevezése(a kérdés)",
    "leiras": "Részletesebb leírás (html)",
    "titkos": "szám 0:nem 1:igen",
    "szavazok": "kik szavazhatnak? 1: mindenki, 2: csak a témakör tagok",
    "alternativajavaslok": "Ki javasolhat új alternativát? 1:mindenki, 2:tagok, 10:csak adminok",
    "vita1_vege": "éééé-hh-nn első vita szakasz vége",
    "vita2_vege": "éééé-hh-nn második vita szakasz vége",
    "szavazas_vege": "éééé-hh-nn szavazás vége",
    "vita1": "Ha az első vita szakaszban van akkor 1 egyébként 0",
    "vita2": "Ha a második vita szakaszban van akkor 1 egyébként 0",
    "szavazas": "Ha a szavazás folyamatban van akkor 1 egyébként 0",
    "lezart": "Ha a szavazás lezárult akkor 1 egyébként 0",
    "letrehozo": "szám A szavazást inditó user azonosító száma",
    "letrehozva": "éééé-hh-nn a szavazás felvitelének dátuma",
    "cimkek": "kulcsszavak listája",
    "alternatives": [
        {
            "id": "szám alternativa belső azonosító",
            "temakor_id": "szám témakör belső azonosító",
            "szavazas_id": "szám  szavazás belső azonosító",
            "megnevezes": "alternativa szövege",
            "leiras": "alternativa hosszabb leírása",
            "letrehozo": "szám alternatíva létrehozó user azonosítója",
            "letrehozva": "éééé-hh-nn alternatíva felvitelének dátuma"
        }, ...
    ],
    "api_status": "OK"
}      

Szavazás eredményének lekérdezése

URL: http://li-de.tk/api/poll/'szám'/result    ahol 'szám' a szavazás li-de rendszer beli azonosító száma

Válasz adat:

{
    "result": [
        {
            "alt_i": "Alternatíva szövege",
            "avg": "szám átlag pozició",
            "accepted": "szám ennyien sorolták a lehetséges poziciók közül a felső 2/3-ba",
            "condorcet_value": "szám condorcet-shulcze érték",
        }, ...
    ],
    "voters": "szám ennyien szavaztak",
    "api_status": "OK"
}   

"Primitiv" szavazat beküldése


URL: http://li-de.tk/api/poll/'szám'     POST alt_id=alternativa_azonosító

 Válasz adat: {"api_status":"OK"}

 

Javascrip (JQuery) API

 

Az API segítségével szavazások adatait, eredményét lehet lekérdezni és szavazatokat lehet a rendszervbe beküldeni. Az API -val csak a "Nyilvános" (mindenki által látható) témakörökben lévő szavazások kezelhetőek.

Az API segitségével csak azokba a szavazásokba lehet szavazást beküldeni ahol "mindenki szavazhat".

Az API AJAX hivással érhető el, legcélszerübben JQuery framework segitségével kezelhető.

A hívás bemenő paramétere egy string, ami JSON formában egy adat struktúrát tartalmaz.Ez az adatstruktúra minden esetben tartalmaz egy "task" propertyt, ez határozza meg a kért funkciót, az adatstruktúra további elemei a "task" tartalmától függően változóak.

A hívás eredmény egy string, ami JSON kodolt formában egy adat struktúrát tartalmaz. A válasz struktúra mindig tartalmaz egy "api_status" propertyt, ennek tartalma "OK" ha a kérést sikerült végrehajtani, más esetben egy szöveges hibaüzenet. A válasz struktúra további elemei a "task" tartalma szerint eltérőek. Character kodolás UTF-8.

URL: http://li-de.tk/lideapi.php

 

Szavazás adatainak lekérdezése

Bemenő adat:  {"task":"getPoll", "poll_id":szám}

Válasz adat:

{
    "id": "szám a szavazás belső azonosító száma",
    "temakor_id": "szám a témakör belső azonosító száma",
    "megnevezes": "A szavazás megnevezése(a kérdés)",
    "leiras": "Részletesebb leírás (html)",
    "titkos": "szám 0:nem 1:igen",
    "szavazok": "kik szavazhatnak? 1: mindenki, 2: csak a témakör tagok",
    "alternativajavaslok": "Ki javasolhat új alternativát? 1:mindenki, 2:tagok, 10:csak adminok",
    "vita1_vege": "éééé-hh-nn első vita szakasz vége",
    "vita2_vege": "éééé-hh-nn második vita szakasz vége",
    "szavazas_vege": "éééé-hh-nn szavazás vége",
    "vita1": "Ha az első vita szakaszban van akkor 1 egyébként 0",
    "vita2": "Ha a második vita szakaszban van akkor 1 egyébként 0",
    "szavazas": "Ha a szavazás folyamatban van akkor 1 egyébként 0",
    "lezart": "Ha a szavazás lezárult akkor 1 egyébként 0",
    "letrehozo": "szám A szavazást inditó user azonosító száma",
    "letrehozva": "éééé-hh-nn a szavazás felvitelének dátuma",
    "cimkek": "kulcsszavak listája",
    "alternatives": [
        {
            "id": "szám alternativa belső azonosító",
            "temakor_id": "szám témakör belső azonosító",
            "szavazas_id": "szám  szavazás belső azonosító",
            "megnevezes": "alternativa szövege",
            "leiras": "alternativa hosszabb leírása",
            "letrehozo": "szám alternatíva létrehozó user azonosítója",
            "letrehozva": "éééé-hh-nn alternatíva felvitelének dátuma"
        }, ...
    ],
    "api_status": "OK"
}      

Szavazás (rész)eredményének lekérdezése

Bemenő adat:  {"task":"getResult", "poll_id":szám}

Válasz adat:

{
    "result": [
        {
            "alt_i": "Alternatíva szövege",
            "avg": "szám átlag pozició",
            "accepted": "szám ennyien sorolták a lehetséges poziciók közül a felső 2/3-ba",
            "condorcet_value": "szám condorcet-shulcze érték",
        }, ...
    ],
    "voters": "szám ennyien szavaztak",
    "api_status": "OK"
}      

Primitiv eredmény lekérdezés

Ezzel a hagyományos (nem preferenciális) szavazások eredményéhez hasonlóan kérhetjük le a szavazás eredményét. Azaz azt kapjuk meg, hogy az egyes alternativákat hányan sorolták az első helyre, a további pozició besorolásoknak itt nem kapunk információt.

Bemenő adat:  {"task":"getSimpleResult", "poll_id":szám}

Válasz adat:

{
    "api_status": "OK",
    "result": [
        {
            "alternativa_id": "szám alternatíva belső azonosítója",
            "megnevezes": "alternatíva szövege",
            "darab": "szám ennyien sorolták az első pozicióba"
        }, ...
    ],
    "voters": "szám  ennyien szavaztak"
}  

 

Szavazat beküldése

Szavazatot csak az olyan szavazásokhoz lehet beküldeni amelyek:

  • szavazás állapotban vannak
  • mindenki számára láthatóak
  • mindenki szavazhat bennük

A kliensnek kell a szavazókhoz egy egyedi azonosító számot rendelnie.

FIGYELEM! A kliens feladata annak biztosítása, hogy egy ember csak egszer szavazhat!

position >= 1

Bemenő adat: {"task":"setVoks","poll_id":"szám","voter_id":"szám szavazó azonosító","voks":[{"alt_id":"szám", "position":"szám"},...]}

Válasz adat: {"api_status":"OK"}

Primitiv szavazat beküldés

Ezzel a hívással hagyományos (nem preferenciális) szavazatot lehet beküldeni. Ilyenkor a szavazó csak egy neki tetsző alternativát jelölhet meg.

Szavazatot csak az olyan szavazásokhoz lehet beküldeni amelyek:

  • szavazás állapotban vannak
  • mindenki számára láthatóak
  • mindenki szavazhat bennük

A kliensnek kell a szavazókhoz egy egyedi azonosító számot rendelnie.

FIGYELEM! A kliens feladata annak biztosítása, hogy egy ember csak egszer szavazhat!

Bemenő adat: {"task":"setSimpleVoks","poll_id":"szám","alt_id":"szám","voter_id":"szám"}

Válasz adat: {"api_status":"OK"}

 

H a hívás AJAX kommunikációs hibával szakad meg akkor az AJAX error eljárás aktivizálódik. Ha a kommunikáció sikeres, de a lide api kiszolgáló utasítja vissza a kérést akkor az AJAX success eljárás aktivizálódik

{"api_status":"error hibaszöveg"}

adattal.

 

Példa kliens program:

A példa nem tartalmazza annak biztosítását, hogy egy ember csak egszer szavazhat!

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu-hu" lang="hu-hu" dir="ltr">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<h2>li-de API teszt program</h2>
<form name="form1">
<div>
  <label>sended data:</label>
  {<input type="text" name="iData" id="iData" size="128" value="" />}
  <br />
  <button name="btnSend" id="btnSend" type="button">Send</button>
  <br />Result:<br />
  <textarea name="oData" id="oData" cols="80" rows="20" readonly="readonly"></textarea>
</div>
<div
<h2>Legend</h2>
<pre><code>
  accepted inputs:
  {"task":"login", "usr":"szám", "psw":"str"}
  {"task":"logout"}  
  {"task":"getPoll","poll_id":"szám"}
  ("task":"getSimpleResult","poll_id":"szám")
  {"task":"setSimpleVoks","poll_id":"szám","alt_id":"szám","voter_id":"szám"}
  ("task":"getResult","poll_id":"szám")
  {"task":"setVoks","poll_id":"szám","voter_id":"szám","voks":[{"alt_id":"szám", "position":"szám"},...]}
</code>
</pre>
</div>

</form>


<script type="text/javascript">
$( document ).ready(function() {
   $('#iData').val('"task":"getPoll", "poll_id":120');
   $('#btnSend').click(
     function() {
        jQuery.support.cors = true;
        var params = {url: "http://li-de.tk/lideapi.php", tiemout:30000, datatype:"txt"};
        params.data = "{"+ document.forms.form1.iData.value +"}";
        params.success = function(data, txtStatus) {
          // process data (data is string. It is a JSON encoded object)
          $('#oData').val(data);
        };
        params.error = function(jqXHR, textStatus, ex) {
          // process ajax comunication' error event
          $('#oData').val("error "+textStatus);
        };
        $.ajax(params);
     } // btn Click function
   )
   
}); // document.ready function

</script>
</body>
</html>

 

 

Ajánlott oldalak

A szerkesztők ajánlata

Szellemi termelési mód

Kapitány Ágnes és Gábor könyve egy lehetséges új termelési mód körvonalait vázolja.

Megnézem

Internet filozófia

A 'blogoló' a tulajdonképpeni, a teljes jogú, a teljes fegyverzetében előttünk álló hálópolgár, a kiberkultúra eminens létrehozója.

Megnézem

Információs társadalom

Wikipedia szó cikk.

Megnézem

Katedrális és bazár

A "szabadszoftver" világ alapműve.

Megnézem

Szelid pénz

Egy alternatív pénzrendszer....

Megnézem

Likvid demokrácia

A napjainkra már teljesen kiüresedett, funkcióját vesztett képviseleti demokrácia egy lehetséges utóda.

Megnézem

Feltétel nélküli alapjövedelem

Ezt akár holnap megcsinálhatnánk....

Megnézem

*