Integración
Datos comunes: Datos de Sistema /Imágenes / Menús / Árboles de Categorías, Secciones y Páginas
Los datos de sistema están disponibles en todos los tipos de contenidos.
Brindan información acerca de la plataforma, del servidor, del sitio web (también llamado portal) y algunos datos adicionales que varían de un tipo de contenido a otro, como el Request (datos variables recibidos por una página. Ej:, búsquedas).
Los menús también están disponibles en todos los tipos de contenidos, y es conveniente realizar su integración al comienzo, para poder navegar los contenidos que luego se irán integrando.
Las imágenes en Masify están identificadas por un código único para cada una de ellas.
Mediante este código, más la URL del servidor de imágenes, se obtiene el acceso a las mismas. Pueden recibir parámetros de ancho y alto máximos para generar miniaturas.
Datos de Sistema
Datos disponibles:
Platform
Id: Valor numérico, en el caso de Masify siempre será 1
Url: Url de base de la plataforma.
SecureUrl: Url segura de la plataforma (en caso de poseerla)
Portal
Id: Id del sitio web dentro de la plataforma.
Url: Url completa del portal. Puede ser una url propia (Ej.: http://www.miportal.com) o un subdominio de la plataforma (Ej.: http://miportal.masify.com)
Tenant_Logo_Code: código del logo cargado desde el panel de control. Para ver un ejemplo de cómo instanciar imágenes a partir del código haga click aquí.
isHub: Valor booleano (True o False), define si es un portal standard (False) o es un portal concentrador de otros portales (True).
isPlatformHub: Discontinuado.
TemplateID: Id del template en uso por el sitio web.
Name: Nombre del portal.
UrlName: URL del portal.
Email: cuenta de email del administrador del portal.
Configuration
imageServer: URL del servidor de imágenes. Para ver un ejemplo de cómo instanciar imágenes a partir del código haga click aquí.
staticFilesUrl: URL de base para el caché de archivos estáticos (css / js).
La utilización de caché en estos archivos agiliza la carga del servidor y los tiempos de respuesta, por lo que su uso es altamente recomendado.
Para ver un ejemplo de cómo instanciar archivos con la URL de caché, haga click aquí.
Request Host: Host del sitio web.
User-Agent: Discontinuado.
Ejemplo
En este ejemplo se instanciará el nombre del portal en el archivo commons/header.xsl incluído en todos los archivos de tipo de contenido (ver capítulo anterior).
Imágenes
Todas las imágenes que aparezcan dentro del flujo de datos XML que recibe el template, están identificadas mediante un código.
Mediante este código, más la URL del servidor de imágenes (disponible en los datos comunes, en el nodo /xml/Configuration/ImageServer ), se obtiene el acceso a las mismas.
Pueden recibir parámetros de ancho y alto máximos para generar miniaturas.
Forma de la URL de una imagen
ImageServer: Valor disponible en el nodo /xml/Configuration/ImageServer en todos los tipos de contenido.
+
Code: Código de la imágen.
+
-h : (opcional). Alto máximo para la miniatura de la imagen.
+
-w: (opcional) . Alto máximo para la miniatura de la imagen.Ej.: http://static.maisfy.com/FileAccessHandler.ashx?code=635322204522134159-h100-w300
Ejemplo
En este ejemplo se instanciará el logo del sitio web en el archivo commons/header.xsl incluído en todos los archivos de tipo de contenido (ver capítulo anterior).
El logo es cargado desde el panel de control por el administrador del sitio.
En XSLT los atributos de las etiquetas HTML que posean valores variables deben ser instanciados con la etiqueta <xsl:attribute>.
En este caso, se instanciará una etiqueta <img> con el atributo con src de valor variable.
Menús
Los menús son sectores de un sitio web donde aparecerán elementos de navegación (botones con enlaces) que pueden tener la forma de árbol, es decir, que un botón puede contenes sub botones, y estos otros sub botones, indefinidamente.En el esquema XML del template deben definirse la cantidad y posición de los menús que podrá tener el sitio web.
Para ver un ejemplo de cómo definir sectores de menús y sus posiciones en el esquema XML haga click aquí.
Acceso a los datos XML de Menús
Todos los menús del sitio aparecen dentro del nodo /xml/menus del flujo de datos, y están disponibles en todos los tipos de contenido.Los elementos que aparecen en los menús son:
Menu: Nodo de base de cada menú, posee los siguientes elementos.
Id: Valor numérico, no se utiliza (para identificar el menú debe utilizarse el atributo name).
name: Nombre del menú, compuesto por el prefijo "menu_" y la posición del mismo. Ej.: "menu_1". Este es el valor por el cual se debe acceder al menú desde el código XSLT.
SourceType: Tipo de botones que aparecen en el menú. Esto lo define el administrador del sitio desde el panel de control.
Pueden ser de los siguientes tipos:
SourceType=1 - (Categorías de productos): El menú muestra sólo botones con enlaces a contenidos del tipo Category (categorías de productos).
Todos los botones que aparezcan dentro del menú serán de ese tipo (typeId=3).
SourceType=2 - (Botones personalizados): El menú muestra botones de cualquier tipo.
Pueden ser del tipo:
External (typeId=1, enlaces a una URL cualquiera)
Page (typeId=2, páginas)
Category (typeId=3, categorías de productos)
ListArticles (typeId=4, sección de artículos/notas)
Tag (typeId=5, listado de artículos/notas por tag)
TagItem (typeId=5, listado de productos por tag) SourceType=3 - (Tipo de producto): El menú muestra sólo botones con enlaces a listados por Tipo de Producto.
Todos los botones que aparezcan dentro del menú serán de ese tipo (typeId=6).
Description: El nombre del menú que se muestra el panel de control.
Buttons: El listado de botones (enlaces) que contiene el menú, presentados en forma de árbol.
Todos los botones poseen la misma forma, aunque accedan a tipos de contenidos diferentes.
Los elementos de cada botón son los siguientes:
Id: Valor numérico, no se utiliza.
Target: atributo "target" para el lick, el valor puede ser "_blank" o "_self".
DisplayOrder: Órden del botón dentro de los botones de su mismo nivel.
Url: URL de destino del botón (puede ser relativa o absoluta, en caso enlaces externos).
Description: Texto para mostrar en el botón.
Type: Tipo de botón. Posee los siguientes elementos:
id: Valor numérico, puede ser:
1 (External): enlaces a una URL cualquiera)
2. (Page): Páginas)
3. (Category): Categorías de productos)
4. (ListArticles): Sección de artículos/notas)
5. (Tag): Listado de artículos/notas por tag)
6. (ItemType): Listado de productos por su tipo de producto)
7. (TagItem): Listado de productos por tag) Description: Descripción del tipo de botón
TargetName: Valor idéntico al atributo Target, puede utilizarse cualquier de los dos, indistintamente
Buttons: Listado de botones anidados dentro del botón actual.
(Este nodo puede aparecer o no).
Ejemplo de menús en los datos XML
Integración de Menús
En el template que se está desarrollando como ejemplo, se definen 3 sectores de menús:
Menú Principal (posición 1, es decir, que será el menú principal del sitio).
Menú Superior (posición 2, será el segundo menú en importancia).
Menú Inferior (posición 3, será el segundo menú en importancia).
Ejemplo
Dado que en un mismo template suelen presentarse varios sectores de menús, ejemplificaremos el uso de una función (template) para generarlos, que pueda ser reutilizada en cada sector que se desee instanciar un menú.
Esta función utiliza a su vez otra función, recursiva, que genera los botones por cada nivel.
Al ser una función que se reutilizará, lo más conveniente es ubicarla en el archivo que de funciones (commons/modules.xsl) que incluímos en todos los archivos XSLT del template.
