Post on 05-Jul-2015
Curso sobre Plone
para las entidades gubernamentales
Sobre el Curso
Presentación del grupo Objetivos de cada institución Presentación del contenido
Temas grandes Instalación de Zope y Plone, Configuración de
Zope, Mantenimiento Zope y Plone, Seguridad (roles, permisos y flujo de trabajo, respaldos), Tipos de Contenido, Funciones adicionales
Agenda Dos veces a la semana
Jueves y Viernes 2-5 PM Manera del trabajo
Interactiva, hacemos ejercicios todo el tiempo desde... hoy!
Primer sesión
Agenda de hoy La historia de Plone
La comunidad: donde encontrar ayuda?
La relación entre Plone y Zope
Los requirimientos del sistema o hardware
La instalación del sistema usando UnifiedInstaller y Buildout
Manejo de Plone a través de Buildout
Caracteristicas de buildout.cfg
Productos adicionales
Instalación de productos adicionales a través de buildout.cfg
Historía de Zope y Plone
Historia de Plone Su posición de “solo un otro CMS” en 2001 a uno de
los más serios en el mercado Grande actualizacaión desde 2.5 a 3 en 2007
http://plone.org/countries/conosur/articulos/8-cosas-verdaderamente-geniales-de-plone-3 Ahora la ultima versión es 3.2.2 Grandes actualizaciones desde 2.1 (2005) y desde
2.5 (2006) Todo empieza de Zope (el primer open-source
“servidor de aplicaciones”) Plone corre sobre Zope 2 a través de un marco (framework) de
Zope = CMF (Content Management Framework)
Más sobre Zope
Zope es un servidor de aplicaciones web escrito lenguaje de programación Python
http://es.wikipedia.org/wiki/Zope La última versión es Zope 3
Su objetivo es fomentar el desarrollo de pegueños y reutilizables componentes
A través de un código de integración se llama Five se puede usar Zope 3 componentes en Plone
Además de productos de Zope, la comunidad Python ha creado herramientas que usuarios de Zope estan adoptando
Lo más importante es “eggs” - manera para empacar, manejar y distribuir productos Python
Que es Zope?
Otra iniciativa importante de la comunidad Python es WSGI (Python Web Services Gateway Interface)
Para posiblitar que diferentes aplicaciones web pueden intercambiar
En el principio en 1999 Zope casi no tenía competención
La situación ha cambiado y se ha introducido por ejemplo Ruby-on-Rails, Django TurboGears y Pylons
El desarrollo de Zope y Plone esta todo el tiempo afectado con otros iniciativas
Por ejemplo un servidor web Twisted utiliza zope.interface para su interfaz, y Zope 3 esta utilizando códigos de Twister para proveer soporte WSGI
Que es Plone?
Plone es un sistema de gestión de contenidos (del inglés, CMS) que puede emplearse para construir un sitio web
Empleando Plone, personas sin conocimientos de programación o sin ser expertos pueden contribuir al contenido de un sitio web.
Además se usa Plone para sitios de intranet y DMS (Sistema de Manejo de Documentos)
Los competidores de Plone son CMS de “upper-mid tier”
También tiene competencia entre los CMS comerciales como Microsoft Office Sharepoint Server
La comunidad?
Se dice que la comunidad Plone es activa? Varios nuevos productos cada semana Desarrollo del base de sistema avanzando todo el
tiempo (ahora la versión actual es 3.3.1) Próxima actualización grande: Plone 4 en el
principio del año 2009 Es Plone para mi organización?
Apoyo para la evaluación: http://plone.org/documentation/faq/is-plone-for-me
Plone entre otros CMS http://www.idealware.org/comparing_os_cms/download.php
Manejo del proyecto
Varios metodos Los proyectos Plone soportan frecuentemente
principios Agile: prototipos rapidos y iteraciones cortos
Como un CMS Plone es rapido listo “out-of-the-box”, se puedo rapido mostrar algo para el cliente
Utilizando p.ej. un “issue tracker” Products.Poi se involucran clientes y usuarios finales al proyecto para reportar incidencias, errores y sugerencias durante el desarrollo
Requirimientos
Recursos:
http://plone.org/documentation/how-to/plone-system-requirements Software
Sistema operativo Windows XP, OSX 10.4, Linux 2.6.x
Python 2.4 Hardware
Mínimo: 256MB RAM, 512MB espacio swap 512MB espacio en el disco
Recomendable: 512MB RAM 2GB espacio en el disco
Instalación de Plone
Recursos y manuales: http://www.coactivate.org/projects/traducciones-plone/user-manual-1 http://labs.menttes.com/plone/material-de-charlas/zc-buildout-para-desarrolladores-plone/ http://plone.org/documentation/tutorial/installing-plone-3-with-the-unified-installer/running-the-unified-installer/ http://plone.org/countries/mx/buildout http://blog.jazkarta.com/2009/08/25/best-practices-in-deploying-and-optimizing-your-plone-site/
Plone Manualmente
Manejo de Plone “manualmente” Los pasos para configurar un entorno de desarrollo:
• Descargar, compilar y instalar Zope
• Crear una instancia Zope y configurarla
• Descargar y instalar Plone
• Instalar productos y eggs adicionales
• Agregar a la instancia productos que estoy desarrollando
Plone Manualmente
Hacer este manualmente causa problemas: Lento para crear nuevos entornos de desarrollo Cada desarrollador hace su propio entorno:
diferencias en las configuraciones pueden desembocar en errores
Implementar actualizaciones y manejar dependencias de los productos adicionales lento
TODO ESTE SE PUEDE HACER AUTOMATICALMENTE CON BUILDOUT
Buildout
Opción preferida: Buildout Conjunto de partes y software para crear y
ensamblar esas partes Colección de configuraciones y aplicaciones
específicas Sistema de Python Eggs (productos adicionales)
y setuptools para manejar la configuración de Zope & Plone
Manejo de configuración y paquetes adicionales desde solo un fichero de texto
Pero antes de Buildout... instalamos Zope y Plone!
La instalación con UnifiedInstaller
Manual de instalación (en inglés) http://plone.org/documentation/tutorial/installing-plone-3-with-the-unified-installer/tutorial-all-pages
Root vs. User instalación Root: instalación (preferible para producción)
/usr/local/Plone Se crea un usuario “plone”, poner el como un
dueño de los ficheros, y configura para que Zope corre como un usuario “plone”
User: instalación Instalación $HOME/Plone Zope corre como un usuario quien ha hecho la
instalación
UnifiedInstaller
Unified Installer es un paquete para instalar Zope, Plone y Python También incluye un script de instalación que fomenta
las buenas prácticas según la comunidad Plone En caso de las problemas, si se ha usado Unified
Installer es más probable encontrar solución del foro de discusió
Instrucciones para la instalación: http://tinyurl.com/yj3rlmr
UnifiedInstaller
Zeo o Standalone? UnifiedInstaller ofrece dos diferentes tipos de
instalaciones ZEO (Zope Enterprise Objects)
Puede tener varios procesos de clientes de Zope cuales comparten el mismo base de datos
Standalone Más facil para implementar, integrar y controlar.
La opción mejor para ambiente de pruebas y sitios que son muy grandes
Correr UnifiedInstaller Requirimientos: gcc (GNU Compiler Collection), g++ (C++
extensions para gcc), GNU Make, GNU tar, bzip2 y gzip para compresión
Instalación
Bajamos UnifiedInstaller tar -zxf Plone-3.VERSION-UnifiedInstaller.tar.gz
cd Plone-3.VERSION-UnifiedInstaller
./install.sh standalone
Después de la instalación se muestra instrucciones para iniciar Plone
Contraseña temporal de Admin situa el fichero adminPassword Problemas para iniciar Zope son raras
Muchas veces la problema es que un otro proceso esta ocupando el puerto 8080 que Zope utiliza por defecto
Si todo fue bien se puede acceder:
http://localhost:8080 : mensaje de bienvenida http://localhost:8080/Plone : sitio Plone http://localhost:8080/manage : interfaz del administrador para
Zope (busca la contraseña en el archivo adminPassword.txt)
Más instancias de Zope
Ubicación de la Instalación Si instalado con root, por defecto Zope root situa en
• /usr/local/Plone/ Instancia de Zope por defecto situa en
• /usr/local/Plone/zinstance/ Para cambiarla: ./install.sh target=UBICACION Como crear nuevas instancias?
./install.sh standalone –instance=INSTANCIA_NOMBRE
Cada instancia de Zope necesita un propio puerto Cambiar el puerto y muchas otros configuraciones:
a través de buildout.cfg
Buildout
Desde Plone 3.1 UnifiedInstaller utiliza Buildout por defecto
Manejamos la configuración y instalación automaticalmente usando Fichero de configuración: buildout.cfg (situa en la
raíz de nuestra instancia, por defecto la carpeta llama zinstance)
Un script para construir la instancia según la información encontrado en dicho fichero de configuración: bin/buildout
buildout.cfg
Contiene varias secciones [buildout]
Opciones para todo el buildout Parts: se escribe los siguientes partes del buildout.cfg Find-links: se puede definir enlaces a los diferentes repositorios
para los eggs (por defecto se siempre busca tambien pypi) extends = http://dist.plone.org/release/3.3/versions.cfg Eggs: Python eggs (productos adicionales) que se instala
– sqlalchemy>=0.3,<0.4dev [zope2]
Descarga el base de Zope / Plone Instalar una versión especifica:
recipe = plone.recipe.plone==3.0.1
buildout.cfg
[productdistros]
– Manejo de productos Zope del estilo viejo - “old-style Zope products”
– urls =
http://example.com/dist/ExampleProduct-1.0.tgz
– Nested packaged = ExampleProductBundle-1.0.tgz
– Version-suffix-packages = AnotherExampleProduct-2.0.tgz
[instance] Crea nueva instancia de Zope, y define configuraciones de el Recipe = plone.recipe.zope2instance
Buildout.cfg en práctica
En terminos prácticos, más que todo se necesita modificar solo tres secciones en buildout.cfg [buildlout]
eggs = instalar Python eggs [productdistros]
urls = instalar Zope 2 productos [instance]
zcml = información de configuración de Python eggs
buildout.cfg
Para implementar cualquier cambio que se ha hecho a buildout.cfg, es necesario correr buildout en otra vez
– bin/buildout
– Por defecto hay que correr el script buildout en la carpeta zinstance (esta buscando buildout.cfg en la carpeta actual)
– Más información sobre los opciones para el script buildout: buildout --help
Las carpetas de Buildout
./bin/
Script “instance” para iniciar / parar la instancia de Zope, zopepy interpreter para hacer debug, y buildout
./eggs/
Paquetes eggs que buildout ha descargado automaticalmente
./develop-eggs/
Espceficación de los eggs que se estan desarrollando, se los definen en buildout.cfg
./downloads/
Ciertos recetas definido en buildout.cfg crear esta carpeta y trae los productos automaticalmente de los repositorios
Las carpetas de Buildout
./products/
Para instalar productos estilo Zope, se desempaca los paquetes en esta carpeta y recorre buildout
./src/
Codígo fuente de los paquetes customizados ./var/
Base de Datos (data.fs), logs ./parts/
Una area manejado automaticalmente por Buildout No debería hacer cambios a esta carpeta (buildout
sobreescribe mayoría del contenido siempre cuando se lo recorre)
Recursos para Buildout
Más recursos sobre buildout http://plone.org/countries/mx/buildout http://plone.org/documentation/tutorial/buildout
Productos Adicionales
Componentes reusables que aumentan los funciones de Plone Core
Foros, galerias, blogs, herramientas de integración de base de datos, sistemas de contactos y formularios, etc. etc.
Repositorios y directorios para
www.plone.org/products www.contentmanagementsoftware.info Python Package Index: http://pypi.python.org
El desarrollo relativamente activa
14.-15.9.2009 10 nuevos productos adicionales (en total plone.org/products esta listando 3000 productos)
Productos adicionales
Se puede instalar productos a Plone con dos diferentes tecnologías “Old-style Zope 2 Products” Python eggs
Cuando Zope encuentra un producto, se lo agrega a ZMI Control_Panel/Products
Los productos instalados a Zope son disponibles para instalar en Plone a través de “Site setup” o “Configuración del sitio”
Productos estilo Zope 2
Productos de Zope 2 (hasta Plone 3 mayoría de los productos eran así) Se encuentran en paquetes de .tar.gz o .zip Instalación:
Agrega el URL del paquete a buildout.cfg (productdistros - urls)
desempaca el archivo a la carpeta /INSTANCE_HOME/Products/
Reinicia Zope y instala el producto a través de Configuración de Plone
Python eggs
Python eggs Paquetes de Python
Carpeta raíz tiene un fichero setup.py Nombre de productos es
“namespace”.”nombreDeProducto”, p.ej. plonetheme.mytheme
Productos creados por Paster
Cheese Shop: Indicé de paquetes de Python (repositorio central) (estilo p.ej. Dpgk de Debian)
Evaluación de Productos
Como saber si el producto sirve? Cual es el estado? Release candidate, beta,
alfa...?? Cual es el ciclo de actualizaciones? Cuando fue la
ultima actualización? Ver discusión en el foro de discusión
Se puede encontrar problemas que usuarios han tenido?
Existe documentación?
Evaluación de Productos
Instalación Nunca debe instalar los productos directamente a
una instancia de Zope en producción Aún después probando que todo funciona en una
instancia de desarrollo: Siempre debe tomar un respaldo de Data.fs
Prueba de instalar un skin http://plone.org/products/plonetheme-stylized/
Instalación de un Skin
Entramos a PYPI: http://pypi.python.org Buscamos a un producto que se llama
Plonetheme.Stylized Veremos las instrucciones para la instalación Entramos a buildout.cfg Entramos la información necesario a sus
propios lugares [buildout] eggs = ... [instance] zcml = ...
Configuración del Sitio
Para entrar a configuración del sitio http://localhost:8080/Plone/plone_control_panel O a través del enlace “Site Setup” o “Configuración
del sitio”
Primero cambiamos la lengua: Entra a Language Elige Spanish Haga clic en Save
Busqueda
Entramos a Busqueda “Habilita la característica LiveSearch, que
muestra resultados en tiempo real si el navegador soporta JavaScript.”
Opciones para eligir que tipos de contenido se muestra en los resultados del busqueda
Se puede agregar nuevos tipos de contenido Productos adicionales frecuentemente tiene
sus propios tipos
Calendario y Correo
Calendario Eligir el primer día de semana Y que estados de los elementos se muestra en el
calendario
Correo Indica Servidor SMTP Puerto, Usuario, contraseña Nombre y dirección del remitente
El formulario general de contacto envia correos a esta dirección
Errores y Etiquetado
Errores “Esta página lista las excepciones que han ocurrido
en este sitio recientemente. Puede configurar cuántas excepciones deberían guardarse y cuáles deberían ser copiadas al/a los archivo(s) de eventos de Zope.”
Enlaces a los error logs
Decidir que tipo de etiquetado (o markup) los usuarios pueden utilizar
Permite / prohibe el comportamiento wiki
Filtrado HTML
Se filtra las etiquetas de HTML que son consideradas como un riesgo de seguridad
Debe cuidarse en haciendo cambios Por defecto, sólo están permitidas las etiquetas
definidas en XHTML En particular, para permitir 'embed' como
etiqueta debe de eliminarla de 'Etiquetas no deseadas' y agregarla como 'Etiquetas personalizadas'
ZMI y mantenimiento
Interfaz de Administración de Zope La configuración de sitio desde Plone
Por ejemplo, cambios a flujo de trabajo, CSS, xhtml / page templates, vistas
Mantenimiento Cerrar / reiniciar el servidor Zope Tamaño de base de datos Días del histórico de un objeto a mantener tras la
compactación
Navegación
Como se construye la navegación Generar pestañas automáticamente Generar pestañas para elementos que no sean
carpetas Tipo de contenido mostrados
Que tipos de contenido mostramos en la navegación
Filtro sobre el estado del flujo de trabajo