desarrollo aplicaciones plone

Download Desarrollo Aplicaciones Plone

If you can't read please download the document

Upload: codesyntax

Post on 15-Jun-2015

2.048 views

Category:

Documents


0 download

TRANSCRIPT

  • 1. Internet Solutions www.codesyntax.com Desarrollo de Aplicacionesen Plone Mikel Larreategi [email_address] 2008/12/15

2. Recordemos

  • ZPT

3. Python 4. Buildout 5. Plone bsico 6. Buildout

  • Archivo de configuracin 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 cdigo y metadatos para su gestin de cierta forma automatizada 11. Veamos el esqueleto de un huevo 12. Cmo creamos un huevo?

  • A mano

13. A mquina:

  • $ 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
  • Personalizacin de plantillas y scripts de plone

27. Creacin 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 aadido se pueda utilizar como portada de la pgina principal

33. Qu es GenericSetup?

  • Una forma para exportar la configuracin de Plone a archivos XML para que pueda ser reproducible

34. De qu configuracin hablamos?

  • De casi todos los elementos que hay en el ZMI
  • portal_actions, portal_catalog, portal_types...

Registrar nuevos tipos de objetos, perfiles de actualizacin, Veamos el perfil bsico de Plone 35. Archetypes (I)

  • Qu es Archetypes?
  • Herramientas para crear nuevos tipos de objeto en Plone
  • Los objetos bsicos de Plone estn hechos con Archetypes

Schema, Field, Widget Veamos cmo est hecha una noticia en Plone 36. Archetypes (II)

  • Creemos el nuestro:
  • $ paster create -t archetype

Sin embargo cada vez que aadamos un nuevo objeto, hay que tocar muchos archivos:

  • Crear el .py, el interfaz

37. Aadirlo 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 aadiremos a mano algn campo 43. Pero eso incluso se puede hacer a mquina:

  • $ 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. Cdigo restringido Cmo aadimos una vista

  • A mano (.py y configure.zcml)

48. A mquina (slo en productos que hayamos creado con la plantillaarchetype ):

  • $ 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 tambin 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 Catlogo, en la que se indexan todos los objetos y guardan cierta informacin 54. Vemos qu tiene nuestro catlogo 55. Aplicaciones en Plone (IV)

  • Vemos cmo hace Plone una bsqueda en el catlogo. 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 catlogo que obtenemos directamente del brain: Metadata

Aadiendo nuevos ndices y metadata utilizando GS 56. Aplicaciones en Plone (V)

  • Hagamos que nuestro tipo de objeto indexe uno de sus atributos en el catlogo

57. Hagamos que algn 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 bsqueda de Plone 60. Y ahora qu... (I)

  • Consultas SQL
  • Hay libreras en python que se pueden utilizar
  • MySQLdb

61. PostgreSQL 62. SQLite 63. cx_Oracle Aadiramos como egg y utilizaramos la librera como si fuera un programa python 64. SQLAlchemy, un ORM para Python 65. Y ahora qu (y II)

  • Con las vistas y las plantillas podis hacer lo que se os ocurra

66. Bibliografa

  • Professional Plone Development. Martin Aspeli. PacktPub 2007 (tambin en PDF)

67. Web Component Development with Zope 3. Philipp von Weitershausen. Springer 2007 68. Documentacin online:http://plone.org