TRex versión 2.1.2Guía del Usuario - Estructura de directorios |
Directorio User_area
Archivo folders.start
Archivo 999999
Directorio User_name
Directorio www
Dircetorio images
Directorio Mail_program
Directorio Perl_lib
Directorio User_area : Todos los datos de usuairo están almacenados aquí. No debe haber acceso directo desde el web server a esta área Los permisos de todos los archivos bajo este directorio deben poder ser leídos y escritos por el webserver. Cada usuario tiene su propio directorio. El archivos folders.start necesita estar colocado aquí. ELa vía de acceso a este directorio debe estar reflejada en la variable $db_path del archivo Common.pm..
folders.start : Archivo folders inicial que es dado a cada cuenta durante su creación. Contiene los directorios Inbox, Trash, y Sent y el hecho de que cada uno de estos no contiene ningún mensaje, mensaje no leído y tiene un tamaño de 0 Kb.
999999 : Este es el mensaje inicial de TRex que se incluye en forma automática en cada nueva cuenta. Este archivo puede ser cambiado facilmente, pero debe cuidarse de reflejar los cambios en folders.start
Directorio User_name
: Un directorio por usuario conteniendo todos los mensajes y
datos de usuario.
Los archivos en este directorio tienen el siguiente significado:
-- ###### (cualquier nombre archivo que sean sólo
números es un e-mail con sus headers. A partir de la versión
2, los nombres de archivo que empiean con 1 son e-mails enviados,
los que comienzan con 2 son recibidos)
-- ######.deleted (mensajes borrados del Trash, deben ser
borrados periódicamente)
-- uploads (directorio para almcenamiento de
archivos del usuario. Contiene archivos del usuario guardados
desde un e-mail o puestos a través del script de subida de archivos)
-- folders (almacena mensajes enviados, recibidos e
información de los directorios, incluyendo información de los
headers para cada mensaje) ver
más abajo
-- folders.undo (última copia del archivo folders)
-- folders.undo2 (otro backup. TRex odia perder directorios)
-- address_book (toda la información de contactos y grupos)
ver más abajo
-- pass (alamcena la password para acceso a TRex en
forma encriptada)
-- sessID (almacena el identificador de sesión que se
genera al azar en el momento de ingresoa a TRex)
-- user_info.db (archivo donde se almacena la información
personal del usuario (nombre, e-mail, servers, etc.)
La primer línea de address_book indica el número más alto asignado a un contacto en su libreta de direcciones. Cada contacto se identifica con un número (índice). El siguiente contacto agregado deberá tener un número de índice mayor que este último. No todos los número se hayan presentes, ya que al borrarse un contacto su número de índice se pierde.
La segunda línea de address_book, hasta la primer
línea en blanco, se almacena la información individual
de cada contacto.
La información está delimitada por comas.
Los campos almacenados son :
[0]Sobrenombre (nickname)
[1]Apellido
[2]Nombre
[3]Dirección de e-mail
[4]número de índice
cualquiera de estos puede estar vacía excepto la de índice.
Todas las líneas que siguen a la línea blanca contienen
información de los grupos.
La información de los grupos se haya delimitada por '|'.
Los tres campos para el grupo son :
[0]Nombre del grupo
[1]Cantidad de contactos en el grupo
[2]Contactos del grupo, separados por coma
Los contactos del grupo pueden ser almacenados según los
números de índice o sus direcciones de e-mail. Los índices
se hayan precedidos por el símbolo '@'.
Ejemplo de address_book
<--
<-- Start sample address_book
7
al,Hart,Alex,alex@hart.net,3
atp,althepal,,althepal@althepal.com,4
First|2|@4,@3
--> End sample address_book
-->
este ejemplo se interpreta de la siguiente forma :
7 contactos fueron agregados, por lo que el nuevo contacto
tendrá 8 como número de índice.
Sólo 2 contactos se hayan presentes. El primero tiene sobrenombre (nickname) ál', su nombre completo es Alex Hart, y su dirección de e-mail es álex@hart.net', y con índice 3. La segunda entrada tiene el mismo formato, pero no se contiene el nombre.
Hay un grupo en address_book. Este es lamado 'First',
tiene 2 contactos que son las que poseen índice 3 y 4.
El archivo folders almacena varios detalles sobre los mensajes, incluyendo en qué directorio se encuentra, si fue leído, y otra información estadística sobre el mensaje.
La primera parte de "folders", hasta la línea en blanco,
contiene información sobre los directorios.
Esta infromación se haya separada por comas. La información
sobre estos es cambiada durante cada operación que cambie
los mismos.
Los campos que la componen son :
[0] - Nombre del directorio
[1] - Cantidad de mensajes
[2] - Cantidad de mensajes leídos
[3] - Tamaño del directorio (en bytes).
La segunda parte de "folders", después de la línea
en blanco, contiene los detalles sobre los mensajes.
Estos campos están separados por '|', por lo que todos
los caracteres '|' y '%' se codifican para evitar confusión.
Los campos del mensaje son :
[0] - mensaje leído o no 0/1 - cuando se recibe se coloca
en 0, y se cambia a 1 cuando es leído.
[1] - Nombre del directorio
[2] - Remitente (campo 'from' - si el mensaje fue enviado
por el usuario entonces es el campo 'to')
[3] - Asunto del mensaje ('- none -' si no fue especificado)
[4] - fecha - (segundo en formato Perl)
[5] - Nombre de archivo - también son el identificador
del mensaje ( Message ID - MID)
[6] - Si el mensaje tiene o no un adjunto (0 o 1)
[7] - Tamaño del mensaje (en bytes)
Directorio www : este directorio no existe en la distribución, pero es un convencionalismo para denominar a las áreas accesibles a través de web.
directorio images : almacena las imágenes usadas por los scripts. Este debe tener permiso de lectura por el web server. Puede poseer cualquier nombre, pero la variable $img_URL en Common.pm debe reflejar su ubicación.
directorio programs: Todos los scripts usados por TRex se almacenan aquí. Estos archivos deben poder ser ejecutados por el web server. Puede poseer cualquier nombre, pero la variable $dir_URL en Common.pm debe reflejar su ubicación.
Lo que sigue es un solo un vistazo de la funcionalidad de cada script. Para un análisis más profundo es necesario mirar el código de cada uno.
TOC.pl -- Tabla de contenidos de TRex. Principalmente este script es para mostrar las opciones disponibles en TRex. Este es llamado por TRex.pl como el frame superior. Aquí es donde se le indica a TRex que se desea componer un nuevo mensaje, verificar por nuevos e-mails, etc. Adicionalmente, la mayor parte del JavaScript de todo TRex se utiliza aquí. Ya que este nunca es cargado nuevamente, algunos datos se encuentran aquí para ser consultados durante el desarrollo de TRex.
address.pl -- Esta es la libreta de direcciones. Aquí se manjea el ingreso y edición de la libreta, donde los contactos y grupos se almacenan.
amail.pl -- Es este quien verifica el usuario y password, y maneja lo relacionado con la sesión actual. Si todo funciona correctamente es este quien genera los frames de TRex y carga el TOC, functions, pop, y read_mess.
change_pass.pl -- Se usa para cambiar la password. Es llamado por user_info.
compose.pl -- Inicializa la página para la composición de mensajes. También envía los e-mails, y también hace el manejo de adjuntos, insertando archivos y adjuntos de otros e-mails.
download.pl -- Este pequeño script abre un archivo y lo envía al disco del lado cliente.
drive.pl -- Administra el directorio de uploads del usuario. Almacena y lista los archivos en ese directorio.
dump.pl -- script para debugging. Envía todos los datos de un formulario (tag FORM) al browser. NO SE USA en ningún script, sólo para debugging.
folders.pl -- Muestra las carpetas y su información. Todas las operaciones sobre las carpetas se hacen aquí. El agregado de carpetas puede hacerse aquí, desde pop.pl o read_mess.pl
functions.pl -- Esta es la página con el listado de carpetas y los botones para operar con ellas. Es muy poco lo que se hace en este script. La mayor parte de la información se envía a pop.pl o read_mess.pl. Hay una gran cantidad de JavaScript generado por este script.
line.pl -- Es muy simple, sólo carga una página en negro. Es la línea entre el contenido de la carpeta y el mensaje mostrado. Es un script porque algunos algunos directorios CGI no aceptan archivos HTML. Es llamado por amail.pl
login.pl -- Es la página de ingreso. Puede brindar cierta información, pero principalmente envía la información de login a amail.pl.
new_account.pl -- Crea una nueva cuenta.
pop.pl -- Este completa la parte superior de la ventana principal, mostrando el contenido de las carpetas. Adicionalmente verifica la existencia de nuevos e-mails, mueve y borra mensajes.
read_mess.pl -- Este script completa la parte inferior, mostrando el contenido de los mensajes. Mover, borrar y marcarlos como leídos también se hace en este script.
search.pl -- Desde aquí se hacen las búsquedas. Los resultados se envíana pop.pl. Una vez que la búsqueda se completa, un listado de los resultados se guarda y puede ser alterado, según sea necesario, por pop.pl y read_mess.pl
show_attach.pl -- Decodifica y muestra los adjuntos, ya sea para su visualización o descarga (download).
start_message.pl -- Simple script que genera la página para cargar un mensaje. Hay un formulario (tag FORM) incluido que es necesario por algunos de los JavaScripts.
user_info.pl -- Permite modificar la información de usuario.
wait_reply.pl -- Muestra un mensaje indicando que el e-mail está siendo enviado. Sólo se utiliza cuando se re-envía un mensaje.
Directorio lib : Bien, no olvidemos nuestros scripts fundamentales, los módulos Perl ... Estos conforman el núcleo de TRex, y permiten que este sea extendido hasta el infinito y más allá !!!
Se ubican en el directorio program/lib de la distribución.
Common.pm -- Este es el módulo Perl con mucha de las funciones más comunes usadas. Si no se puede hallar una función, probablemente esté aquí. La personalización de TRex (zona horaria, ubicación de los scripts, etc) es hecha aquí.
L10N.pm -- Este es una abreviatura para Localización (la letra 'L', 10 caracteres y la letra 'N'), y contiene las bases para que TRex pueda ser usado en varios idiomas (los módulos de traducción para cada idioma están dentro del directorio L10N).
Sec.pm -- El módulo de seguridad involucra las tareas realacionadas a lan programación segura dentro de TRex. Si se trata de hacer una tarea, tal como abrir un archivo, debe ser rodeada de una multitud de código que haga segura a esta operación (ver que exista el archivo, que posea los permisos adecuados para la operación a realizar, etc.) lo que dificulta la lectura del código. Si en cambio se realiza una operación safe_open, y se coloca en este el código específico para seguridad (todo el código es colocado en un solo lugar), se obtiene un código mas fácil de mantener, limpio y fácil de usar.
TRex versión 2.1.2Guía del Usuario - Estructura de directorios |