#!/bin/sh export DATE="14.8.2007";SCRIPT=${0#/rom} export TITLE="Administració: Publica" . ${SCRIPT%/*}/cgi-bin-pre.sh cat<Administració: Publica EOF if [ "$REQUEST_METHOD" != "POST" ]; then cat<
Arxiu de pàgina Web (*.tar) o intro.jpg:
 
   

Creació de pàgines web

Amb el micro-sistema de publicació inclòs amb aquest firmware, és molt fàcil personalitzar les pàgines Web en aquest dispositiu o afegir-ne de noves. Amb el el sistema operatiu Windows, és necessari instal·lar dos programes addicionals: El llenguatge script Perl i un programa per comprimir arxius TAR (ex. UltimateZip). Amb Linux, normalment, aquest software està inclòs en la distribució.

Funcionament

Un script en perl (template.pl) interpretarà un arxiu de plantilla HTML (template.html) cercant una cadena de caràcters "%BODY%". Després, l'script de perl llegirà succesivament tots els altres fitxers HTML del directori extraient la part entre <BODY> i </BODY>. El codi HTML que s'extreu després s'injecta en la plantilla el %BODY% posició i el resultat s'escriurà en un nou directori (./out-en/).

Els arxius referenciats (ex. imatges) també es copien mitjançant l'script de perl. La cadena de caràcters "$(echo -n %)DATE%" es reemplaçarà amb la data i l'hora de l'arxiu font. La cadena de càracters "$(echo -n %)TITLE%" es reemplaçarà pel primer encapçalament H1 que es troba en l'arxiu font.

Si el nom de l'arxiu font comença per "cgi-bin" s'insertaran les ordres de l'intèrpret adequades per a l'execució del servidor web. Les seves pròpies ordres de shell es poden escriure entre <SCRIPT LANGUAGE="shell"></SCRIPT> etiquetes en l'arxiu font. Durant l'execució del servidor web les variables de l'intèrpret d'ordres es resoldran de manera estàndard. Exemples: "\$PWD" es transformaran $PWD, "\$(ls /tmp)" llistaran els continguts del directori /tmp.

El directori de destí resultant (./out-en/) s'empaqueta juntament amb tots els subdirectoris en un arxiu TAR-, TGZ- or TAR.GZ. L'arxiu es pot pujar mitjançnt la pàgina d'administració. Les pàgines existents (com aquestes pàgines d'administració) no es suprimeixen mitjançnt aquest procés.

Manual breu

  1. Recuperar el paquet de publicació .
  2. Extreure els fitxers en un nou directori (Linux: "tar -xvf ff-pubpak*.tar").
  3. Start the perl script: (Linux: EOF echo 'cd ff-pubpak; perl template.pl -x "/index.html" -S xx; ls out-xx' cat<
  4. Crear un arxiu file des del directori de sortida (Linux: "tar -cvf out-en.tar out-en").
  5. Pujar el nou fitxer out-en.tar amb aquesta pàgina d'administració.
  6. Canviar els arxius HTML segons les necessitats i repetir des del pas 3.

Cal tenir en compte: En el paquet de publicació no s'inclouen dos enllaços simbòlics que estan disponibles en el directori /www del dispositiu. Els missatges d'alerta "No ./netperf, No ./netserver" son freqüents i simplement indiquen aquests fets.

Notes per usuaris Windows: Si els programes "tar" i "perl" estan instal·lats, les comandes de Linux s'acceptaran igualment en la finestra de comandes de Windows. S'haurà de reemplaçar el caràcter "/" per la barra inversa("\"). L'arxiu de Perl també pot executar-se fent doble click sobre el nom de l'arxiu "template.pl".

Consells

Escriure un HTML vàlid i tancar i obrir <Tags> amb </Tags>. Utilitzar un editor d'HTML que validi o un editor de text amb una mica de rigor.

Afegir un enllaç a la nova pàgina en el arxiu template.html. Copiar una línies de la taula (ex. <TR>... Status ...</TR>) i canviar l'etiqueta <A HREF=""> i el text. Pots ser necessària l'ampliació de la barra de navegació. Busca i canvia els atributs WIDTH="150" al tamany convenient.

El nou directori també necessitarà un nou template.html. L'script de perl llegirà cada plantilla per separat per cada subdirectori. Per estalviar espai, canvieu les referéncies a les imatges existents com "../images/".

L'arxiu TAR s'examinarà per retallar subdirectoris adicionals en l'arxiu .

Es pot afegir suport Multi-llengua amb <SPAN LANG="xx">. També es busquen atributs com TITLE, ALT i VALUE per ".Tots els llenguatges!xx:Text pel llenguatge A!yy:Text pel llenguatge B". L'script de perl accepta paràmetres per filtrar el llenguatge necessari.

EOF elif ! ffout=$(./freifunk-upload 2>&1); then cat< $ffout

La càrrega de la pàgina web s'ha cancel·lat.

EOF elif [ -n "$ffout" ]; then cat<S'estan desempaquetant les pàgines web.

EOF echo "
"
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< No s'ha rebut cap pàgina web.

La càrrega de la pàgina s'ha cancel·lat.

EOF fi . ${SCRIPT%/*}/cgi-bin-post.sh