#!/bin/sh
export DATE="14.8.2007";SCRIPT=${0#/rom}
export TITLE="Verwaltung:
Publizieren"
. ${SCRIPT%/*}/cgi-bin-pre.sh
cat< Mit
dem Mikro-Autorensystem dieser Firmware ist es recht einfach, die
Webseiten dieses Gerätes zu ändern oder neue hinzuzufügen.
Für das Betriebssystem Windows müssen zwei Programme installiert
werden: Die Skriptsprache Perl und ein
Archivprogramm zum Erzeugen von TAR-Archiven (z.B.
UltimateZip). Mit einem
Standard-Linux sind diese Programme bereits installiert. Ein Perl-Skript
(template.pl) liest eine HTML-Datei (template.html) als Vorlage ein und
sucht die Zeichenkette "%BODY%". Danach liest das Perl-Skript
nacheinander alle anderen HTML-Dateien im Verzeichnis ein und extrahiert
den Teil zwischen <BODY> und </BODY>. Der extrahierte
HTML-Teil wird in das Template an die Stelle %BODY% eingefügt und das
Ergebnis in ein neues Verzeichnis (./out-de/) geschrieben. Referenzierte Dateien (z.B.
Bilder) kopiert das Perl-Skript ebenfalls in das neue Verzeichnis. Die
Zeichenkette "$(echo -n %)DATE%" wird durch den Datumsstempel
der Quelldatei ersetzt. Die Zeichenkette "$(echo -n %)TITLE%"
wird durch die erste H1-Überschrift der Quelldatei ersetzt. Beginnt
der Dateiname der Quelldatei mit "cgi-bin", werden
Shell-Kommandos für die Ausführung durch den Webserver
eingesetzt. Eigene Shell-Kommandos kann man zwischen <SCRIPT LANGUAGE="shell"></SCRIPT>
in die Quelldatei schreiben. Bei der Ausführung durch den Web-Server
werden Shell-Variablen aufgelöst. Beispiele: "\$PWD" wird
als $PWD ausgegeben, "\$(ls /tmp)" listet den Inhalt des
Verzeichnisses /tmp.
Das
Ausgabeverzeichnis (./out-de/) kann mit allen Unterverzeichnissen in ein
TAR-, TGZ- oder TAR.GZ-Archiv gepackt werden. Die Archiv-Datei kann danach
über diese Verwaltungs-Seite übertragen werden. Vorhandene
Seiten (z.B. die Verwaltungs-Seiten) werden durch diesen Vorgang nicht gelöscht. Hinweis
für Windows-Benutzer: Sind die Programme "tar" und "perl"
installiert, können die Linux-Befehle in der
Windows-Eingabeaufforderung eingegeben werden. Ersetze das Zeichen "/"
durch den Backslash ("\"). Das Perl-Script kann auch per
Doppelklick auf den Dateinamen "template.pl" gestartet werden. Schreibe gültiges
HTML und beende offene <Tags> mit </Tags>. Verwende dazu am
besten einen validierenden HTML-Editor oder einen Text-Editor und etwas
Disziplin. Füge einen Verweis auf
eine neue Seite zur Datei template.html hinzu. Kopiere eine der
vorhandenen Tabellenzeilen (z.B. <TR>... Status ...</TR>) und ändere
das Tag <A HREF=""> und den Text. Möglicherweise muss
die linke Navigations-Spalte breiter werden. Suche und ändere WIDTH="150"
auf die gewünschte Breite. Ein
neues Unterverzeichnis benötigt auch eine neue template.html. Diese
wird durch das Perl-Skript gefunden und für jedes Unterverzeichnis
extra eingelesen. Um Platz zu sparen, sollten Referenzen zu vorhandenen
Grafiken auf "../images/" umgebaut werden. Das
TAR-Archiv wird vor dem Laden untersucht, um möglicherweise
vorhandene Unterverzeichnisebenen in der Archivdatei zu kürzen. Mehrere Sprachen können mit <SPAN
LANG="xx"> nebeneinander geschrieben werden. Außerdem
werden TITLE-, ALT- und VALUE-Attribute nach dem Muster "Alle
Sprachen!xx:Text für Sprache A!yy:Text für Sprache B"
ausgewertet. Das Perl-Skript kann mit einem Parameter für die
auszugebende Sprache aufgerufen werden. Der
Webseiten-Ladevorgang wurde abgebrochen.
Webseiten-Archiv
(*.tar) oder intro.jpg:
Eigene
Webseiten erstellen
Funktionsweise
Kurzanleitung
Tipps
$ffout
" if [ "${ffout##*/}" = "intro.jpg" ]; then set -x rm -f /www/images/intro.jpg mv "$ffout" /www/images set +x else zflag= if [ -z "${ffout##*.tar.gz}" ] || [ -z "${ffout##*.tgz}" ]; then zflag=-z fi tardir=$(tar $zflag -tvf "$ffout"|if read line;then if [ "-" != $(echo $line|dd bs=1 count=1 2>&-) ];then set $line;echo $6;fi;fi) mkdir /tmp/wwwtmp.$$/ tar -C /tmp/wwwtmp.$$/ $zflag -xf "$ffout" rm -f "$ffout" chmod +x /tmp/wwwtmp.$$/$tardir/cgi-bin*>/dev/null 2>&1 chmod +x /tmp/wwwtmp.$$/$tardir/cgi-bin/*>/dev/null 2>&1 tar -cC "/tmp/wwwtmp.$$/$tardir" .| tar -xvC /www/ rm -rf /tmp/wwwtmp.$$/ fi echo "" else cat<
Der Webseiten-Ladevorgang wurde nicht ausgeführt.
EOF fi . ${SCRIPT%/*}/cgi-bin-post.sh