zope page templates

Download Zope Page Templates

If you can't read please download the document

Upload: codesyntax

Post on 13-Jun-2015

1.757 views

Category:

Technology


0 download

DESCRIPTION

Introduction to Zope Page Templates

TRANSCRIPT

  • 1. Zope Page TemplatesAitzol Naberan Burgaa CodeSyntax Interneterako software eta estrategia www.codesyntax.com

2. Qu es

  • Es una herramienta que ofrece Zope para la generacin de pginas web

3. Ayuda a los diseadores y a los desarrolladores

  • Amigable para las herramientas de edicin

4. Lo que ves es muy parecido a lo que obtienes 5. El cdigo est fuera de la plantilla (salvo elementos estructurales) 6. Cmo funcionan

  • Template Attribute Language (TAL)
  • Define una serie de atributos
  • Los editores no entienden elnamespace tal
  • Eliminan esa parte

7. Los diseadores pueden trabajar ya que se define un valor por defecto para el contenido. 8. Cmo funcionan

  • Aqui se demuestra que lo que ves es 'muy parecido a lo que obtienes
  • La partehere/titlees dinamica

9. Cambiar en tiempo de ejecucin 10. El contenido de la etiqueta title hace que tengamos una idea de como aparecer el contenido 11. Cmo funcionan

  • Tenemos estamentos para:
  • Reemplazar etiquetas

12. Reemplazar el contenido de una etiqueta 13. Elementos de repeticin 14. Elementos condicionales 15. Definicin de bloques 16. ... 17. Cmo funcionan

  • NO es posible:
  • Generar clases o funciones

18. Ejecutar flujos de control complejos 19. Expresar algoritmos complejos Si es necesaria alguna de las caracteristicas anteriores es el momento de empezar a pensar en python. 20. Esta es una limitacin intencionada, para mantener el cdigo (logica) fuera de las plantillas. 21. Hello world! 22. Expresiones simples

  • Path explessions
  • template/title

23. request/URL 24. user/getUserName Siempre empiezan con un nombre de variable. 25. Si la primera variable tiene el valor que necesitamos terminamos, de lo contrario se sigue con '/'

  • P.e.: template/title: es la propiedadtitledetemplate

26. Expresiones simples

  • requestyuserson variables predefinidas por Zope.

27. Es posible definir nuestras propias variables. 28. Insertar texto

  • tal:replace
  • Reemplaza toda la etiqueta

tal:content

  • Reemplaza elcontenidode la etiqueta

29. Insertar estructuras

  • Tantotal:contentcomotal:replaceescapan las entidades html

30. Para insertar html necesitamos utilizar la palabra clavestructure 31. Insertar estructura 32. Estructura de repeticin

  • tal:repeat
  • Es el equivalente al bloqueforde python

33. tal:repeat=variable_de_repeticion elementos 34. Informacin disponible sobre el nmero de repeticin

  • index :indice de la iteracin (cuenta desde 0)

35. number: nmero de la iteracin (cuenta desde 1) 36. letter: cuenta usando caracteres (desde 'a') 37. Letter: cuenta usando caracteres (desde 'A') 38. Estructura de repeticin

  • Informacin disponible sobre caracteristicas de la repeticin
  • even:True si la repeticin es par

39. odd :True si la repeticin es impar 40. start:True si es la primera repeticin 41. end:True si es la ltima repeticin 42. length:Nmero total de repeticiones Es posible anidar repeticiones 43. Estructuras de repeticin 44. Estructuras condicionales

  • tal:condition
  • Es el equivalente al bloqueifde python

45. tal:condition=expresion 46. Ejecuta el bloque si la condicin se cumple 47. No existe bloqueelse

  • Se necesita otro bloqueconditioncon la negacin de la condicin original
  • tal:condition=not:expresion

48. Estructuras condicionales 49. Definir variables

  • tal:define
  • Define una variable que es valida dentro del ambito de la etiqueta en la que se define

50. tal:define=variable valor_de_la_variable 51. Definir variables

  • Para definir una variable global es necesario utilizar la palabra claveglobalantes de la definicin de la variable.
  • Es posible definir ms de una variable en la misma sentencia.

52. Variables predefinidas

  • nothing : Es un valor nulo

53. default:No modifica el texto de la etiqueta 54. options:Es la variable que guarda los argumentos basados en palabras clave (solamente disponible cuando se llama a la plantilla desde cdigo python) 55. attrs:Diccionario de atributos de la etiqueta actual 56. root : La raiz de Zope 57. Variables predefinidas

  • here : El objeto desde el que la plantilla es llamado (contexto)

58. container : El objeto en donde la plantilla esta guardado. 59. modules : Lista de mdulos python disponibles. 60. Modificar atributos

  • tal:attributes
  • Es posible modificar los valores de los atributos de las etiquetas

61. tal:attributes=atributo nuevo_valor

  • Se ha cambiadotal:contentpor una etiquetaspany untal:replace , para poder tener tanto el texto como la imagen

62. Modifica atributos

  • Es posible modificar mas de un atributo en una misma sentencia

63. Cambiar atributos 64. Manejo de errores

  • Si ocurre un error, es posible capturarlo y mostrar un mensaje notificando de ello. En caso de que no se capture se mostrar el error genrico de Zope.

65. tal:on-error=mensaje_en_caso_de_error 66. Relaciones de orden

  • Es posible especificar mas de una expresintalen una etiqueta.

67. En estos casos las expresiones se evaluan en un orden concreto:

  • define

68. condition 69. repeat 70. content / replace 71. attributes 72. omit-tag 73. Relaciones de orden

  • Solamente se puede utilizar un elemento de cada tipo en una etiqueta

74. tal:replaceytal:contentno se pueden utilizar en una misma etiqueta 75. El orden en el que se incluyen no afecta al orden en el que se evaluan. 76. Relaciones de orden

  • Este cdigo no funciona
  • La condicin siempre se evalua antes que la repeticin, por tanto, a la hora de evaluar la condicin la variablenno existe.

77. Relaciones de orden

  • Este cdigo funciona
  • Al estar englobados en distintas etiquetas, primero se evalua la expresinrepeaty despus la expresincondition .

78. Expresiones string

  • Con las expresiones string podemos mezclar cadenas de caracteres con variables definidas en la plantilla.

79. Para insertar un string utilizaremosstring: 80. Para inserta una variable de plantilla en una expresion string utilizaremos$ 81. Si la expresin que queremos utilizar tiene mas de un elemento englobaremos la llamada entre {y} 82. Expresiones string 83. Mas expresiones

  • Expresiones de path alternativas
  • Expresionesnocall

84. Expresiones python

  • Usando las expresionespythonpodemos ejecutar cualquier sentencia que se pueda ejecutar en python

85. No es muy conveniente abusar de estas expresiones, ya que es una tentacin muy grande que nos llevara a mezclar la lgica de la aplicacin en la plantilla. 86. Es necesario utilizarlas cuando una funcin que queremos utilizar necesita parmetros. 87. Expresiones python

  • Para utilizar expresiones python tenemos que usarpython:

88. Al utilizar las expresiones python tenemos que usar el operador '.' en vez del operador '/' 89. Macros

  • Mediante los macros podemos definir bloques de sentencias que podremos reutilizar en diferentes plantillas.

90. Estos bloques son necesarios ya que en una aplicacin web debemos de mantener una coherenca entre todas las pginas que la componen.

  • Encabezado

91. Pe de pagina 92. Bloques de patrocinadores 93. Definir macros

  • Para definir macros utilizaremos estamentos METAL (Macro Extensin Tal Attribute Language)
  • El cdigo anterior define una macro llamadalicenciaque est compuesta por una etiqueta

    (y todo su contenido)

94. Usar macros

  • Las macros definidas en una plantilla se guardan en la variablemacrosde la plantilla.

95. Slots

  • Las macros ofrecen la opcin de sobreescribir partes de su cdigo cuando son utilizadas.

96. Para ello se definenslotsdentro de las macros. 97. Definir slots

  • Para definir unslottenemos que utilizarmetal:define-slotdentro de una definicin de macro.

98. Podemos utilizar todas la exprsiones que hemos visto con anterioridad. 99. Macros y slots para definir la estructura de las pginas 100. Usar slots

  • Cuando utilizamos una macro que define un slot tenemos la opcin de rellenarlo.

101. Usar slots

  • Es posible definirslotscon un contenido predeterminado que se puede sobreescribir si es necesario.

102. Slots dentro de slots

  • Es posible definir slots dentro de slots, para tener mas opciones de personalizacin.

103. Macros y slots para definir la estructura de las pginas

  • Podemos definir una pgina maestra que defina las macros y slots.

104. De esta manera definimos la estructura bsica que se utilizar en la aplicacin. 105. Referencias

  • ZPT bsico

106. ZPT avanzado