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

Creación de páginas Web

Con el micro-sistema de publicación incluido en este firmware, es muy fácil personalizar las páginas Web en este dispositivo o añadir nuevas. Con el sistema operativo Windows es necesario instalar dos programas adicionales: El lenguaje del script Perl y un programa para comprimir archivos TAR (p.ej. UltimateZip). En un Linux standard, este software viene normalmente incluido.

Funcionamiento

Un script en Perl (template.pl) interpretará un archivo de plantilla HTML (template.html) buscando una cadena de caracteres "%BODY%". Después, el script de Perl leerá los otros archivos HTML del directorio sucesivamente extrayendo la parte entre <BODY> y <BODY>. El código HTML que se extrae se insertará después en la plantilla en la posición %BODY% y el resultado se escribirá en un nuevo directorio (./out-es/).

Los archivos referenciados (p.ej. imágenes) también se copian a través del script de Perl. La cadena de caracteres "$(echo -n %)DATE%" se reemplazará por la fecha y la hora del archivo fuente. La cadena de caracteres "$(echo -n %)TITLE%" se reemplazará por el primer encabezamiento H1 que se encuentra en el archivo fuente.

Si el nombre del archivo fuente comienza por "cgi-bin" se insertarán los comandos de consola adecuados para la ejecución del servidor Web. Sus propios comandos de la línea de comandos se pueden escribir entre <SCRIPT LANGUAGE="shell"></SCRIPT> etiquetas en el archivo fuente. Durante la ejecución del servidor Web las variables de consola se resolverán de manera standard. Ejemplos: "\$PWD" se transformarán en $PWD, "\$(ls /tmp)" va a listar los contenidos del directorio /tmp.

El directorio de destino resultante (./out-es/) se empaqueta junto con todos los subdirectorios en un archivo TAR-, TGZ- o TAR.GZ . El archivo se puede subir a través de esta página de administración. Las páginas existentes (como estas páginas de administración) no se suprimen mediante este proceso.

Manual Breve

  1. Recuperar el paquete de publicación .
  2. Extraer los archivos en un nuevo directorio (Linux: "tar -xvf ff-pubpak*.tar").
  3. Iniciar el script de perl: (Linux: EOF echo 'cd ff-pubpak; perl template.pl -x "/index.html" -S xx; ls out-xx' cat<
  4. Crear un fichero de archivo desde del directorio de salida (Linux: "tar -cvf out-es.tar out-es").
  5. Subir el nuevo fichero de archivo out-en.tar con esta pagina de administración.
  6. Cambiar los archivos HTML segun necesidades y repetir desde el paso 3.

A tener en cuenta: En el paquete de publicación, no se incluyen dos links simbolicos que estan disponibles en el /www directorio del dispositivo de todos modos. Los mensajes de alerta "No ./netperf, No ./netserver" son frecuentes y simplemente indican estos hechos.

Notas para usuarios de Windows: Si los "tar" y "Perl" están instalados, los comandos de Linux se aceptarán igualmente en la línea de comandos de windows. Se tendrá que reemplazar el carácter "/" por el guión ("\"). El archivo de Perl también puede ejecutarse haciendo doble click encima del nombre del archivo "template.pl".

Consejos

Escribe un HTML válido y cierra y abre <Tags></Tags> con </Tags>. Usa un editor de HTML de validación o un editor de texto con un mínimo de rigor.

Añade un link a la nueva página en el archivo template.html. Copia una de las líneas de la tabla (p.ej. <TR>... Status ...</TR>) y cambia la etiqueta <A HREF=""> y el texto. Puede ser necesaria la ampliación de la barra de navegación. Busca y cambia el atributo WIDTH="150" al tamaño conveniente.

Un nuevo subdirectorio también necesitará un nuevo template.html. El script de Perl leerá cada plantilla por separado para cada subdirectorio. Para ahorrar espacio, cambia referencias a imágenes existentes como "../images/".

El archivo TAR se examinará para recortar subdirectorios adicionales en el archivo.

Se puede añadir soporte multi-lenguaje <SPAN LANG="xx"> tags. También se buscan atributos como TITLE, ALT y VALUE por medio del patrón "Todos los lenguajes!xx:Text for language A!yy:Texto para el lenguaje B". El script de Perl acepta parámetros para filtrar el lenguaje deseado.

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

La carga de la página Web se ha cancelado.

EOF elif [ -n "$ffout" ]; then cat<Descomprimiendo páginas 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 se ha recibido ninguna página Web.

La carga de la página Web se ha cancelado.

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