SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
zenphp Framework
  (introducción)
     Juan Belón
Programa

18:30 - 18:40 :
Entrega de documentación ,
presentación e introducción.
18:40 - 18:50:
Ejemplos
18:50 - 19:00:
Preguntas
Presentación

   ETSIIT - UGR              Asociación de
                          Webmasters de Granada




   http://etsiit.ugr.es   http://www.webmastergranada.es



                                                   3 de 29
Objetivos

  Dar una visión global de cómo se crea una aplicación web
  con zenphp.
  Adquirir aptitudes para evaluar la calidad de un
  framework.
  Conocer las herramientas de edición y generación.
  Justificar la necesidad de usar estándares de accesibilidad.
  Aprender mediante la práctica a crear una aplicación web
  básica: un listado de productos.
  Un repaso a algunas herramientas de depuración.
  Dudas , preguntas…



                                                     4 de 29
Qué no vamos a ver


  Al tener tan poco tiempo hay cosas que no podremos ver:
      No estudiaremos en profundidad XHTML ni CSS.
      No estudiaremos usabilidad ni posicionamiento.
      No aprenderemos a publicar una página web.
      No aprenderemos a evaluar la eficiencia de un
      framework.




                                                  5 de 29
Introducción Histórica




                         6 de 29
¿Qué es ZENPHP y para qué se usa?


                           ZEN
         Lenguaje del alma de inmensa profundidad

                           PHP
             P HP H ypertext P re-processor
              [P ersonal H ome P age Tools]
        Lenguaje para crear páginas web dinámicas.

Se usa para dinamizar los contenidos de los documentos de
hipertexto de forma equilibrada y sin coste de licencias.

                                                     7 de 29
Introdución histórica

Zenphp surgió en un principio como un método para encontrar
un equilibrio entre el uso del cerebro profundo y el superficial,
como dijo el Maestro Taisen Deshimaru: “la verdadera
evolución nace cuando el cerebro interno y el hipotálamo
se fortalecen, hace falta una verdadera educación ”.
Versión 0.1 – 2004-05

Finalista CUSL – 2007-08

Mención –PIE – 2008-09

Proyectos – 2004 al 2009
PHP ó ZENPHP

           PHP                    ZENPHP
 class miAplicacion {   class miAplicacion
 function               extends
 miAplicacion()         zen_aplicacion
                        {
 {                      function miAplicacion()
 //inicialización       {
 }                      parent::
                        zen_aplicacion();
                        }
 }
                        }
                                            9 de 29
El Framework zenphp

Hay 3 conceptos fundamentales al usar el framework:
Modelo:
Separa completamente el contenido de la presentación. Se
asocian a tablas de una base de datos.
Vista:
Permite el control del flujo del contenido asociado a un Modelo.
Presenta dicho contenido a través de una plantilla.
Conjuntos: Funciones, Librerías y Plantillas:
Las funciones se usan para formatear contenido, las librerías
para realizar funcionalidades extra y las plantillas son el diseño
XHTML que sirve como base para rellenarlas con el contenido.
Intro. - ¿Cómo funciona?
No es más que una serie de pautas y recomendaciones que
han sido creadas para garantizar el procesamiento de la
información de una manera flexible.
Estas facilitan la creación y mantenimiento a:
   Programadores: código organizado, estructura sólida
   Diseñadores: plantillas editables, multimedia accesible

   Al mismo tiempo mejora la experiencia relacionada con:

   Navegadores: optimización de visualización
   Buscadores: al estar bien estructurado facilita la búsqueda
   de información.


                                                     11 de 29
Intro.- ¿Cómo funciona?




                          12 de 29
Intro. - ¿Cómo funciona?




                           13 de 29
Intro. - ¿Cómo funciona?
Intro.- ¿Cómo funciona?




                          15 de 29
Intro. - ¿Por qué funciona?

En la informática se pretende encontrar un equilibrio entre
procesos que automatizan las tareas y el mantenimiento de los
sistemas.
Funciona porque nos permite centrarnos en la solución del
problema.

Es rápido y se puede modificar fácilmente. Sin cambios en el
núcleo.




                                                      16 de 59
Ejemplos

Pautas. Plantillas. Modelos. Vistas.




                                       17 de 29
Ejemplos - Pautas

 1. Diseñe el contenido visual y auditivo. (XHTML+CSS+FLASH)
 2. Disponga el contenido en los directorios dentro de /media/
    Tenga en cuenta que cada plantilla irá en un idioma
    /media/plantillas/es/base_web.html
 3. Cree el directorio /aplicaciones/ y dentro la aplicación y su
    configuración
    /aplicaciones/prueba.config.php
    /aplicaciones/prueba.php
 4. Cree la instanciación de la clase principal en /index.php
 5. Por defecto se asocia la plantilla XHTML base a la llamada
    principal de la vista de la aplicación principal: base_web.html
    prueba.php -> clase prueba_html -> función index()
    Esto se hace para el idioma principal.
 6. Cree la lógica de programación usando modelos y vistas
    asociados como hijos en la estructura de la aplicación principal
 7. Haga a Padres e hijos son accesibles
Ejercicio: listado productos

Crear una aplicación que contenga los elementos

   Página por defecto: una base XHTML
   Listado de productos
      Modelo asociado a una tabla de
      productos
      Vista asociada a una plantilla
      2 ficheros de plantilla, para enlaces y
      para el listado en sí
   Enlaces a cada producto
      Direcciones URL amigables con Google
                                                  19 de 29
Ejemplos: plantillas I
La estructura básica de un documento XHTML con información
de plantilla es la siguiente:
     <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
      <title>#titulo#</title>
      <!-- Información relevante para buscadores y navegadores -->
#scripts#
#css#
     </head>
     <body #onloads#>
#contenido#
     </body>
     </html>
                                                                    20 de 29
Ejemplos: plantillas II

Contenido de un listado.html :
  <ul id="listado_productos">
#elementos#
</ul>
Contenido de los elementos.html :
  <li>
<a
href="/producto/#idp#/#titulo_formateado#/">
#titulo#
</a>
</ul>
                                          21 de 29
Ejemplos: modelos

Contenido de modelos/productos.php
class productos extends zen_html_modelo_datos {
//La vista: html_productos
var $html; //herencia
var $campos;
   function productos () {
parent::zen_modelo_datos(
$padre,"","productos"
);
}
}
                                        22 de 29
Ejemplos: vistas
Contenido de una función de vistas/
html_producto.php :
class html_productos extends
zen_html_modelo_datos {
  function index() {
$this->padre->campos =
"idp,titulo";
return $this->listado(
"elementos.html", //las plantillas
"productos.html", "elementos");
}
                                      23 de 29
}
Ejercicio avanzado:
URL amigables con Google (SEO)
Ejemplos: vistas
class html_productos extends
zen_html_modelo_datos
{
function index() {
$this->padre->campos =
"idp,titulo,titulo as titulo_formateado";
$this->filtros_postprocesamiento = array
("titulo_formateado"=>
"zen_codifica_nombre_para_url ");
return $this->listado("elementos.html",
"productos.html", "elementos");
}                                           25 de 29
}
Casos reales (I)




                   26 de 29
Casos reales (II)




                    27 de 29
El modelo de caja
Esto ha sido todo...

       ¡¡PRACTICAR MUCHO!!

Weitere ähnliche Inhalte

Was ist angesagt? (10)

Atix13
Atix13Atix13
Atix13
 
J!D Barcelona 2009 - Taller Plantillas Avanzado
J!D Barcelona 2009 - Taller Plantillas AvanzadoJ!D Barcelona 2009 - Taller Plantillas Avanzado
J!D Barcelona 2009 - Taller Plantillas Avanzado
 
Desarrollar un módulo para joomla
Desarrollar un módulo para joomlaDesarrollar un módulo para joomla
Desarrollar un módulo para joomla
 
Manualcake
ManualcakeManualcake
Manualcake
 
Templates en Concrete5
Templates en Concrete5Templates en Concrete5
Templates en Concrete5
 
MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!
 
Estructura de plantillas joomla
Estructura de plantillas joomlaEstructura de plantillas joomla
Estructura de plantillas joomla
 
Joomla! en 10 minutos - JoomlaDay Sevilla 2015
Joomla! en 10 minutos  - JoomlaDay Sevilla 2015Joomla! en 10 minutos  - JoomlaDay Sevilla 2015
Joomla! en 10 minutos - JoomlaDay Sevilla 2015
 
Qué es y como se instala Joomla
Qué es y como se instala JoomlaQué es y como se instala Joomla
Qué es y como se instala Joomla
 
CMS - Joomla
CMS - JoomlaCMS - Joomla
CMS - Joomla
 

Andere mochten auch

Exp3 Lineas de Campo
Exp3 Lineas de CampoExp3 Lineas de Campo
Exp3 Lineas de Campo
guestb165f7
 
Infome 2 Lineas Equipotenciales Y Campo Electrico
Infome 2 Lineas Equipotenciales Y Campo ElectricoInfome 2 Lineas Equipotenciales Y Campo Electrico
Infome 2 Lineas Equipotenciales Y Campo Electrico
guestd93ebf
 

Andere mochten auch (9)

Exp3 Lineas de Campo
Exp3 Lineas de CampoExp3 Lineas de Campo
Exp3 Lineas de Campo
 
Proyecto Campos Electricos - Programador Servicios 3d
Proyecto Campos Electricos - Programador Servicios 3dProyecto Campos Electricos - Programador Servicios 3d
Proyecto Campos Electricos - Programador Servicios 3d
 
Aecem - Libro Blanco - Para Programador Php.org
Aecem - Libro Blanco  - Para Programador Php.orgAecem - Libro Blanco  - Para Programador Php.org
Aecem - Libro Blanco - Para Programador Php.org
 
Bpel y Open Esb
Bpel y Open EsbBpel y Open Esb
Bpel y Open Esb
 
¿Cómo elegir servidor web?
¿Cómo elegir servidor web?¿Cómo elegir servidor web?
¿Cómo elegir servidor web?
 
Yahoo! pipes + Wordpress plugin - RSS POWER to your blog
Yahoo! pipes + Wordpress plugin - RSS POWER to your blogYahoo! pipes + Wordpress plugin - RSS POWER to your blog
Yahoo! pipes + Wordpress plugin - RSS POWER to your blog
 
Proyecto de fisica
Proyecto de fisicaProyecto de fisica
Proyecto de fisica
 
Aplicaciones y juegos para móbiles 2011: iOS, Android, Bada, Palm
Aplicaciones y juegos para móbiles 2011: iOS, Android, Bada, PalmAplicaciones y juegos para móbiles 2011: iOS, Android, Bada, Palm
Aplicaciones y juegos para móbiles 2011: iOS, Android, Bada, Palm
 
Infome 2 Lineas Equipotenciales Y Campo Electrico
Infome 2 Lineas Equipotenciales Y Campo ElectricoInfome 2 Lineas Equipotenciales Y Campo Electrico
Infome 2 Lineas Equipotenciales Y Campo Electrico
 

Ähnlich wie Zenphp - Presentación de Septiembre en la Etsiit - Programador PHP

F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2
MarceliTha Cardozzo
 
F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2
Yeison Smith
 
2 f004 p006 gfpi guìa de aprendizaje-3_v2
2 f004 p006 gfpi guìa de aprendizaje-3_v22 f004 p006 gfpi guìa de aprendizaje-3_v2
2 f004 p006 gfpi guìa de aprendizaje-3_v2
brayanfp
 
Guia deaprendizaje3 v2
Guia deaprendizaje3 v2Guia deaprendizaje3 v2
Guia deaprendizaje3 v2
Aleja Andrade
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Ianpierr Miranda
 

Ähnlich wie Zenphp - Presentación de Septiembre en la Etsiit - Programador PHP (20)

Taller de zan php
Taller de zan phpTaller de zan php
Taller de zan php
 
Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018
 
Tarea iii, tecnología
Tarea iii, tecnologíaTarea iii, tecnología
Tarea iii, tecnología
 
ATIX13
ATIX13ATIX13
ATIX13
 
F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2
 
F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2
 
F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2
 
F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2
 
2 f004 p006 gfpi guìa de aprendizaje-3_v2
2 f004 p006 gfpi guìa de aprendizaje-3_v22 f004 p006 gfpi guìa de aprendizaje-3_v2
2 f004 p006 gfpi guìa de aprendizaje-3_v2
 
Guia deaprendizaje3 v2
Guia deaprendizaje3 v2Guia deaprendizaje3 v2
Guia deaprendizaje3 v2
 
Framework
FrameworkFramework
Framework
 
demoDAAW.ppt
demoDAAW.pptdemoDAAW.ppt
demoDAAW.ppt
 
Drupal Workshop
Drupal WorkshopDrupal Workshop
Drupal Workshop
 
Framework de programacion de paginas web
Framework de programacion de paginas webFramework de programacion de paginas web
Framework de programacion de paginas web
 
Jerarquia estricta
Jerarquia estrictaJerarquia estricta
Jerarquia estricta
 
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
 
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontendCombinación ganadora: Plone como CMS, tu framework preferido como frontend
Combinación ganadora: Plone como CMS, tu framework preferido como frontend
 
S5-DS2.pptx
S5-DS2.pptxS5-DS2.pptx
S5-DS2.pptx
 
Php curso02
Php   curso02Php   curso02
Php curso02
 
Analisis seo
Analisis seoAnalisis seo
Analisis seo
 

Mehr von Juan Belón Pérez

Mehr von Juan Belón Pérez (20)

Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Composicion de servicios web, un ejemplo
Composicion de servicios web, un ejemploComposicion de servicios web, un ejemplo
Composicion de servicios web, un ejemplo
 
Presentación: xUnit y Junit
Presentación: xUnit y JunitPresentación: xUnit y Junit
Presentación: xUnit y Junit
 
Cómo elegir un servidor Web
Cómo elegir un servidor WebCómo elegir un servidor Web
Cómo elegir un servidor Web
 
Memoria Zenphp - Programador PHP
Memoria Zenphp - Programador PHPMemoria Zenphp - Programador PHP
Memoria Zenphp - Programador PHP
 
Depurando Java Script - Programador PHP
Depurando Java Script - Programador PHPDepurando Java Script - Programador PHP
Depurando Java Script - Programador PHP
 
Zenphp - Programador PHP
Zenphp - Programador PHPZenphp - Programador PHP
Zenphp - Programador PHP
 
Tutorial A Z A - Programador PHP
Tutorial A Z A - Programador PHPTutorial A Z A - Programador PHP
Tutorial A Z A - Programador PHP
 
Ensayo Cientifico - Programador PHP
Ensayo Cientifico - Programador PHPEnsayo Cientifico - Programador PHP
Ensayo Cientifico - Programador PHP
 
Zen AJAX - Programador PHP
Zen AJAX - Programador PHPZen AJAX - Programador PHP
Zen AJAX - Programador PHP
 
Zen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHPZen Scaffolding - Programador PHP
Zen Scaffolding - Programador PHP
 
Rendimiento Java Script - Programador PHP
Rendimiento  Java Script - Programador PHPRendimiento  Java Script - Programador PHP
Rendimiento Java Script - Programador PHP
 
Bibliografia Y Menciones - Programador PHP
Bibliografia Y Menciones - Programador PHPBibliografia Y Menciones - Programador PHP
Bibliografia Y Menciones - Programador PHP
 
Tutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHPTutorial MVC - Zenphp - Programador PHP
Tutorial MVC - Zenphp - Programador PHP
 
M V C - Programador PHP
M V C - Programador PHPM V C - Programador PHP
M V C - Programador PHP
 
Aceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHPAceleradores PHP Final - Programador PHP
Aceleradores PHP Final - Programador PHP
 
Introducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHPIntroducción A La Orientación A Aspectos - Programador PHP
Introducción A La Orientación A Aspectos - Programador PHP
 
Splat - Programador PHP
Splat - Programador PHPSplat - Programador PHP
Splat - Programador PHP
 
Aceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHPAceleradores Php Final - Programador PHP
Aceleradores Php Final - Programador PHP
 
Bibliografia Y Menciones zenphp - Programador PHP
Bibliografia Y Menciones zenphp  - Programador PHPBibliografia Y Menciones zenphp  - Programador PHP
Bibliografia Y Menciones zenphp - Programador PHP
 

Kürzlich hochgeladen

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Kürzlich hochgeladen (15)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Zenphp - Presentación de Septiembre en la Etsiit - Programador PHP

  • 1. zenphp Framework (introducción) Juan Belón
  • 2. Programa 18:30 - 18:40 : Entrega de documentación , presentación e introducción. 18:40 - 18:50: Ejemplos 18:50 - 19:00: Preguntas
  • 3. Presentación ETSIIT - UGR Asociación de Webmasters de Granada http://etsiit.ugr.es http://www.webmastergranada.es 3 de 29
  • 4. Objetivos Dar una visión global de cómo se crea una aplicación web con zenphp. Adquirir aptitudes para evaluar la calidad de un framework. Conocer las herramientas de edición y generación. Justificar la necesidad de usar estándares de accesibilidad. Aprender mediante la práctica a crear una aplicación web básica: un listado de productos. Un repaso a algunas herramientas de depuración. Dudas , preguntas… 4 de 29
  • 5. Qué no vamos a ver Al tener tan poco tiempo hay cosas que no podremos ver: No estudiaremos en profundidad XHTML ni CSS. No estudiaremos usabilidad ni posicionamiento. No aprenderemos a publicar una página web. No aprenderemos a evaluar la eficiencia de un framework. 5 de 29
  • 7. ¿Qué es ZENPHP y para qué se usa? ZEN Lenguaje del alma de inmensa profundidad PHP P HP H ypertext P re-processor [P ersonal H ome P age Tools] Lenguaje para crear páginas web dinámicas. Se usa para dinamizar los contenidos de los documentos de hipertexto de forma equilibrada y sin coste de licencias. 7 de 29
  • 8. Introdución histórica Zenphp surgió en un principio como un método para encontrar un equilibrio entre el uso del cerebro profundo y el superficial, como dijo el Maestro Taisen Deshimaru: “la verdadera evolución nace cuando el cerebro interno y el hipotálamo se fortalecen, hace falta una verdadera educación ”. Versión 0.1 – 2004-05 Finalista CUSL – 2007-08 Mención –PIE – 2008-09 Proyectos – 2004 al 2009
  • 9. PHP ó ZENPHP PHP ZENPHP class miAplicacion { class miAplicacion function extends miAplicacion() zen_aplicacion { { function miAplicacion() //inicialización { } parent:: zen_aplicacion(); } } } 9 de 29
  • 10. El Framework zenphp Hay 3 conceptos fundamentales al usar el framework: Modelo: Separa completamente el contenido de la presentación. Se asocian a tablas de una base de datos. Vista: Permite el control del flujo del contenido asociado a un Modelo. Presenta dicho contenido a través de una plantilla. Conjuntos: Funciones, Librerías y Plantillas: Las funciones se usan para formatear contenido, las librerías para realizar funcionalidades extra y las plantillas son el diseño XHTML que sirve como base para rellenarlas con el contenido.
  • 11. Intro. - ¿Cómo funciona? No es más que una serie de pautas y recomendaciones que han sido creadas para garantizar el procesamiento de la información de una manera flexible. Estas facilitan la creación y mantenimiento a: Programadores: código organizado, estructura sólida Diseñadores: plantillas editables, multimedia accesible Al mismo tiempo mejora la experiencia relacionada con: Navegadores: optimización de visualización Buscadores: al estar bien estructurado facilita la búsqueda de información. 11 de 29
  • 13. Intro. - ¿Cómo funciona? 13 de 29
  • 14. Intro. - ¿Cómo funciona?
  • 16. Intro. - ¿Por qué funciona? En la informática se pretende encontrar un equilibrio entre procesos que automatizan las tareas y el mantenimiento de los sistemas. Funciona porque nos permite centrarnos en la solución del problema. Es rápido y se puede modificar fácilmente. Sin cambios en el núcleo. 16 de 59
  • 18. Ejemplos - Pautas 1. Diseñe el contenido visual y auditivo. (XHTML+CSS+FLASH) 2. Disponga el contenido en los directorios dentro de /media/ Tenga en cuenta que cada plantilla irá en un idioma /media/plantillas/es/base_web.html 3. Cree el directorio /aplicaciones/ y dentro la aplicación y su configuración /aplicaciones/prueba.config.php /aplicaciones/prueba.php 4. Cree la instanciación de la clase principal en /index.php 5. Por defecto se asocia la plantilla XHTML base a la llamada principal de la vista de la aplicación principal: base_web.html prueba.php -> clase prueba_html -> función index() Esto se hace para el idioma principal. 6. Cree la lógica de programación usando modelos y vistas asociados como hijos en la estructura de la aplicación principal 7. Haga a Padres e hijos son accesibles
  • 19. Ejercicio: listado productos Crear una aplicación que contenga los elementos Página por defecto: una base XHTML Listado de productos Modelo asociado a una tabla de productos Vista asociada a una plantilla 2 ficheros de plantilla, para enlaces y para el listado en sí Enlaces a cada producto Direcciones URL amigables con Google 19 de 29
  • 20. Ejemplos: plantillas I La estructura básica de un documento XHTML con información de plantilla es la siguiente: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>#titulo#</title> <!-- Información relevante para buscadores y navegadores --> #scripts# #css# </head> <body #onloads#> #contenido# </body> </html> 20 de 29
  • 21. Ejemplos: plantillas II Contenido de un listado.html : <ul id="listado_productos"> #elementos# </ul> Contenido de los elementos.html : <li> <a href="/producto/#idp#/#titulo_formateado#/"> #titulo# </a> </ul> 21 de 29
  • 22. Ejemplos: modelos Contenido de modelos/productos.php class productos extends zen_html_modelo_datos { //La vista: html_productos var $html; //herencia var $campos; function productos () { parent::zen_modelo_datos( $padre,"","productos" ); } } 22 de 29
  • 23. Ejemplos: vistas Contenido de una función de vistas/ html_producto.php : class html_productos extends zen_html_modelo_datos { function index() { $this->padre->campos = "idp,titulo"; return $this->listado( "elementos.html", //las plantillas "productos.html", "elementos"); } 23 de 29 }
  • 25. Ejemplos: vistas class html_productos extends zen_html_modelo_datos { function index() { $this->padre->campos = "idp,titulo,titulo as titulo_formateado"; $this->filtros_postprocesamiento = array ("titulo_formateado"=> "zen_codifica_nombre_para_url "); return $this->listado("elementos.html", "productos.html", "elementos"); } 25 de 29 }
  • 26. Casos reales (I) 26 de 29
  • 27. Casos reales (II) 27 de 29
  • 28. El modelo de caja
  • 29. Esto ha sido todo... ¡¡PRACTICAR MUCHO!!