Dokumentation zum Beizdudler
Einleitung
Beizdudler ist ein kleines einfaches Webprogramm um Umfragen der Art
"in welcher Beiz wollen wir uns treffen" zu machen.
(die Beiz == das Restaurant)
Wobei man jetzt auch nach andern Dingen als nur Beizen fragen kann.
Das Programm ist in PHP geschrieben und verwendet eine MySQL-Datenbank.
Der Benutzer bekommt aber nur HTML-Dateien mit Formularen zu sehen.
Datenbank
Der Anwender braucht sich nicht um den Aufbau der Datenbank zu kümmern.
Für Programmierer ist es aber wichtig die Datenbankstruktur zu kennen.
(Um Programm zu verstehen oder Änderungen am Programm zu machen)
Hier das entsprechende Krähenfussdiagramm.
In den downloadbaren Quellen ist auch noch das entsprechende SQL-Dump enthalten (tabellenstruktur.sql)
Die Funktionen um Datenbankaufrufe zu machen (und andere Kleinigkeiten) sind in unterprogramme.php,
das jeweils mit include in den andern PHP-Dateien eingebunden wird.
Funktionsweise des Programms
Der Startpunkt ist eine HTML-Datei (index.html).
Diese zeigt ein Formular und mit dem Save-Knopf wird dann erstellen.php oder aendern.php (ab Version 0.10) aufgerufen.
In aendern.php erscheinen weitere Formulare um die Beizen auszuwählen,
oder Umfrage-Text nochmals zu ändern. Diese Formulare rufen dann wieder aendern.php auf.
Die Variable $akt entscheidet dann darüber welche Aktion ausgeführt werden soll.
Mit dem Fertigstellen-Knopf wird dann der Link für die Umfrage-Einladung angezeigt,
und damit dann umfrage.php aufgerufen.
Hier wird dann die Methode "GET" verwendet, um die Umfrage-Nummer im Link angezeigt zu bekommen:
z.B. "umfrage.php?id=34" zeigt dann die Umfrage mit der Nummer 34 an.
Sonst wird bei den Formularen immer die Methode "POST" verwendet, somit bleiben die übergebenen
Parameter für den Anwender unsichtbar.
Beim Erstellen der Umfrage kann man die ausgewählten Beizen noch ändern.
Man kommt dann zu beizaendern.php, wo man Änderungen machen kann, oder den Eintrag
auch ganz löschen. Hier kann man sich auch alle Beizen-Einträge der Datenbank
auflisten lassen und gegebenenfalls ändern.
Mit einem Fertig-Knopf kommt man dann wieder zurück zu aendern.php.
Um unabhängig von den Umfragen Änderungen in der Beizen-Datenbank zu machen,
ruft man beizaendern.php ohne Parameter auf.
Zum Ändern von schon fertiggestellten Umfragen kommt man mit dem entsprechenden Knopf
wieder zu aendern.php.
Etwas von der Auswahl entfernen kann man jetzt nicht mehr, um die schon gemachten Antworten
der Teilnehmer nicht durcheinander zu bringen.
Zusätzlich gibt es jetzt noch einen Knopf um die Umfrage abzuschliessen.
Bei geschlossenen Umfragen wird dieser Knopf zu "wiedereröffnen".
Realisiert in der Datenbank ist dies durch einen zusätzlichen Eintrag "status".
Bei geschlossenen Umfragen gibts noch einen Knopf zum die Umfrage löschen.
Dies allerdings ohne Rückfrage und kann danach nicht mehr rückgängig gemacht werden.
Umfragen nach Datum/Zeit
Die verwendeten Datums (und oder Zeiten) werden in der gleichen Tabelle wie die Beizen gespeichert.
Es ist dann beiz_typ==4 und in beiz_datum ist Datum plus Zeit im DATETIME Format gespeichert: "YYYY-MM-DD HH:MM:SS".
In beiz_name kann dann noch die Formatierung gespeichert werden, die dann in der
PHP Funktion Date benutzt wird.
Einschränkungen (in Version 0.12)
Wenn man in einer Umfrage nach einem Datum fragen will, gibt es jetzt einen einfachen Kalender.
Die Notlösung für Datum/Zeit bei der Beizauswahl funktioniert zwar noch, sollte jetzt aber nicht mehr benutzt werden.
Versions-Geschichte
- 0.01 9.4.2011 Erstellung durch Rolf Pfister
- 0.03 14.4.2011 fast alle Grundfunktionen implementiert. Passworte noch im Klartext.
Teilnehmer-Passworte und email noch nicht benutzt.
- 0.04 16.4.2011 Formular zum neuen Eintrag machen in beizaendern.php eingefügt.
- 0.05 18.4.2011 Passworte verdeckt eingeben und nur die md5-Summen speichern. Fehler in aendern.php korrigiert,
so dass man jetzt auch in einer laufenden Umfrage noch eine weitere Beiz einfügen kann.
- 0.06 22.4.2011 email ausgewertet zum Senden von Nachrichten bei Veränderungen der Umfrage.
include("unterprogramme.php") zur Vereinfachung von immer wieder gebrauchten Funktionen.
Wahlmöglichkeiten von ja/nein/vielleicht auf ja/nein/egal geändert.
- 0.07 24.4.2011 Rangierung (Ranking) beim Schliessen der Umfrage. Dazu egalwert in die Datenbank eingefügt.
Farbige Darstellung der Umfrage mittels test.css.
- 0.08 30.4.2011 Texte für ja, nein und egal können jetzt nach Bedarf angepasst werden.
Dazu Tabelle "texte" in die Datenbank eingefügt. Ranking wird jetzt auch schon vor dem
Schliessen der Umfrage angezeigt (sofern mehr als 1 Teilnehmer und mehr als 1 Wahlmöglichkeit).
- 0.09 4.5.2011 Passworte jetzt auch für die einzelnen Teilnehmer.
Unterstützung einer optionalen Kommentar-Spalte.
Optional können jetzt auch die Beschreibungen (beiz_text) zu den Beizen in der Umfrage angezeigt werden.
Dazu Datenbank erweitert um optionen, komentartit und teil_koment.
Beim Berechnen vom Ranking noch Zählung von Anzahl Personen pro Beiz eingefügt.
- 0.10 19.5.2011 Anpassungen für Englisch. Dazu "sprache" in Tabelle "Umfrage" eingefügt. Und zur Vereinfachung
"erstellen.php" wegoptimiert, dafür in "aendern.php" einen Parameter $erstellen eingefügt.
- 0.11 23.5.2011 Einfacher Kalender für Umfragen nach Datum. Weitere Option um bei Datum-Umfragen übergeordnete
Monats-Überschrift zu machen.
- 0.12 28.5.2011 Erweiterung der Tabelle Beiz um beiz_datum zum speichern von Datum/Zeit im DATETIME Format.
- 0.13 19.1.2013 Kleiner Fehler in aendern.php korrigiert: Nicht mehr benötigte Datumeinträge werden jetzt
korrekt gelöscht. (Gab vorher jeweils eine Fehlermeldung beim Löschen der Umfrage)
- 0.13 3.2.2013 Versionsnummer und Update-Datum in index.html angepasst. Nochmals ein kleiner Fehler korrigiert: Anpassung der Antwortmöglichkeiten hatte bei gesetztem Passwort nicht funktioniert.
- 27.2.2017 Anpassung von unterprogramme.php: veraltete mysql_ Aufrufe aktualisiert auf mysqli_ Aufrufe.
Fehler und Anregungen
Bekannte Fehler:
- Validator gibt Fehlermeldung wegen Formular innerhalb einer Tabelle.
Wer weiss wie man dieses Problem beheben könnte, soll mir doch bitte eine email schicken.
- Umsortieren der Spalten geht noch nicht.
Bug-Reports und Anregungen zu weiteren Verbesserungen direkt an mich
(pfister at pci.uzh.ch) richten, oder zur Diskussion von Änderungen
an die Lugs-Mailing-Liste.
Last update: 31-Aug-2017 / Rolf