Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler.

8
Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler

Transcript of Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler.

Page 1: 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

Page 2: 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 '“')* ')'

Page 3: Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler.

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();

Page 4: Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler.

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);

Page 5: Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler.

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

Page 6: Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler.

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();

Page 7: Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler.

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

Page 8: Compact Survey Language Dokumentation: csl-survey.de/doku.pdf Team: Kasimir Blust, Laura Seidler.

CSL auf der Medianight