Las novedades de WP Carousel 0.4
Desde la publicación de WP Main Menu 0.2 he estado trabajando en la siguiente versión de WP Carousel, la 0.4. Esta nueva versión será muy diferente a la anterior, comenzando porque estoy reescribiendo el código desde 0, pertiendo de un archivo en blanco y sin copiar ninguna línea de código de la versión anterior, pero veamos punto por punto todas las novedades que traerá esta versión.
Reescrito desde 0
Puede parece una estupidez, pero he decido reescribir el código del plugin desde 0, y seguramente os preguntaréis el motivo. Pues bien, el principal motivo es que el código actual de WP Carousel deja mucho que desear. No es demasiado claro y tiene partes innecesarias. Además de los motivos que aporta el propio código, he decido cambiar el concepto del contenido del carrusel y es por esto por lo que me es más fácil partir de 0 que de un código poco eficiente y algo lioso.
También he decidido añadir una función nueva al propio código, una función que la mayoría espero que no tengáis que usar para nada y es la posiblidad de activar un modo de depuración (debug) en las funciones. El modo debug consiste básicamente en que al finalizar la función, se muestra un registro de todo lo que ha hecho la función y de los errores que ha encontrado durante su ejecución.
Para ello, he creado dos matrices básicas en cada función: $log y $errors. La primera almacena un registro de actividad, indicando que ha duplicado una variable, ha eliminado un elemento, ha calculado una URL, ha generado un número, etc. Por supuesto, en ningún caso almacena información personal como nombres de usuario o contraseñas. La segunda almacena un registro de errores, pero ojo, no errores de PHP ni fallos en el código, sinó errores de lógica o fallos en el uso del código.
¿Cuál es la diferencia? Pues por ejemplo, si tratamos de darle un valor no numérico al orden de los contenidos, aparecerá un error en esta matriz. Ese error no es un error de código, ya que no está mal escrito, sino un error de lógica debido a que los elementos se han de ordenar de forma numérica, y mezclar otros caracteres no haría sino dificultar el orden. Otro posible error es que se envíe un parámetro que pida ejecutar una acción que el plugin no entiende. Se almacenará otro error y se indicará el valor que tiene este parámetro erróneo.
Este modo de depuración no está en todas las funciones, sólo en aquellas en las que pueda haber errores con más facilidad (realmente la mayoría de las funciones tienen esa posibilidad, sin embargo algunas, como la que muestra el formulario de inserción de contenidos, carecen de ella, ya que simplemente se muestra código HTML). Por supuesto, activar el modo debug es opcional y si hay errores graves que puedan dañar los datos, el plugin mismo tratará de detenerse para evitar dañar la información.
Contenido redefinido
Hasta ahora la idea del carrusel era mostrar los artículos de una o más categorías. Al poco tiempo añadí la posibilidad de insertar contenido personalizable en el carrusel, lo cual en realidad añadía un sinfín de posiblidades (pudiendo personalizar la URL de destino y la de la imagen, se puede añadir un elemento hacia cualquier página y artículo del blog, además de cualquier otra página externa). Sin embargo muchos habéis pedido que añadiese páginas y artículos individuales, y era obvio que para hacer esto había que rediseñar completamente la página, y aprovechando, he cambiado el concepto.
¿Por qué no añadir el contenido como lo hacemos en WP Main Menu, con una bonita interfaz, un par de listas y una tabla que muestre todo lo que está ahora mismo en él? Así que a partir de ahora podremos añadir 4 tipos de contenido diferentes: categorías, artículos individuales, páginas y contenidos personalizados.
Sobre estos tipos hay poco que decir. Las categorías actuan del mismo modo que funciona ahora mismo WP Carousel, sólo que a partir de ahora en lugar de añadir las categorías separadas por comas (,), se añadirán en bloques diferentes y totalmente independientes y como muchos habéis pedido, se podrá seleccionar una opción para que los artículos de dicha categoría no se muestren en el índice de WordPress . Los artículos individuales se podrán ocultar igualmente, y permite añadir un artículo de cualquier categoría al carrusel, independientemente de que la categoría se muestre o no. Las páginas también tendrán un lugar en el carrusel y funcionarán del mismo modo que los artículos, sólo que estas no se podrán ocultar del bucle. Por último, el contenido personalizado sigue existiendo, y el uso es el mismo que ahora.
Interfaz rediseñada
Dejando de lado la tabla de contenidos, toda la interfaz se ha rediseñado y el menú se ha redistribuido. Este úlitmo pasará a estar en el bloque de Entradas, Multimedia, Enlaces, Páginas y Comentarios, compartiendo espacio con WP Main Menu. Además para añadir nuevos carruseles dispondremos de un enlace en el menú, lo cual evita un paso intermedio. La interfaz se dividirá en bloques y será muy diferente a la actual.
Para comenzar, la página principal de WP Carousel no servirá para añadir carruseles, sinó que mostrará algunos datos sobre el plugin, como el idioma en el que está (el mismo que WordPress) y el recuento de carruseles. De todos modos este contenido puede variar, ya que no tengo del todo claro qué debería mostrarse ahí (se aceptan sugerencias :) ).
Las páginas de opciones de cada carrusel se dividirán en 3 bloques: la tabla de contenidos, el formulario de inserción / edición de contenidos y las opciones de aspecto y disposición. La tabla de contenidos ya la he comentado antes, mientras que el formulario de inserción y edición de contenidos, junto con las opciones de aspecto y disposición son totalmente nuevas.
Sobre el formulario, consite en dos pestañas diferentes en el caso de inserción y en una sóla en el de edición. El formulario es diferente en el caso de añadir contenido creado con WordPress (categorías, artículos y páginas) y contenido personalizado. El único contenido que aceptará edición será el contenido personalizado. Os podéis preguntar por qué, y la respuesta es muy simple. Añadir un contenido creado con WordPress es cosa de segundos (seleccionar el tipo, seleccionar el contenido, establecer el orden y seleccionar si se quire mostrar o no y listo), mientras que el contenido personalizado requiere de título, descripción, URL de la imagen, URL del enlace y orden, cosas que requieren más tiempo que las anteriores. Además, algunos elementos, como la imagen que se mostrará, el título, la descripción o la URL del enlace, se modifican desde la página de edición de WordPress, así que no tiene mucho sentido añadir una página de edición de este tipo de contenido en el plugin.
Las opciones de visualización y los themes tienen su propio bloque, con dos pestañas más. La primera permitirá escoger un theme (con el mismo diseño que tiene ahora mismo WP Main Menu), mientras que la segunda permitirá escoger opciones como mostrar u ocultar las flechas o el tiempo de desplazamiento de los elementos del carrusel. Vendría a ser las opciones que hay ahora mismo en WP Carousel.
¿Recordáis aquello de crear X carruseles y luego no poder reducir el número por miedo a perder la configuración? Bien, eso será cosa del pasado, ya a partir de ahora el contenido se añadirá insertando o eliminado índices de la matriz, no definiendo el total de índices, lo cual hace mucho más flexible al plugin.
Exportar, importar y themes
Otras dos nuevas funciones que habrá en la próxima versión serán las de exportar e importar los carruseles, y nos permitirá hacer una copia de seguridad de todo el contenido de todos los carruseles que se nos mostrará como una cadena de texto, la cual podremos copiar a un archivo de texto y almacenar en cualquier soporte. Por supuesto, esta copia de seguridad se podrá editar, ya que simplemente se trata de una matriz serializada y codificada en base64 (para evitar problemas con los caracteres).
Los themes funcionarán de forma similar a los de WP Main Menu, aunque aún no tengo claro del todo cómo será su sintaxis, sin embargo será muy similar. Con los themes se añadirá una infinidad de posiblidades. Adiós a aquello de que no podemos mostrar el contenido con la descripción en la parte de la derecha o con un título en cada elemento: modificando ligeramente el theme se podrá hacer. Y es que la idea de los themes no es otra que simplificar las modificaciones del plugin, evitando posibles errores al modificar los archivos del theme (que sólo tienen funciones que usa el theme) y no modificando el núcleo del plugin.
Estado actual
Bien, lo cierto es que hoy he podido avanzar bastante en el desarrollo del plugin, sin embargo estoy no es así todos los días y muchas veces no puedo dedicarle demasiado tiempo al desarrollo del plugin, así que no fijaré ninguna fecha de publicación. El plugin estará listo cuando esté listo, ni antes y después y lo publicaré cuando acabe de desarrollarlo.
Sobre el estado actual del plugin, lo cierto es que queda mucho por hacer. La interfaz está más o menos completada, aunque queda añadir el contenido.
Las funciones de gestión de contenido están medio completas: añadir y eliminar artículos, páginas y categorías es algo posible en la versión actual, al igual que insertar, eliminar y editar contenidos personalizados. Sin embargo he olvidado añadir en el formulario los campos correspondientes a la imagen y a la URL del enlace del contenido personalizado, así que ninguna de las funciones correspondientes al contenido personalizado están completas. Sin embargo sí que están acabadas las funciones de añadir y eliminar carruseles.
Toda la parte de gestión de themes y opciones está por desarrollar, al igual que todo lo relacionado con mostrar el carrusel y las funciones de exportación e importación.
Así que ya sabéis como va el plugin. Si me preguntaseis por un porcentaje, yo diría que un 25% del plugin está completo, así que quedarían 3 cuartas partes más.
One reply on “Las novedades de WP Carousel 0.4”