CREACION DE UNA WEB ESCOLAR CON PHP-NUKE II Print
SOFTWARE - Servidores
Written by Andrés García Manzano   
Sunday, 02 May 2004 01:40
There are no translations available.

logo.gif

Una vez establecida la configuración general del sitio, nuestra primera tarea será el diseño de su aspecto general (tema), la distribución de contenedores de elementos activos (bloques) y la activación o desactivación de las diferentes rutinas en php (módulos) que proporcionan interactividad al portal.

 

Temas

Los temas, como ya vimos en anteriores artículos, son plantillaspredefinidas que permiten personalizar el aspecto del portal. Las últimas versiones de Nuke, incorporan un amplio conjunto de temas que se guardan dentro de la carpeta«../themes». Los administradores y usuarios registrados podrán elegir libremente cualquiera de ellos.

La estructura básica de un tema es:

  • Una o varias plantillas HTLM, que determinan las estructura general de determinadas páginas. Por ejemplo, el tema «Decina_dove», incluye plantillas para bloques, encabezamientos, marcos izquierdo y derecho, etc. Otros temas más sencillos (por ej. «Deepblue»)incorporan únicamente la plantilla «index».
  • Un fichero PHP compuesto por rutinas sobre la definición y comportamiento de los elementos estructurales del portal para ese tema.
  • Uno o varios ficheros de estilos css.
  • Una carpeta denominada «images» en la que se guardarán todos los elementos gráficos que incorpora el tema.
  • En algunos casos, se incluye otra carpeta denominada «forums» que contiene los iconos y elementos propios del foro.

Diseñar un sitio web estéticamente agradable y original supone crear un tema nuevo (cuestión no recomendada para quienes se inician en php-Nuke) o modificar las imágenes, estilos y archivos de algún tema existente.
A continuación describiré los pasos a seguir para construir un tema personalizado a partir , por ejemplo, del tema Deepblue:

Para nuestro propósito, debemos contar con algún editor de imágenes (incluso con el Paint de Microsoft, es posible realizar ciertas modificaciones, aunque recomiendo el GIMP —por ser freeware— o, si se tiene instalado,el Adobe Photoshop) y de ficheros PHP y HTML (el PHP Coder —freware— es una buena opción). Por otro lado, si se dispone del programa Dreamweaver MX, la edición de ficheros css podrá hacerse de manera transparente y sencilla. En caso contrario, al tratarse archivos de texto, con el bloc de notas será suficiente.

Cambio del logotipo:Cada tema incluye un logotipo (logo.gif) que se mostrará en todas las páginas del website. Por lo general está en la carpeta ...images. Algunas plantillas HTML permiten cambiar esta imagen por otra de cualquier tamaño, en otras esto no es posible, al encontrase dicha imagen incluida en una tabla que habría que modificar. Si no queremos demasiadas complicaciones, recomiendo —en la medida de lo posible— respetar el tamaño del logotipo en todos los temas incorporados a nuestro portal. En el caso que nos ocupa, podemos sustituir esta imagen
por otra de cualquier tamaño, aunque respetaremos los valores del original (223 x 69 pix.).

logo.gif

logo2.gif

Cambio de botones del menú superior: En la carpeta «...images» se guardan también los principales botones de acceso directo a algunos módulos y secciones del portal:

cabe2.gif

Como cada botón es una imagen independiente, podemos editarlos para poner los nombres en castellano.

downloads.gif home.gif account.gif

 

Otra posible alternativa, sería sustituir estos botones por otros en Flash:

flash.gif

En cuyo caso, es necesario hacer las modificaciones correspondientes en las líneas del fichero theme.php (en este caso 70-76) que hacen referencia a los botones:

Code1.gif

Por otras del tipo:

Code2.gif

que especifiquen nombre y ubicación de los botones creados en flash.

Una tercera posibilidad que puede resultar bastante efectiva (y que con herramientas específicas como DHTML menu es relativamente simple) consiste en crear botones dinámicos o menús desplegables en Javascript, introduciendo el código en lugar de las líneas que hacen referencia a los botones.

menuJava.gif

Retocando estilos: Modificar los ficheros ccs de definiciónde fuentes, párrafos, tablas marcos e hipervínculos resultará muy sencillo si se dispone de una herramienta, como Dreamweaver MX, con la que poder modificar de manera ordenada y en modo visual cada una de sus propiedades. Para ello, solo tenemos que abrir los ficheros del tema (por lo general se encuentra en una subcarpeta denominada «style», o «css») y, una vez en Dreamweaver, editar cada estilo empleando el inspector de propiedades css:

prop_css.gif

En caso de no disponer de este programa, existen algunas aplicaciones freeware (Cascade, Ystylist, StyleAsisstant) o Shareware (Prime Style, StyleMaker) con las que es posible manejar estos ficheros. Incluso, si los cambios a realizar se limitan a tipos de fuentes, tamaños y colores, el Bloc de Notas de Windows podrá servirnos.
No es objeto de este artículo profundizar en la edición de estilos en cascada, por lo que me remito a algunos artículos publicados en Internet para quienes no estén familiarizados:

  1. Estilos con css: http://platea.cnice.mecd.es/~jmas/manual/html/estilo_con_css.html
  2. Cascading Style Sheets (CSS): http://www.w3.org/Style/CSS/
  3. Hojas de estilos CSS: http://www.webmastercuyo.com.ar/contenidos/articulos/css.php


Idioma: PhpNuke, cuenta con un sistema multilenguajecon el que es posible establecer el idioma por defecto, para que los usuarios vean los nombres de los bloques, los menús del foro y otras muchas opciones en el idioma que deseen. Los idiomas soportados por el programa se encuentran en la carpeta: «...languaje», en diferentes ficheros lang-*.php que, sin duda, nos gustará editar para obtener una traducción satisfactoria y completa.

Todos elles tienen la misma estructura:

idioma.gif

Definición de variable (define), nombre de la variable ("_VALUE") y texto en un determinado idioma ("texto").

Lo primero que debemos hacer es revisar toda la lista, para asegurarnos de que la traducción es completa. No siempre es así, sobre todo en las versiones más recientes de php-Nuke. En segundo lugar, merece la pena dedicar algún tiempo a revisar la calidad de la traducción: Hay muchos términos mal traducidos, o mediante giros hispanos que en la península no se usan.

Por último, suele ser frecuente encontrar en varios lugares del portal términos en inglés (ej: "_JOURNAL", "_WRITES"...) que no aparecen traducidos. Esto se debe a que dichos nombres de variables no se encuentran en el listado del fichero «lang_*», bastará con incluir al final del fichero, nuevas líneas «define» con la traducción de estas variables para solucionar el problema.

Iconos: Cada tema incluye un juego de iconos para el menú de administración, el foro, las cuentas de usuario y algunos bloques. Una sencilla estrategia de personalización consistirá en sustituirlos por otros que consideremos más originales. Normalmente están ubicados en la carpeta: «... /themes/.../images».

Conviene respetar el tamaño de los iconos de cada tema.

Modificar la paleta de colores del tema y ajustar la apariencia de las cajas de noticias y bloques es, sin duda, la tarea que en mayor medida contribuye a incrementar el nivel de personalización de nuestro sitio web. Podemos seguir estos pasos:

  • Editar las imágenes de títulos de bloque, bordes de cuadros de texto, bloque y noticias, barras horizontales y verticales, y elementos de viñetas. En el caso del tema Deepblue que venimos analizando, actuaremos sobre los siguientes ficheros:

dot.gif

leftbar1.gif

mainbar1.gif

tablet1.gif

  • Abrir el fichero theme.php, para retocar la configuración general de colores. Por lo general las definiciones del color de fondos, tablas y texto, vienen el las primeras líneas:

Coloresdef1.gif

Bastará con sustituir los códigos exadecimales correspondientes a cada color por otros diferentes, para que los cambios se aplique a todos las páginas y objetos del portal.

  • Por último,quienes tengan ciertos conocimientos de PHP y HTML, podrán realizar numerosas modificaciones en el código que define cada objeto del website. Ni que decir tiene que cualquier error puede ser fatal, por lo que recomiendo conservar copias sucesivas del fichero theme.php a medida que se van realizando cambios.

Bloques

Los bloques constituyen uno de los principales elementos de la estructura del portal. Son «contenedores» de elementos dinámicos y de texto que podemos situar en cualquier lugar de nuestra página, aunque por lo general se colocan a la izquierda y la derecha, dejando la zona central para noticias y contenidos.

Desde el menú de administración, podemos establecer que bloques están activos y qué tipo de usuarios (administradores, registrados, anónimos) pueden acceder a cada uno de ellos. Así mismo, podremos definir el orden y posición de cada bloque en la página, por lo que estos elementos también juegan un importante papel en la personalización de nuestra sitio web.

Un portal Nuke cuenta con varios tipos de bloques:

  • Bloques HTML.—Permiten a los usuarios incluir contenidos con carácter permanente en el portal. Se emplean para incorporar vínculos, imágenes o texto en zonas específicas del sitio donde estarán siempre visibles. Para crear un bloque de este tipo, debemos seguir estos pasos:

    Accedemos al formulario de gestión de bloques a través del menú de administración.

bloques111.gif

    • En el campo, «título» escribiremos el nombre que tendrá el nuevo bloque en el portal. Recomiendo un nombre corto, a ser posible de una o dos palabras, para no distorsionar el logotipo que contiene el título, tal y como puede apreciarse en la imagen inferior:

bolquet1.gif

bolquet2.gif

  • En la lista desplegable«nombre de archivo» seleccionaremos «NINGUNO», ya que de otro modo el bloque será asignado a alguno de los «módulos» presentes en el sistema.
  • En el campo de contenido, podemos incluir todo el código HTML que deseemos, siempre y cuando las etiquetas estén entre las soportadas por el sistema. Por ejmplo, el siguiente bloque:

bolque222.gif


Será visto así por los usuarios:

bolque333.gif

    • En el campo «posición», especificaremos la ubicación del bloque en la página: Izquierda, centro arriba, centro abajo o derecha.
    • Por último, estableceremos las condiciones de visualización del bloque: Caducidad (en número de días. Si ponemos el valor "0" el bloque se verá permanentemente), comportamiento al caducar (desactivar o borrar) y usuarios para los que se mostrará (todos, registrados, administradores, anónimos).
  • Bloques de ARCHIVO.— Se trata de bloque dinámicos vinculados, por lo general, a un determinado módulo. Su contenido será mostrado por el script "block-"nombrebloque".php, alojado en el directorio «/blocks». Todos los bloques de archivo disponibles en una determinada versión de Nuke, se mostrarán en la lista desplegable «nombre de archivo», del menú "agregar bloque". Algunos de los más empleados son: Contenidos, enciclopedia, efemérides, búsqueda, foros...
  • Bloques RSS/RDF.— Sirven colocar en nuestra página las noticias publicadas en otros portales similares que cuenten con un sistema de gestión de noticias en ficheros con formato (RSS/RDF), y lógicamente,permitan su libre difusión. Los pasos a dar para crear un bloque de este tipo son:
    • Escribimos un título de bloque y buscamos en la lista desplegable adjunta alguna página cuyas noticias nos resulten de interés.
    • De no encontrar lo que buscamos en esta lista, deberemos seleccionar «no definido» y escribir la URL de un sitio que contenga las noticias. Si se trata de un portal de la familia Nuke, bastará escribir www.mi_sitio/backend.php. Por ejemplo si queremos añadir a nuestra página escolar las noticias del Observatorio Tecnológico deberemos escribir: http://observatorio.cnice.mec.es/backend.php

Consideraciones importantes:

No todos los portales de la familia Nuke tienen habilitada la posibilidad de acceder al «backend». En caso de que esta opción no esté permitida por los administradores del sitio, recibiremos el mensaje: «Error 404», al intentar acceder.

Siempre deberá contarse con el permiso explicito de los administradores de un sitio web para publicar sus noticias en nuestra página. El simple hecho de permitir el acceso al backend, aunque es un indicador del carácter abierto de un proyecto web,no deberá interpretarse como una autorización explícita para incorporar sus noticias.

Tendremos que especificar, en un lugar visible de nuestro sitio web, la procedencia de las noticias (incorporando, por cortesía, un vínculo a dicha página).

Por un elemental principio de reciprocidad, deberemos facilitar el empleo de nuestras noticias en portales que consideremosafines y, evidentemente, en aquellos de los que extraigamos otras noticias.

A quienes tengan conocimientos de programación en PHP, no les resultará difícil construir nuevos bloques de archivo capaces de interactuar con la base de datos o de ejecutar determinadosscripts. Con independencia de las líneas de programación implementadas en el nuevo bloque, hay determinadas normas generales que conviene seguir:

  • Al comienzo de cada bloque tenemos queincluir lassiguientes líneas cuya función es evitar que alguien se apropie de nuestro bloque, forzando su ejecución soto desde nuestro sitio:


if (eregi("block-Name_of_Block.php", $PHP_SELF)) {
Header("Location: index.php");
die();
}

  • Debemos asegurarnos, sobre todo al implementar código HTML, la compatibilidad con el estándar W3C. También es muy recomendable emplear estilos CSS, para la definición de tablas y formatos de texto.
  • También es conveniente incluir en las primeras líneas todas las variables que vayamos a emplear:

$global, $prefix, $dbi; (...)

  • Si queremos que nuestro módulo saque partido a las opciones multilenguaje del portal, será necesario incluir en el código variables para las diferentes opciones de texto, que luego deberán insertarse en los ficheros de idioma: «lang-italian.php, lang-english.php, lang-spanish.php...»
  • Por último, y para mantener "inteligible" la estructura del sitio, conviene respetar la localización de vínculos, imágenes, descargas, etc., cuando sea necesario incorporar nuevos recursos.

Los usuarios que no quieran lanzarse a programar sus propios módulos (sin duda uno de los principales elementos de personalización), podrán añadir a su portal cientos de módulos creados por otros usuarios, los cuales obtendrán de páginas especializadas en php-Nuke, como:

Una vez dispongamos en nuestros portal de todos los bloques necesarios, procederemos al ajuste de las diferentes opciones de administración:

  • Posición relativa: Como ya hemos visto, un bloque puede estar «apilado» a la izquierda, a la derecha o en el centro del sitio web. El orden en el que se muestran los diferentes bloques, puede ser establecido, haciendo «clic» sobre las fechas del siguiente formulario:

bloque444.gif

  • Funciones: Nos permitirán «activar» (mostrar en la página de inicio), «desactivar» (no mostrar), «editar», «borrar» (eliminar de la lista de bloques del sitio. Esta opción deberá aplicarse con cautela, ya que los cambios son irereversibles y, en caso de necesitar en otro momento el bloque nos veremos obligados a reinstalarlo) o «ver» (mostrará el contenido del bloque en una nueva página) un bloque seleccionado.
    La opción editar, merece comentario a parte: Al hacer «clic» en ella, se mostrará un nuevo formulario:

bloque555.gif

En el que podremos establecer:

  1. Un nuevo título para el bloque.
  2. El nombre del módulo al que estará vinculado (en caso de ser un bloque de archivo).
  3. Su posición en la página.
  4. La activación o desactivación.
  5. El tipo de usuario para el que se mostrará este bloque: Todo el mundo,
  6. solo usuarios registrados, solo administradores y sólo usuarios anónimos.

Módulos

Constituyen el núcleo de cualquier portal Nuke. Se trata de las librerías de scripts que garantizan el dinamismo del portal. Desde el menú de administración podremos activar, desactivar o modificar los diferentes módulos. Al editar un módulo, al igual que en el caso de los bloques,será posible cambiar su nombre y establecer el tipo de usuario que podrá emplearlo. La función «IA Home» permitirá crear automáticamente un acceso a cualquier módulo activo desde el menú principal de nuestra página.

modulos111.gif

Los módulos se encuentran en el directorio /.../modules/ del website. Cuando añadimos un nuevo módulo al portal, este aparecerá en la tabla de administración como inactivo, por lo que para poder utilizarlo tendremos que acudir al menú de administración de módulos y activarlo.

Al igual que en el caso de los bloques, podemos encontrar en Internet numerosos módulos para Nuke. Antes de incluir uno nuevo en nuestro portal, es necesario asegurarse de que ha sido realizado para la versión de Nuke que estemos empleando.

Para borrar un módulo, por lo general, sólo tenemos que eliminar la carpeta que contiene sus ficheros en el directorio «modules». La próxima vez que entremos en el menú de administración, el nombre de dicho módulo habrá desaparecido de la tabla.

En artículos anteriores, ya hemos hablado sobre las funciones y posibilidades de empleo en portales educativos de los principales módulos preinstalados en las últimas versiones de php-Nuke. Por lo que me remito a lo ya dicho, recordandotambién que pueden añadirse innumerable módulos nuevos creados por otros desarrolladores o realizados por nosotros mismos. En particular, resultarán muy útiles algunos como: el calendario de eventos, usuarios en línea y galería de imágenes, que podrán descargarse de las páginas ya mencionadas. Para añadir módulos nuevos, recomiendo tener en cuenta las siguientes consideraciones:

  1. Leer detalladamente la documentación suministrada por el desarrollador.
  2. En algunos casos es necesario realizar modificaciones en la estructura de la base de datos asociada al portal, por lo que recomiendo (para evitar sorpresas desagradables, que, por otro lado, suelen ser bastante frecuentes) realizar antes copias de respaldo.
  3. Instalar todos los componentes del módulo en las mismas carpetas y subcarpetas creadas por el desarrollador.
  4. Activar los nuevos módulos desde el menú de administración.
  5. Asociar dichos módulos (a veces no es necesario) a los bloques correspondientes.