Mura CMS Extensiones de clase

Una de las mejores cosas de un CMS es que almacena toda la información de su sitio web en una sola base de datos (como una hoja de cálculo de Excel) y le brinda acceso fácil para editar esa información en el administrador. Cuando edita el título, el resumen o la copia del cuerpo de una página, y hace clic en publicar, Esencialmente estás actualizando esa base de datos con la información cambiada. ¿Pero qué sucede si desea almacenar información adicional asociada con un tipo de contenido en particular? Una página de perfil, por ejemplo, puede contener una estructura repetitiva de información sobre esa persona (Nombre, Apellido, Título del trabajo, etc.). Tradicionalmente, sus opciones serían volver a escribir toda esa información cada vez, o tendría que modificar la base de datos (ya sea directamente o escribir algunos scripts personalizados para hacer eso por usted) para crear columnas adicionales que contengan esa información. Luego, tendría que modificar la interfaz de usuario (UI) para proporcionarle campos de formulario adicionales para ingresar esa información..

En Mura CMS, todo el proceso se simplifica con el uso de Atributos ampliados. En el administrador de Mura, puede extender casi cualquier tipo de nodo de contenido (Página, Componente, Galería, Carpeta, etc.) y agregar tantos campos adicionales como desee, todo sin tener que tocar la base de datos ni escribir ningún código.. 

En este ejemplo, vamos a crear un nuevo tipo de página para un libro. Además del título, cada libro tendrá los siguientes campos para que los llene el administrador de contenido:

  • Autor
  • Fecha de lanzamiento
  • ISBN
  • Nuevo usado
  • Precio

Hay tres partes involucradas en la creación de atributos extendidos:

  1. Extensión de la clase: Este es el nodo base que está extendiendo (página, carpeta, galería, componente, etc.)
  2. Conjunto de Attrbute: Una agrupación de atributos ampliados, que se muestra cuando el usuario está editando contenido
  3. Atributos ampliados: Campos individuales para los datos que desea recopilar (como hemos enumerado anteriormente).

Crear la extensión de clase

El primer paso es crear la extensión de clase. Este es el objeto principal. Tipo y Subtipo que albergará todos los atributos extendidos. Para crear una nueva extensión de clase:

  1. Desde el administrador de Mura, vaya a seleccionar Configuración del sitio > Class Extension Manager> Agregar extensión de clase.

  2. por Tipo de base Seleccionar Página.
  3. Debajo Subtipo, tipo Libro
    Nota: Al dejar "Subtipo" establecido en "Predeterminado" se aplicarán los atributos extendidos que cree a TODOS los nodos de contenido de ese tipo.
  4. Debajo Icono, Seleccione el icono del libro para asociarlo con el subtipo de libro..

  5. Hacer clic Añadir.

Añadir conjunto de atributos extendidos

Ahora que tiene su extensión de clase de página / libro, debemos agregar algunos atributos extendidos para los elementos que necesitamos para el libro. Los atributos ampliados se agrupan en conjuntos de atributos, de forma muy similar a un

en un formulario HTML). Los conjuntos de atributos están separados visualmente en el administrador para permitir la separación modular para el usuario. 

Para crear un conjunto de atributos:

  1. Seleccionar Añadir > Añadir conjunto de atributos.
  2. Entrar Detalles del libro Para el Nombre de conjunto de atributos. Este conjunto contendrá todos los detalles que necesitamos para cada libro..
  3. Para el Contenedor (Tabulador), seleccionar BASIC (Puede seleccionar pestañas alternativas en la interfaz de usuario de Mura para la organización)

  4. Hacer clic Añadir.

Añadir atributos extendidos

Una vez que haya creado su conjunto de atributos, puede agregar los atributos ampliados individuales. Comenzaremos agregando un campo de texto sin formato para el autor del libro:

  1. Dentro de tu Detalles del libro Conjunto de atributos, haga clic en Añadir nuevo atributo

  2. En el Nombre campo, entrar libro autor.
    Nota: Es importante que la variable tenga un espacio de nombre basado en su subtipo y el nombre del atributo. Por ejemplo, si el subtipo es 'Libro' y el atributo que desea agregar es 'título', entonces use 'título de producto' como el 'nombre' real del atributo. Si tiene varios atributos extendidos personalizados para su sitio, podría crear fácil y accidentalmente dos (o más) atributos extendidos con el mismo nombre. No hagas esto! Además, evite utilizar cualquiera de los nombres de campo de formulario estándar de Mura. Esto es para evitar colisiones de nombres de campos de formulario, de lo contrario, podría terminar involuntariamente con dos campos de formulario con 'Título' para el atributo de nombre, uno de Mura y el otro de su atributo extendido.
  3. En el campo Etiqueta, ingrese la etiqueta fácil de usar para el campo que aparecerá para el usuario.
  4. Para el Tipo de entrada, seleccionar Caja de texto.
  5. por Información sobre herramientas, ingrese una sugerencia fácil de usar sobre lo que debería incluirse en el campo de entrada. Algo como "Por favor ingrese el nombre de quién escribió el libro" para asegurarse de que los usuarios entiendan lo que significa ese campo.
  6. Su formulario completo debe verse así:

  7. Hacer clic Añadir

Para los campos restantes, repita los pasos anteriores con los siguientes detalles para cada campo:

Fecha de lanzamiento

  • Nombre: bookReleaseDate
  • Etiqueta: Fecha de lanzamiento
  • Tipo de entrada: Caja de texto
  • Información sobre herramientas: Por favor seleccione la fecha de publicación del libro.
  • Validar: Fecha (esto agregará un selector de fecha al campo)

ISBN

  • Nombre: bookISBN
  • Etiqueta: ISBN
  • Tipo de entrada: Caja de texto
  • Información sobre herramientas: Por favor ingrese el ISBN del libro

Nuevo usado

  • Nombre: libroNuevoUsado
  • Etiqueta: Nuevo o usado
  • Tipo de entrada: SelectBox
  • Información sobre herramientas: Por favor, seleccione si el libro es nuevo o usado
  • Lista de opciones (los valores html para los elementos en la lista desplegable): nuevo ^ usado
  • Lista de etiquetas de opciones (las etiquetas fáciles de usar para los elementos en la lista desplegable): Nuevo ^ Usado

Precio

  • Nombre: precio del libro
  • Etiqueta: Precio $
  • Tipo de entrada: Caja de texto
  • Información sobre herramientas: Por favor ingrese el precio del libro

Usando una extensión de clase

Ahora que ha creado todos sus atributos extendidos, puede agregar un nuevo libro desde el administrador del sitio y completar todos los campos del formulario que acaba de crear..

  1. Ve a la Administrador del sitio

  2. Junto a la Página de inicio, pase el cursor sobre el signo (+) y seleccione Agregar contenido

  3. Seleccionar Carpeta

  4. Entrar Libros Para el Título
  5. Seleccione la pestaña Diseño y Objetos

  6. Debajo Plantilla de diseño de hijo alternativo, seleccionar twoCol_SR.cfm

  7. Hacer clic Publicar
  8. Junto a la carpeta Libros en el Administrador del sitio, pase el cursor sobre el signo (+) y seleccione Agregar contenido


  9. Cuando el Seleccione el tipo de contenido Aparece modal, ahora deberías ver el Libro Tipo de página, junto con el icono correspondiente..

  10. Ingrese el título del libro, resumen y contenido  

  11. deberías ver el Detalles del libro Conjunto de atributos debajo del campo de contenido en la pestaña Básico (si no lo ve allí, puede haber seleccionado una pestaña diferente para mostrar el conjunto de atributos, como Atributos ampliados). Ingrese la información respectiva de los libros y haga clic en Publicar

Visualización de atributos extendidos

Cuando vea la página, notará que sus atributos no se muestran. Esto se debe a que debemos decirle a Mura que muestre esos valores en la página. Ahora, hay varias formas de lograr esto, todas dependiendo del caso de uso y de la flexibilidad que desee dar a sus usuarios para cambiar el diseño de la página. En este ejemplo, vamos a crear un componente que genere la información que queremos, de modo que sea versátil para usar en cualquier plantilla de página que elijamos.. 

Crear un nuevo componente

  1. En el administrador de Mura, haga clic en ir a Módulos> Componentes

  2. Seleccionar Agregar componente

  3. En el Título campo, entrar Detalles del libro
  4. En el área de contenido, ingrese lo siguiente:
    Detalles
    Autor: [m] $. contenido ('bookAuthor') [/ m]
    Fecha de lanzamiento: [m] dateFormat ($. content ('bookReleaseDate'), 'mm / dd / aa') [/ m]
    ISBN: [m] $. contenido ('bookISBN') [/ m]
    Condición: [m] $. contenido ('bookNewUsed') [/ m]
    Precio: $ [m] $. contenido ('bookPrice') [/ m]

    Nota: Estamos utilizando un formato simple para este ejemplo, sin embargo, puede marcarlo y personalizarlo como lo desee con CSS.
  5. Hacer clic Publicar

Agregue el componente a las páginas del libro

  1. De vuelta en el Administrador del sitio, busque el Libros carpeta (no el libro en sí), y haga clic en ella para editar.

  2. Selecciona el Diseño y objetos lengüeta

  3. Debajo Reglas de herencia, seleccionar Iniciar nueva cascada

  4. Debajo Objetos de contenido, Seleccione Componentes, localice el Detalles del libro componente y agregarlo a la Columna derecha región de visualización.

  5. Hacer clic Publicar

Ahora, cuando actualice la página de su libro, debería ver los detalles del libro en la barra lateral derecha.. 

Terminando

Como mencioné anteriormente, esta es simplemente una forma de mostrar los atributos extendidos. También puede optar por incorporar sus atributos extendidos en su página o plantillas de componentes, donde puede usar lógica adicional y evitar que sus usuarios modifiquen su marca.. 

Si desea mostrar sus atributos extendidos dentro de una plantilla, simplemente cambie el [metro] a # p.ej. # $. contenido ('bookAuthor') #

los [metro] La etiqueta es parte de Mura Scope para permitirle mostrar ciertas funciones de Mura dentro del editor en el administrador, donde los hashtags (#) son la forma estándar de generar contenido en CFML.

Ahora que ha aprendido a usar Class Extensions, puede llevar sus temas de Mura a un nivel completamente nuevo al brindar a sus usuarios formas más sólidas de administrar el contenido de sus temas..