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?¶
https://pypi.python.org/pypi - ¡Use el formulario de búsqueda!
https://github.com/collective > 1200 repositorios
https://github.com/plone > 260 repositorios
- http://news.gmane.org/gmane.comp.web.zope.plone.user
Navegando en Google (por ejemplo Plone+Slider)
Verifica una lista corta en Plone Paragon (Lanzado en Agosto de 2014)
Pregunta en el canal irc y la lista de correo
Ver también
Una conversación sobre encontrar y administrar complementos: https://www.youtube.com/watch?v=Sc6NkqaSjqw
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 tipoCarpeta
: 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.