Módulo de creación de tipos de contenido (Parte I): Formulario de creación de un XSD

14/03/2010       Sergio Raposo Vargas       OpenCms, Programación

Esta entrada del blog es la primera entrega de una serie de articulos relacionado con los pasos de creación de un módulo para la creación de un tipo de contenido de forma mucho más simple y rápida que la actual. En esta primera entrega comentaresmo la estructura del formulario que necesitaremos crear para recopilar toda la información necesaria para el montaje de un XSD que de forma a nuestro nuevo tipo de contenido.

Los campos de dicho formulaios serán:

Estructura: Nombre campo: Tipo de Campo (cardinalidad del campo): Descripción del campo

  • Ruta: VfsFile (1): Ruta donde guardar / actualizar el xsd
  • Includes: VFSFile (0-n): Lista de includes de otros xsd que se utilizarían para la creación de campos anidados
  • Nombre elemento principal: String (1): Nombre del campo: Ej: Noticias
  • Tipo elemento principal: String (1): Nombre del tipo principal del campo: OpenCmsNoticias
  • Nombre elemento secundario: String (1): Nombre del campo en secundario: Ej: Noticia
  • Tipo elemento secundario: String (1): Nombre del tipo secundario del campo: Ej: OpenCmsNoticia
  • Campos: (0-n)
    • Nombre: String (1): Nombre del campo. Ej: Titulo
    • Tipo: String (1): El tipo del campo será un inputtext donde se podrá elegir por defecto de una lista con los campos por defecto, y escribir libremente en el caso de ser un campo a medida hecho por nosotros.
    • Mínimo: String (0-1): Inputtext donde se podrá escribir un número
    • Máximo: String (0-1): Inputtext donde se podrá escribir un número o la palabra clave “unbounded”.
    • Mapping: String (0-1): Campo donde podremos especificar una propiedad donde se mapeará el campo. Ej: property:Title
    • Widget: String (0-1): Campo de texto donde podremos especificar el nombre del widget a aplicarle al campo o directamente el nombre de la clase que lo implementa.
    • Configuración widget: String (0-1): Campo de texto que nos permitirá configurar el widget seleccionado. Dependerá de cada widget y de las opciones que nos permita configurar.
    • Regla de validación: (0-1)
      • Expresión regular: String (1): Expresión regular que nos permite definir una serie de reglas de validación que se deben cumplir a la hora de rellenar el campo.
      • Mensaje: String (1): Mensaje que se mostrará en el caso que se incumpla la regla de validación definida anteriormente.
    • Valor por defecto: String (1): Marca el valor del campo por defecto y dependerá de según el tipo de campo que sea.
  • Fichero de traducción: VFSFile(1): Ruta del fichero de traducción workplace.properties que contiene la traducción de los campos y todas las keys asociadas al tipo. En el caso de indicarse un fichero que no existe, el sistema creará las keys por defecto asociadas.
  • Previsualización: String (1): Por defecto tomará el valor ${previewtempfile} con el cual a la hora de pinchar en la lupa se usará el sistema de previsualización de OpenCms. Si se desea aplicar otra ruta de previsualización tan solo hay que escribir en este campo dicha ruta.
  • Tabs (0-n)
    • Campo: String (1): Nombre del campo a aplicar como inicio de la pestaña
    • Titulo: String (1): Título de la pestaña
    • Collapse: boolean (1): Indica si el campo principal de la pestaña (el primero) saldrá expandido o no de forma inicial.
       

Estos campos no son definitivos, quedaran sujetos a cambios futuros una vez se avance en el análisis de las necesidades que nos vayamos encontrando.

Si tenéis alguna aportación extra a esta definición de campos ahora es el momento que entre todos saquemos un módulo lo más útil posible para todos. Espero vuestras aportaciones.