Desarrollo Aplicaciones Plone
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Desarrollo Aplicaciones Plone

on

  • 2,870 views

 

Statistics

Views

Total Views
2,870
Views on SlideShare
2,869
Embed Views
1

Actions

Likes
1
Downloads
62
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 1

Desarrollo Aplicaciones Plone Presentation Transcript

  • 1. Internet Solutions www.codesyntax.com Desarrollo de Aplicaciones en Plone 2008/12/15
  • 2. Recordemos
    • ZPT
    • 3. Python
    • 4. Buildout
    • 5. Plone básico
  • 6. Buildout
    • Archivo de configuración formato INI
    • 7. Ahí decimos qué cosas se instalan en Plone
    • 8. Podemos crear nuestros productos para que se puedan instalar con buildout
  • 9. Productos para Plone: eggs
    • Un egg es Python lo que un jar es a Java
    • 10. Es simplemente un archivo ZIP que contiene el código y metadatos para su gestión de cierta forma automatizada
    • 11. Veamos el esqueleto de un huevo
  • 12. ¿Cómo creamos un huevo?
    • A mano
    • 13. A máquina:
      • $ paster create --list-templates
      • 14. $ paster create -t plone
      • 15. $ paster create -t plone_app
      • 16. $ paster create -t plone3_theme
      • 17. $ paster create -t archetype
    • Esto hay que combinarlo con --svn-repository para incluirlo en SVN (o en cualquier otro a mano)
  • 18. Plone Theme (I)
    • $ paster create -t plone3_theme
    • 19. Veamos la estructura del producto
    • 20. Expliquemos lo que hay en cada sitio
      • setup.py
      • 21. __init__.py
      • 22. configure.zcml
      • 23. profiles/default
      • 24. GenericSetup
      • 25. skins
  • 26. Plone Theme (II)
    • Skins
      • Personalización de plantillas y scripts de plone
      • 27. Creación de nuevas plantillas
    • ¿Por qué funciona?
      • portal_skins
      • 28. Concepto de layer o capa
      • 29. Concepto de skin
  • 30. Plone Theme (III)
    • Ejemplos:
      • Personalicemos una plantilla
      • 31. Creemos una nueva plantilla
    • Macros, slots, viewlets, etc.
  • 32. Plone Theme (y IV)
    • Vamos a utilizar GenericSetup para que la plantilla que hemos añadido se pueda utilizar como portada de la página principal
  • 33. ¿Qué es GenericSetup?
    • Una forma para exportar la configuración de Plone a archivos XML para que pueda ser reproducible
    • 34. ¿De qué configuración hablamos?
      • De casi todos los elementos que hay en el ZMI
        • portal_actions, portal_catalog, portal_types...
      • Registrar nuevos tipos de objetos, perfiles de actualización, …
    • Veamos el perfil básico de Plone
  • 35. Archetypes (I)
    • ¿Qué es Archetypes?
      • Herramientas para crear nuevos tipos de objeto en Plone
        • Los objetos básicos de Plone están hechos con Archetypes
      • Schema, Field, Widget
    • Veamos cómo está hecha una noticia en Plone
  • 36. Archetypes (II)
    • Creemos el nuestro:
      • $ paster create -t archetype
    • Sin embargo cada vez que añadamos un nuevo objeto, hay que “tocar” muchos archivos:
      • Crear el .py, el interfaz
      • 37. Añadirlo en el perfil GS (types.xml, types y factory.xml)
      • 38. Crear permisos, por si acaso ,
      • 39. ...
  • 40. Archetypes (y III)
    • $ paster addcontent --list
    • 41. $ paster addcontent contenttype
    • 42. Ahora añadiremos a mano algún campo
    • 43. Pero eso incluso se puede hacer a máquina:
      • $ paster addcontent atschema
      • 44. Tiene sus “peros”, pero bueno, sirve para empezar.
  • 45. Aplicaciones en Plone (I)
    • Concepto de vista en Zope3
    • 46. ¿Por qué una vista y no un script de skins?
      • Todo el poder de Python
      • 47. Código restringido
    • Cómo añadimos una vista
      • A mano (.py y configure.zcml)
      • 48. A máquina (sólo en productos que hayamos creado con la plantilla archetype ):
        • $ paster addcontent view
  • 49. Aplicaciones en Plone (II)
    • Hagamos un ejemplo:
      • Un formulario que recoja un string y dos enteros y que muestra el string en negrita, los dos enteros en una lista y la suma de los dos enteros también en negrita.
  • 50. Aplicaciones en Plone (III)
    • portal_catalog
      • Plone utiliza ZODB
      • 51. Base de Datos orientada a objetos
      • 52. No hacemos consultas SQL para buscar cosas
      • 53. Las buscamos en una cosa llamada Catálogo, en la que se indexan todos los objetos y guardan cierta información
      • 54. Veámos qué tiene nuestro catálogo
  • 55. Aplicaciones en Plone (IV)
    • Veámos cómo hace Plone una búsqueda en el catálogo. Normalmente se utilizan vistas (aunque se puede hacer desde scripts)
      • CMFPlone/browser/portlets/news.py
    • Concepto de brain y concepto de objeto
      • Datos indexados en el catálogo que obtenemos directamente del brain: Metadata
    • Añadiendo nuevos índices y metadata utilizando GS
  • 56. Aplicaciones en Plone (V)
    • Hagamos que nuestro tipo de objeto indexe uno de sus atributos en el catálogo
    • 57. Hagamos que algún atributos de nuestro objeto se indexe en el índice de texto libre
  • 58. Aplicaciones en Plone (VI)
    • Una plantilla, que utilizando una vista, nos devuelva ciertos objetos de Plone ordenados
    • 59. Una plantilla y una vista que hagan lo mismo que hace el formulario de búsqueda de Plone
  • 60. Y ahora qué... (I)
    • Consultas SQL
      • Hay librerías en python que se pueden utilizar
        • MySQLdb
        • 61. PostgreSQL
        • 62. SQLite
        • 63. cx_Oracle
      • Añadiríamos como egg y utilizaríamos la librería como si fuera un programa python
      • 64. SQLAlchemy, un ORM para Python
  • 65. Y ahora qué (y II)
    • Con las vistas y las plantillas podéis hacer lo que se os ocurra
  • 66. Bibliografía
    • Professional Plone Development. Martin Aspeli. PacktPub 2007 (también en PDF)
    • 67. Web Component Development with Zope 3. Philipp von Weitershausen. Springer 2007
    • 68. Documentación online: http://plone.org