Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler.
-
Upload
gunda-laden -
Category
Documents
-
view
113 -
download
1
Transcript of Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler.
Compact Survey Language
Dokumentation:
csl-survey.de/doku.pdf
Team:
Kasimir Blust, Laura Seidler
Die Sprache Syntax so simpel wie möglich Code einfach zu implementieren Schnell und einfach erweiterbar
Umfrage ::= 'CSL:' '“' TEXT '“' '\n' Seite+
TEXT ::= {'a', ... , 'z', 'A', ... , 'Z', 'ä', 'ö', '!', '?'}+
Seite ::= '{' '“' TEXT '“' \n' Bereich+ '\n' Seitenende
Seitenende ::= '“' TEXT '“' '}'
Bereich ::= '>' '-'? (Bereichstyp ':' )? '“' TEXT '“' \n' Frage+
BereichsTyp ::= 'text' | 'date' | 'datetime' | 'url' | 'textarea' |
'select' | 'radio' | 'checkbox'
Frage ::= '-'? (Typ | ListTyp ) '\n'
Typ ::= ( ('text' | 'date' | 'datetime' | 'url' | 'info') ':' )?
'“' TEXT „“
ListenTyp ::= ( 'select' | 'radio' | 'checkbox' ) ':“' TEXT '“(' '“'
TEXT '“' (',' '“' TEXT '“')* ')'
Der Scanner Simpel und schnell Basiert auf regulären Ausdrücken
• Beispiel:$this->patterns['main'] = "(?P<ident>CSL):(?P<content>[a-zA-Z0-9äöüß\s-]*)";
Code einfach zu implementieren Implementierung:require_once “csl/classes/CSLScanner.php“;$Scanner = new CSLScanner();$Scanner->scan($csldata);$Scanner->getdata();
Der Parser Parser besteht aus 4 Ebenen• je nach Ebene mögliche
Funktionen• Beispiel:if($this->data['layer'] == 0) {
if($l['ident'] == "CSL") { ... // Umfragenanfang }
else { ... // Syntaktischer Fehler }}
Implementierung:require_once “csl/classes/CSLParser.php“;$Parser = new CSLParser();$Parser->parse($Scanner->getdata());$Parser->getdata(true);
Der Form Generator Generiert ein HTML-Formular aus den
vom Parser gelieferten Daten• Barrierefreie HTML-Auszeichnung
Design über CSS• default-Designs für User ohne CSS-
Kenntnisse Einfache Einbindung
• Aufruf im PHP-Code durchrequire_once "csl/classes/FormGenerator.php";$FormGenerator = new FormGenerator();$FormGenerator->generateForm($Parser->getdata());
• Kopieren des ausgegebenen HTML-Codes
Statistiken Möglichkeit, die in das Formular eingegeben Daten auswerten zu lassen Darstellungsform abhängig vom Feld-Typ
• Gruppierung für Texteingaben• (Balken-)Diagramme für Auswahlen • Diagramme oder Gruppierung für Zahleneingaben
Aktualisierung mit jeder erneuten Dateneingabe Implementierung:require_once "csl/classes/CSLStatistics.php";$Statistic = new CSLStatistic();$Statistic->CreateAnswer($_POST, true);
//Ausgabe als Statistikecho $Statistic->toStatistic();// Ausgabe als CSV$Statistic->DownloadCSV();// Ausgabe als Datentabelleecho $Statistic->toTable();
Architektur von CSL
Admin ClientAjax
Json Container Scanner$scanner->scan($csldata);
Zwei-dimensionales
Array
Parser$parser->parse($scanner->getdata());
Mehr-dimensionales
Array
FormGenerator$formgenerator->generateForm
($parser->getdata());
Datenbank
User ClientAjax
Json Container Statistik$Statistik->CreateAnswer($_POST);
Mehrdimsensionales A
rray
Statistik-Tabelle$Statistik->toStatistic();
Mehr-dimensionalesArray
Datentabelle$Statistik->toTable();
Mehrdimensionales Array
CSV Datei$Statistik->DownloadCSV();
HTML Formular
reiner CSL Code
Json Container
HTML Code
CSL Umfrage
CSL auf der Medianight