Widgets Avanzados en Cutrenti

Un widget normal solo te permite mostar datos estáticos. Mantienen los mismos datos durante todo su periodo de existencia. ¿Qué pasa si queremos que esos datos se vayan actualizando o que simplemente puedan cambiar?

Pues te voy a dar una solución. Un widget complejo puede estar compuesto por hasta 3 partes:

Cuerpo del widget (el widget en sí)
Servidor del widget (una parte del widget que escucha consultas ajax)

Objetos en la base de datos (puede guardar datos en la base de datos)
Un widget sencillo consistiría solo en el cuerpo del widget. Como cutrenti es software libre no me importa mostrar como funciona así que explico un poco la estructura.
Tenemos el directorio widgets, donde van los widgets y el directorio seccionesAjax, donde van las secciones ajax. Evidentemente si intentas acceder directamente a estos archivos no van a funcionar.
La manera de mostar un widget es llamándolo desde una sección. En otro momento explicaré como funciona una sección.
Y la forma de conectarse con la otra parte del widget (la parte servidor, situadada en seccionesAjax) es mediante Ajax. Insertas en el widget alguna funcion javascript que haga una consulta a consultasAjax.php?seccion=nombreWidget.

Mi idea es que el servidor ajax envíe únicamente json, nada de “html prefabricado”. Enviar json es como si digo que sólo se envía información, javascript ya construirá lo que quiera con esa información. Pero además un widget no solo puede acceder a su servidor ajax, puede acceder a cualquiera (o por lo menos intentarlo). De esta manera conseguimos que todo el sistema interactúe entre sí.

Para no tener que escribir tanto llamare al servidor ajax serax
Un ejemplo. Ahora mismo existe un serax que devuelve la lista de amigos del usuario. Yo lo uso para el widget que lista amigos pero también podría usarlo otro wiget que también accede al servidor ajax de tablones para mostrar una lista de los ultimos tablones de sus amigos.

Analicemos más a fondo el ejemplo. Creas un widget y te conectas a serax para pedirle la lista de amigos. Como te devuelve un json almacenas esa lista de usuarios y a continuación por cada uno de esos usuarios vas pidiendo el ultimo blog a serax que te devolvera json con el título y contenido del blog que le pidas. Despues con esos datos puedes mostrarlos en una tabla o como quieras, tabla creada usando javascript.

Después imagina que cuando haces click sobre el nombre de un amigo de esa lista de blogs quieres que te muestre el numero de visitas del perfil del usuario al que haces click (es una chorrada pero por poner un ejemplo). Pues pones que cuando haga click en ese enlace llame a un determinado serax (el que contenga esa información) y depués la procesas y añades un div (por ejemplo) con esos nuevos datos.

Por supuesto, no puedes acceder a información a la que no tengas acceso. Si te pones a pedir fotos o blogs de gente que no son amigos (no tienes acceso) el serax no te devolverá esa información.

Como siempre digo, el nuevo cutrenti esta basado 99% en widgets y todas las secciones estan hechas usando esta tecnología así que cualquier widget que aparezca en la versión “oficial” sera perfectamente compatible con widgets hechos por terceros. Incluso si algún widget se usa bastante o es ve útil se podría incluir en la versión oficial. Con versión oficial me refiero a los widgets que aparecen por defecto.

Más adelante haré manuales con ejemplos prácticos que es más sencillo de lo que parece.
Un saludo y espero no haberos liado mucho!

You may also like...

2 Responses

  1. Ana dice:

    Yo suelo usarlos en alguno de mis blogs y lo mejor que puede tener un widget, a parte del tema, es que se pueda customizar para poder adaptarlo al diseño de nuestro blog. Aquí tenéis como ejemplo estos: http://www.tablondeanuncios.com/widgets/

  2. Merely wanna input on few general things, The website style and design is perfect, the subject matter is very wonderful. “To the artist there is never anything ugly in nature.” by Franois Auguste Ren Rodin.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *