Htmlearn

© 1999 - 2001 by Stefan Heimers

[ Homepage | Einführung | Installation | Einrichtung von Fragebögen | Weitere Möglichkeiten ]

Einführung

htmlearn ist ein Programm, welches Multiple-Choice Formulare für das WWW erzeugen kann und dann die Antworten des Benutzers automatisch auswertet und Hinweise zu den gemachten Fehlern liefert.

Installation des Programms

tar -zxvf htmlearn.tgz
der das Verzeichnis htmlearn mit den Quelldateien darin erzeugt. Wechsle in dieses Verzeichnis:
cd htmlearn
Das Makefile in einem Editor öffnen und die Pfade für das html- und das cgi-bin Verzeichnis anpassen. Danach mit
make install
das Programm installieren.

Im Quellcodeverzeichnis liegen nach der Kompilierung die Programme htmlearn.cgi und auswert.cgi. Diese müssen in ein Verzeichnis kopiert werden, in dem vom Webserver CGI-Programme freigegeben sind.

Einrichtung von Fragebögen

Die Fragebogen werden nicht direkt als HTML-Formular geschrieben. Damit htmlearn die Antworten richtig auswerten kann, muss es selbst das Formular erzeugen, mit richtiger Numerierung der Fragen und gegebenen Optionen. Die Fragedateien werden normalerweise ins gleiche Verzeichnis wie die beiden CGI-Programme (htmlearn.cgi und auswert.cgi) gelegt.

Hier ist ein Beispiel für die Fragedatei, die vom Autor geschrieben werden muss:

<title>Multiple-choice Fragen 
<css>http://www.kosta.ch/~stefan/htmlearn.css
<file>/home/stefanh/public_html/cgi-bin/fragen.dat
<note>
<qmul>Kreuze alle richtigen Antworten an!
<ar>3*3=9
<af>3+3=8
<ar>2 hoch 4 ist 16
<qex>"T&uuml;re" heisst auf Franz&ouml;sisch:
<af>chien
<af>marteau
<ar>porte
<af>journal
<end>
Jede Zeile beginnt mit einem Steuerbefehl zwischen "<" und ">". Nach dem Steuerbefehl folgt Text oder eine Zahl. Der Text nach dem Steuerbefehl darf keinen Zeilenumbruch enthalten, auf der nächsten Zeile folgt immer ein neuer Befehl.

<title> ist die Überschrift, welche oben am Fragebogen angezeigt wird. <css> ist freiwillig und gibt ein Stylesheet an, welches die Darstellund des Fragebogens und der Auswertung beeinflusst. <css> muss vor <file> eingetragen werden. <file> ist der Dateiname und der vollständige Pfad zur Fragedatei, also genau dieser Datei, in der diese Befehle stehen. <file> muss angegeben werden, sonst findet das Auswertungsprogramm die richtigen Antworten nicht. Der Befehl <note> veranlasst das Auswertungsprogramm, eine note zwischen 1 (sehr schlecht) und 6 (sehr gut) zu Berechnen und anzuzeigen. Weiter unten kommen die Fragen: <qmul> stellt eine Frage, zu der es mehrere richtige Antworten gibt, <qex> eine Frage, zu der es nur eine richtige Antwort gibt. Nach der Frage kommen richtige Antworten mit <ar> und falsche Antworten mit <af>

Die oben angegebenen Beispielfragen werden zum Beispiel in die Datei demo.dat geschrieben und unter dem Verzeichnis /home/stefanh/public_html/cgi-bin/ abgelegt. Der Benutzer muss jetzt folgende URL in seinem Webbrowser angeben, um das Frageformular zu erhalten:

http://www.kosta.ch/~stefanh/cgi-bin/htmlearn.cgi?lesson=demo.dat
Auf den meisten Systemen laufen die CGI-Programme im entsprechenden CGI Verzeichnis. Falls dies nicht der Fall ist (z.B. beim boa Webserver unter Debian GNU/Linux) muss der ganze Pfad zur Fragedatei angegeben werden:
http://www.kosta.ch/~stefanh/cgi-bin/htmlearn.cgi?lesson=/home/stefanh/public_html/cgi-bin/demo.dat

Für andere Fragebögen muss jetzt einfach demo.dat durch den entsprechenden Dateinamen ersetzt werden.

Das sieht dann etwa so aus:

Multiple-choice Fragen

Frage Nr.1

Kreuze alle richtigen Antworten an!

    3*3=9
    3+3=8
    2 hoch 4 ist 16

Frage Nr.2

"Türe" heisst auf Französisch:

    chien
    marteau
    porte
    journal

Für fortgeschrittene gibt es noch listen, bei denen mehrere Fragen verschiedenen Optionen zugeordnet werden müssen:

<qmat>Was meinst Du zu folgenden Aussagen?
<mh>ja
<mh>nein
<mel>Boltzmann war ein Physiker
<res>1
<mel>Sein Vorname war Stefan
<res>2
<mel>Diese Fragen sind langweilig
<res>1
Die Zahl nach <res> gibt an, die wievielte Option <mh> zur vorherigen Frage zutrifft. Das sieht dann so aus:

Frage Nr.3

Was meinst Du zu folgenden Aussagen?

janein
Boltzmann war ein Physiker
Sein Vorname war Stefan
Diese Fragen sind langweilig

Zusätzliche Steuerbefehle für die Fragebögen

Weitere Möglichkeiten

Statische Formulare

Seiten, die wie oben beschrieben erzeugt werden haben zwei Nachteile:

  1. Das Formular mit den Fragen muss bei jedem Zugriff erneut von einem Programm erstellt werden, was den Server belastet.
  2. Webseiten, die von CGI-Programmen erstellt sind, werden von Proxies nicht zwischengespeichert, was mehr Datentransfervolumen mit sich bringt.

Deshalb bietet htmlearn.cgi die Möglichkeit, aus den *.dat statische html-Seiten zu erstellen:

 htmlearn.cgi demo.dat > demo.html

Im erzeugten html-Code muss jetzt nur noch der richtige Pfad zu den CGI-Programmen angepasst werden.

Htmlearn in mehreren Sprachen

Htmlearn ist vorläufig auf engisch und deutsch erhältlich. Die Sprache wird vor der Kompilation automatisch aus der Umgebungsvariablen $LANG gewählt. Sie kann aber auch von Hand gesetzt werden.

make deutsch

erzeugt eine deutsche Version von htmlearn.

make english

erzeugt eine englische Version von htmlearn.

Die Übersetzungen befinden sich in den Dateien english.h und deutsch.h. Diese werden jeweils von make nach language.h kopiert und als solches dann in die Quellen eingebunden.

Um htmlearn in eine neue Sprache zu übersetzen muss deutsch.h in eine neue Datei kopiert werden (z.B.

cp deutsch.h franzoesisch.h
). Diese kann man mit einem Editor öffnen und übersetzen. Nacher muss die neue Datei nach language.h kopiert oder gelinkt werden.

Vorsicht! Es wird davon abgeraten, language.h zu editieren. Durch eine Fehlmanipulation von make kann language.h leicht überschrieben werden wodurch Änderungen verloren gehen. Also immer mit der Datei mit dem Namen der Sprache arbeiten!


powered by htmlearn