Wordpress Themes

UC Meeting 8.06

El pasado Sábado, organizamos una reunión interna, para plantear la distribución de trabajo y las pautas a seguir para afrontar la fase final del desarrollo de nuestro juego web, WoD. La fecha para la apertura de la beta privada se mantiene, siendo ésta el 25 de Julio. La idea es abrirla con una versión jugable y, a partir del feedback recibido y las funcionalidades pensadas que no nos de tiempo a implementar, ir ampliando y completando el juego. El aviso llegará por email a los “simpatizantes” del grupo, con las instrucciones necesarias para crear una cuenta en el sistema que permita su acceso. Una vez dentro, se podrá invitar a otros usuarios. No obstante, si no te has puesto en contacto con nosotros alguna vez y deseas ser un beta tester de la aplicación, puedes ponerte en contacto con nosotros (sección únete) y pedirnos que te enviemos la invitación cuando abramos la beta.

¡Ya falta menos!

Segundo encuentro Open CP Labs

El pasado jueves tuvimos la oportunidad de visitar las oficinas de Futura Networks, la empresa organizadora del evento Campus Party, en el segundo encuentro CP Labs, división encargada, entre otras cosas, de acercar proyectos a empresas y viceversa.

La directora de contenidos nos explicó las novedades para este año: muchas, variadas y de calidad. Después, mediante videoconferencia, el presidente de Futura nos comentó la marcha de la edición colombiana de CP, que se celebra esta semana. El trabajo a destajo se notaba en el ambiente…

Daniel, project manager de cplabs, hizo una pequeña charla sobre el sentido de la nueva comunidad propulsada por Futura, y en la que venimos participando desde hace meses. (Por ello es posible que tanto Earwyn como WoD se dejen ver por su stand en la campus.. )

Para terminar, recorrido por las instalaciones, unas rondas al futbolín corporativo y algunas cañas…

pd.- como siempre, desde el equipo UC, agradecemos el esfuerzo de cplabs y su apoyo a nuestro proyecto. ;) :)

Definiendo subplantillas en Earwyn

La semana pasada publicábamos un post sobre el sistema de plantillas de Earwyn, en el que se comentaba la necesidad de crear plantillas adicionales para definir elementos repetitivos dentro de la misma plantilla. En estos días, este tema ha quedado solventado.

Subplantillas

La forma de solucionarlo ha sido ampliando el parser de plantillas, reconociendo ahora la parte de código perteneciente a una subplantilla definida dentro de la propia plantilla. Es decir, existe una plantilla llamada list.html, ésta podrá contener tanto el código general de la lista como el código que dará formato a cada elemento de la lista, sin necesidad de tener este código aparte en otra plantilla, como se hacía en la anterior versión.

En una misma plantilla se pueden definir ilimitadas subplantillas, asignándolas un nombre. Por ejemplo:

<ul >
[st:list_item]< li class=”mi_clase”>¿elem?</li>[/st]
< /ul>

En el código php del módulo que tiene asociado la plantilla que aloja el código de ejemplo, podríamos cargar la subplantilla con un método, tal que

$wod_engine->set_subtpl(”list_item”);

Y utilizar la subplantilla como si se hubiera definido una plantilla normal, reemplazando el tag y lo presente dentro de él de forma análoga a las variables calculadas:

$wod_engine->add_subtpl(”list_item”, $listado);

De este modo, nos ahorramos todas las plantillas .html que pertenecían a filas de tablas, elementos de listas… ganando mucho en organización tanto de ficheros como de funcionamiento.

Resumiendo

La forma básica del uso de todo esto, sería algo como:

  • Definir cual será la plantilla general que el módulo lleva asociada. (set_template)
  • Calcular el contenido de cada subplantilla en ella (set_subtpl y add_subtpl)
  • Calcular el contenido de la plantilla general
  • Obtener el código xhtml de todo el conjunto (get_xhtml)

Y algo más

En el post anterior, no comentamos que desde las plantillas también es posible llamar a funciones php, encerrándolas entre los símbolos []. Así en muchas ocasiones podemos ahorrar definir y calcular variables mediante ¿? y mostrar el contenido deseado directamente.

El sistema de plantillas de Earwyn

En varias ocasiones hemos comentado cosillas sobre el sistema de plantillas de Earwyn, pero no hemos entrado en detalles acerca de su funcionamiento. Este post dará algunas ideas de cómo está realizada su implementación y de la gran utilidad que puede llegar a tener.

Leyendo

Para mostrar el contenido de una página desde Earwyn, en el módulo apropiado se carga la plantilla que se desea utilizar. Por ejemplo,

$wod_engine->set_template(”my_template”);

El sistema buscará el fichero my_template.html, dentro de la carpeta de plantillas del theme (tema) activo. Leerá su contenido, identificando símbolos y tags. Después de esta instrucción, podremos agregar valores a las variables dinámicas presentes en la plantilla, encerradas entre signos de interrogación.

$wod_engine->add_value(”my_variable”, “valor de la variable”);

Por ejemplo, aquí reemplazaremos la cadena ¿my_variable? presente en la plantilla xhtml por la cadena “valor de la variable“, una vez llamemos al método que obtiene el código final:

$texto_a_mostrar = $wod_engine->get_xhtml();

Símbolos

Además de variables calculadas en el módulo php, en las plantillas también pueden mostrarse otra serie de datos:

  • Literales: puesto que el framework tiene soporte multi - idioma, también debe poder aplicarse en el contenido xhtml. Entre símbolos de exclamación, se indicará el nombre asociado a la cadena a traducir, presente en un fichero de lenguaje (uno por idioma).
  • Campos: de forma directa, se puede obtener el valor para un determinado campo. Las cadenas entre corchetes indican el nombre del campo… pero también es posible mostrar campos de otras tablas relacionadas con la actual, como por ejemplo las asociadas a través de una clave ajena.
  • Variables predefinidas: existen una serie de variables que el sistema interpreta de forma automática, sin necesidad de ser añadidas a través del método add_value. Por ejemplo, Earwyn reconoce valores pasados a través del método GET / POST en URLs y/o formularios, datos de acceso global como el session_id generado por php, cookies generadas…

Ventajas

Esta forma de plantear el desarrollo nos ofrece un par de ventajas básicas:

  • Organización: el código de los módulos es mucho más sencillo de leer y de modificar. Lo mismo pasa con el código de las plantillas, al no estar mezclado, se ahorra mucho tiempo a la hora de actualizar. Y, en general, se mejora la estructura de la aplicación web. Por otro lado, mejora la coordinación entre programadores / diseñadores, pues el diseño se podrá cambiar de forma radical sin tocar código php.
  • Flexibilidad: el sistema es flexible. Con poco esfuerzo, se puede adaptar a nuestro gusto. El diseño por orientado a objetos permite crear nuevos métodos, nuevas clases dependientes y ampliar a las funcionalidades que deseemos, manteniendo el orden e integridad de la aplicación. Y, al mismo tiempo, tiene la comodidad de un framework.

Desventajas

La principal desventaja radica en el supuesto de que en una misma página, se tengan muchos elementos repetitivos, para los que haga falta definir un patrón en otra plantilla. Por ejemplo, los listados. Por un lado estaría la plantilla general de la página y por otro, la plantilla que da formato a cada list item de la lista. Esto supone una pequeña molestia de andar creando plantillas muy simples… pero es de sobra compensado por las ventajas. De todas formas, andamos dando alguna vuelta a cómo mejorar el comportamiento de Earwyn en estos casos. :P

Código

Una pequeña captura de una parte del código de una plantilla xhtml..

Código Plantillas Earwyn