9. Extiende Plone con paquetes Complementos

  • Hay más de 2000 complementos para Plone. Nosotros vamos a cubrir sólo un puñado de hoy.

  • Usándolos puedes ahorrarte mucho tiempo

  • El éxito de un proyecto a veces depende en encontrar el complemento adecuado

  • Su uso, utilidad, calidad y complejidad varia mucho

¿Como buscar complementos?

Ver también

Algunos complementos notables

Products.PloneFormGen

Un generador de formularios

collective.plonetruegallery

Galerías de fotos con una gran selección de varios librerías Javascript

collective.cover

Interfaz para crear páginas de inicios (landing pages) complejas

collective.geo

Paquete flexible de complementos para georeferenciar contenido y mostrar mapas

collective.mailchimp

Permite a los visitantes suscribirse a noticias Mailchimp

eea.facetednavigation

Crear la navegación facetada y búsquedas a través de la Web.

webcouturier.dropdownmenu

Convierte la navegación global en menú desplegables

collective.quickupload

Subida de múltiples archivos usando el concepto drag & drop

Products.Doormat

Un flexible pie de página basado en el patrón de diseño Doormat

collective.behavior.banner

Agrega banners decorativos y pasarelas

plone.app.multilingual

Permite sitios plurilingüe mediante la traducción de contenido

Plomino

Un poderoso y flexible constructor de aplicaciones basado en Web para Plone

Instalando complementos

La instalación es un proceso de dos pasos.

Haciendo los paquetes Complementos disponibles para Zope

Primero, debemos asegurarnos que los paquetes Complementos estén disponible para Zope. Esto significa, que Zope puede importar el código. Buildout es responsable de esto.

Busca el archivo buildout.cfg en /vagrant/buildout.

Nota

Si estás utilizando nuestro kit Vagrant, la configuración Plone está disponible en una carpeta que se comparte entre los sistemas operativos anfitrión y huésped. Busque en su directorio de instalación Vagrant la carpeta buildout. Puede editar los archivos de configuración utilizando su editor de texto favorito en el sistema operativo huésped, luego cambiar en la máquina virtual para ejecutar buildout en el sistema operativo invitado.

En la sección [instance] existe una variable llamada eggs, la cual tiene una lista de eggs como valor. Agregue los siguientes paquetes eggs:

Ya hemos agregado los complementos que usaras ahora:

  • Products.PloneFormGen
  • collective.plonetruegallery

Generalmente, uno ingresa los paquetes eggs agregando una linea adicional por cada paquete egg en la configuración, Debes escribir el nombre del paquete egg de forma indentada, así el buildout entiende que la linea actual es parte de la ultima variable y no una nueva variable.

Si agregas nuevos complementos tendrás que ejecutar buildout y reiniciar el sitio:

$ cd /vagrant/buildout
$ bin/buildout
$ bin/instance fg

Ahora el código está disponible desde a dentro de Plone.

Instalando complementos en su sitio de Plone

Tu sitio de Plone no ha sido especificado para usar el complemento. Para esto debes activar los complementos en tu sitio de Plone.

Nota

¿Por qué el paso adicional de activar el paquete complemento? Usted mi tiene varios sitios Plone en una única instalación de Zope. Es normal que desee activar algunos complementos en un sitio, otros complementos en otro sitio.

En el navegador, vaya a Configuración del sitio (atajo: añadir en su dirección URL /@@overview-controlpanel del sitio Plone), y abrir el panel Complementos. Usted verá que puede instalar los complementos allí.

Instala PloneFormGen y Plone True Gallery ahora.

Esto es lo que sucede: el perfil GenericSetup del producto se ha cargado. esto hace cosas como:

  • Configurando nuevas acciones

  • Registrando nuevos tipos de contenido

  • Registrando archivos CSS y Javascripts

  • Creando algunos objetos contenidos / configuración en tu sitio de Plone.

Miremos lo que hemos instalado.

PloneFormGen

Hay muchas formas de crear formularios en Plone:

  • Puro: HTML y Python en una vista

  • Usando framework: z3c.form, formlib, deform

  • A través de la Web: Products.PloneFormGen

El concepto básico de PloneFormGen es usted construye un formulario mediante la adición de una carpeta de formulario, a esta agrega campos de formulario como elementos de contenido. Se añaden, eliminar, editar campos y mueven al igual que con cualquier otro tipo de contenido. Los envíos de formularios pueden ser enviados por correo electrónico de forma automática y / o guardarse para descargar, por ejemplo en un archivo CSV. Hay muchas complementos para PloneFormGen que proporcionan los tipos de campo adicionales y acciones.

Vamos a construir un formulario de registro:

  • Activar PloneFormGen para este sitio a través del panel de configuración Complementos en la Configuración del sitio.

  • Agrega un objeto del nuevo tipo ‘Form Folder’ en el raíz del sitio llamado “Registro”

  • Guarde y ver el resultado, un sencillo formulario de contacto el cual puede personalizar

  • Haga clic en QuickEdit (para la edición rápida)

  • Remueva el campo “Subject”

  • Añadir campos para preferencia de alimentos y el tamaño de la camisa

  • Agregar un adaptador DataSave

  • Personalizar el script de envío de correo

Nota

¿Necesita CAPTCHA? Agregue el paquete collective.recaptcha a su buildout y PloneFormGen - PFG tendrá un campo de CAPTCHA.

¿Necesita cifrado? Añadir cifrado GPG para su sistema, añada una configuración GPG para el usuario demonio de Plone que incluye unas claves públicas para los objetivos de correo, y usted será capaz de cifrar el correo electrónico antes de enviar.

¿Piensa que PloneFormGen es demasiado complicado para sus editores del sitio? Los administradores (y estamos iniciado sesión de usuario como un administrador) ven un montón de opciones más complejas que son invisibles para editores del sitio.

Por cierto, mientras PloneFormGen es bueno en lo que hace, no es un buen modelo para el diseño de sus propias extensiones. Se fue creado antes de la arquitectura de componentes de Zope convirtió ampliamente utilizado. Los autores desean escribir de manera muy diferente si estaban empezando desde cero.

Agregar Galerías de fotos con collective.plonetruegallery

Para promocionar la conferencia queremos mostrar algunas fotos mostrando conferencias pasadas y la ciudad donde la conferencia se esta realizando.

En vez de crear tipos de contenido personalizados para galerías, este se integra con la funcionalidad de Plone para elegir diferentes vistas de tipos de contenidos en carpeta.

https://pypi.python.org/pypi/collective.plonetruegallery

  • Activar el producto

  • Habilitar el comportamiento Plone True Gallery en el tipo Carpeta: http://localhost:8080/Plone/dexterity-types/Folder/@@behaviors (sólo este paso es necesario porque PloneTrueGallery todavía no sabe sobre los nuevos tipos de contenidos en el paquete plone.app.contenttypes, entonces hay activamos para reemplazar viejos tipos de contenido de Plone con más nuevos, de estilo Dexterity.)

  • Agregue una carpeta /el-evento/ubicacion

  • Suba algunas fotos desde http://lorempixel.com/600/400/city/

  • Habilite la vista galleryview

collective.plonetruegallery es un mejor modelo para escribir una extensión de Plone.

Internacionalización

Plone puede ejecutar el mismo sitio en múltiples lenguajes.

No estamos haciendo esto con el sitio de la conferencia ya que la lengua franca de la comunidad Plone es el Ingles.

Para esto debe usar https://pypi.python.org/pypi/plone.app.multilingual. Ese es el sucesor del Products.LinguaPlone (el cual solo usa tipos de contenidos Archetypes).

Nota

La construcción de un sitio multilingüe exige activar el producto plone.app.multilingual, pero no es necesario un complemento para construir un sitio en un solo idioma que no sea Inglés. Sólo tienes que seleccionar un lenguaje sitio diferente al crear un sitio Plone, y todos los mensajes básicos serán traducidos y LTR o RTL necesidades manejados.

Resumen

Ahora somos capaces de personalizar y ampliar muchas partes de nuestro sitio web. Incluso podemos instalar extensiones que añaden nuevas funcionalidades.

Pero:

  • ¿Podemos enviar Charlas al jurado evaluador ahora?

  • ¿Podemos crear listas con las propiedades mas importantes de cada tarea?

  • ¿Podemos permitir a un miembro del jurado votar en las Charlas?

Algunas veces trabajamos con data estructurada. Hasta un grado podemos hacer todo a través de la Web, pero a algún punto nos encontramos con barreras, en la siguiente parte de nuestro entrenamiento, te enseñaremos como romper esas barreras.