He escrito un Helper para insertar el JW FLV Media Player en las Views. Lo he colgado del bin.cakephp.org, Las instrucciones están en el interior.
Diario de aprendizaje del framework CakePHP. Otras notas de desarrollo y diseño web, realizado sobre Mac.
Mostrando entradas con la etiqueta helper. Mostrar todas las entradas
Mostrando entradas con la etiqueta helper. Mostrar todas las entradas
jueves, 16 de octubre de 2008
Media Player Helper, actualización
Act: Tomy Muliady encontró un error en este Helper. Lo he modificado y ahora debería funcionar bien.
He escrito un Helper para insertar el JW FLV Media Player en las Views. Lo he colgado del bin.cakephp.org, Las instrucciones están en el interior.
He escrito un Helper para insertar el JW FLV Media Player en las Views. Lo he colgado del bin.cakephp.org, Las instrucciones están en el interior.
miércoles, 6 de junio de 2007
De Behavior a Helper
Llevo todo el día peleandome con lo que iba a ser un Behavior y ha acabado siendo un Helper.
En principio, yo quería hacer un Behavior capaz de "unificar" los resultados de un modelo con una asociacion BelongsTo. En concreto, se trata de unos Recursos que pueden pertenecer a una Categoría. Lógicamente Recursos tiene un campo categoria_id como foreign key.
De cara al usuario lo que tiene sentido, lógicamente, es que aparezca la etiqueta de la categoría en el listado de recursos o en la ficha, y no su id.
Por otra parte, había escrito un Helper para generar tablas (bastante flexible, ya lo colgaré cuando lo pula un poco más y le haga una documentación) a partir del resultado de un FindAll para un único modelo.
Sin embargo, la cosa se complica un poco si hay asociaciones, por lo que me interesaba "aplanar" el resultado. Es decir, que la etiqueta de la categoria apareciese como si fuese un campo de Recurso.
Empecé como behavior que se ejecutaba en afterFind, pero cuando conseguí que funcionase me dí cuenta de que daba más problemas que soluciones. Sobre todo porque, como comenté en el post sobre las precauciones con los callbacks, cualquier operación de Find lo llamaba.
Sin embargo, reflexionando un poco pensé que no tenía mucho sentido transformar los datos en el modelo para lo que era básicamente un problema de presentación. Es decir, que lo mejor sería crear un helper que tome el array de datos pasados a la vista y los reorganice en la forma deseada.
Ahora tengo dos Helpers:
La verdad es que no funcionan mal, aunque hay que pulir el código para que sea más legible y elegante y también para que haga un par de cosas que me faltan, como poder poner la columna acciones en el sitio que yo quiera.
En principio, yo quería hacer un Behavior capaz de "unificar" los resultados de un modelo con una asociacion BelongsTo. En concreto, se trata de unos Recursos que pueden pertenecer a una Categoría. Lógicamente Recursos tiene un campo categoria_id como foreign key.
De cara al usuario lo que tiene sentido, lógicamente, es que aparezca la etiqueta de la categoría en el listado de recursos o en la ficha, y no su id.
Por otra parte, había escrito un Helper para generar tablas (bastante flexible, ya lo colgaré cuando lo pula un poco más y le haga una documentación) a partir del resultado de un FindAll para un único modelo.
Sin embargo, la cosa se complica un poco si hay asociaciones, por lo que me interesaba "aplanar" el resultado. Es decir, que la etiqueta de la categoria apareciese como si fuese un campo de Recurso.
Empecé como behavior que se ejecutaba en afterFind, pero cuando conseguí que funcionase me dí cuenta de que daba más problemas que soluciones. Sobre todo porque, como comenté en el post sobre las precauciones con los callbacks, cualquier operación de Find lo llamaba.
Sin embargo, reflexionando un poco pensé que no tenía mucho sentido transformar los datos en el modelo para lo que era básicamente un problema de presentación. Es decir, que lo mejor sería crear un helper que tome el array de datos pasados a la vista y los reorganice en la forma deseada.
Ahora tengo dos Helpers:
- joinTable: toma un array de modelos generado por un FindAll y fusiona los modelos en uno solo, para simplificar la visualización de los datos. Le puedo indicar qué campos de los modelos asociados tiene que unir, así controlo los datos que pasan.
- simpleTable: toma un array de modelos (pasado directamente o preparado por joinTable) y genera una tabla con ellos, pudiendo configurar cosas como el orden de columnas, columnas para ordenar, etiquetas, acciones, y otras cosas.
La verdad es que no funcionan mal, aunque hay que pulir el código para que sea más legible y elegante y también para que haga un par de cosas que me faltan, como poder poner la columna acciones en el sitio que yo quiera.
Suscribirse a:
Entradas (Atom)