#!/bin/sh export DATE="12.1.2006";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 pagina Web (*.tar) o intro.jpg:
 
   

Creación de paginas web

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

Funcionamiento

Un script en Perl (template.pl) va a interpretar un archivo de plantilla HTML (template.html) buscando una cadena de caracteres "%BODY%". Despues, el script de perl leer‡ los otros archivos HTML del directorio succesivamente extrayendo la parte entre y . El codigo HTML que se extrae luego se inyectara en la plantilla la %BODY% posición y el resultado se escribiran en un nuevo directorio (./out-es/).

Los archivos referenciados (e.g. imagenes) tambien se copian a traves del script de perl. La cadena de caracteres "$(echo -n %)DATE%" se reemplazara con la fecha y la hora del archivo fuente. La cadena de caracteres "$(echo -n %)TITLE%" se reemplazara por el primer encabezamiento H1 que se encuentra en el archivo fuente.

Si el nombre del archivo fuente comienza por "cgi-bin" se insertaran los comandos de consola adecuados para la ejecución del web server. Sus propios comandos de shell se peden escribir entre <SCRIPT LANGUAGE="shell"></SCRIPT> etiquetas en el archivo fuente. Durante la ejecución del servidor web las variables de consola se resolveran de manera standard. Examples: "\$PWD" se transformaran en $PWD, "\$(ls /tmp)" van a listar los contenidos del directorio de /tmp.

El directorio de destino resultante (./out-es/) se empaqueta junto con todos los subdirectorios en un archivo TAR-, TGZ- or TAR.GZ . El archivo se puede subir a traves de esta pagina de administración. Las paginas exstentes (como estas paginas de administración) no se suprimen mediante este proceso.

Manual Breve

  1. Recuperar el paquete de publicación ff-web.tar desde este dispositivo.
  2. Extraer los archivos en un nuevo directorio (Linux: "tar -xvf ff-web.tar").
  3. Iniciar el script de perl: (Linux: "cd ff-web; perl template.pl -x "/index.html" -S es; ls out-es").
  4. Crear un archivo file desde del directorio de salida (Linux: "tar -cvf out-es.tar out-es").
  5. Subir el nuevo archivo file 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" and "perl" estan instalados, los comandos de Linux se aceptaran igualmente en la ventana de comandos de windows. Se tendra que reemplazar el "/" caracter con el guión ("\"). El archivo de perl tambien puede ejecutarse haciendo doble click encima del nombre del archivo "template.pl".

Consejos

Escribir un HTML valido y cerrar y abrir <Tags></Tags> with </Tags>. Usar un editor de HTML de validación o utilizad un editor de texto con un m’nimo de rigor.

Añadir un link a la nueva pagina en el archivo template.html. Copiar una de las lineas de la tabla (e.g. <TR>... Status ...</TR>) y cambiar la etiqueta <A HREF=""> y el texto. Puede ser necesaria la ampliación de la barra de navegación. Buscad y cambiad el atributo WIDTH="150" al tamaño conveniente.

Un nuevo subdirectorio tambien necesitara un nuevo template.html. El escript de perl va a leer cada plantilla por separado para cada subdirectorio. Para ahorrar espacio, cambiad referencias a imagenes existentes como "../images/".

El archivo TAR se examinara para recortar subdirectorios adicionales en el archivo.

Se puede añadir soporte multi-lenguaje <SPAN LANG="xx"> tags. Tambien se buscan atributos como TITLE, ALT and VALUE para "Todos los lenguajes!xx:Text for language A!yy:Texto para el lenguaje B" pattern. 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 pagina web se ha cancelado.

EOF elif [ -n "$ffout" ]; then cat<Descomprimiendo paginas 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" | awk '/^-/ {exit} /^d/ {print $6;exit}')
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 pagina web.

La carga de la pagina web se ha cancelado.

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