¡Salta! tm
Feed Estás viendo el archivo de la etiqueta: Wordpress
Resaltador de código fuente en Gesbit

Logotipo de Gesbit, por D-MO Una de las cosas que echaría de menos de WordPress, si al cabo termino usando Gesbit, sería el plugin Wp-Syntax. Este plugin, basado en la librería de PHP Geshi, es estupendo para resaltar código fuente de no pocos lenguajes de programación (decenas de ellos), en el contenido de las entradas y también de los comentarios del weblog.

Pues bien, otro tipo de plugin todavía no, pero, similares a Wp-Syntax sí que son posibles en Gesbit, así que me he puesto a ello, y, basándome en Wp-Syntax, Gesbit puede ya resaltar el código fuente en el contenido de las entradas y en los comentarios. Esto de los plugins es un vicio. Ayer añadí otro que sustituye ciertos "símbolos" por los correspondientes "emoticonos".

Esto último lo hace WordPress de serie, pero, he visto mejor añadirlo como un plugin más. Y ya van tres los plugins conque cuenta Gesbit. Los mencionados y el que resalta las palabras claves que se estén buscando, en un momento dado. Desarrollarlos me ha servido, entre otras cosas, para descubrir fallos en el "sistema de plugins".

Sistema de plugins, por cierto, muy verde aún, pero, que, ya da algo de juego, como se puede ver por los plugins que ya es posible llevar a cabo. Así que ya ves. Por lo que te cuento, sabes que estoy liado con Gesbit. De hecho ya no sé el tiempo que le he dedicado al asunto. A ver si de una vez documento lo que me queda por documentar y veo de ponerme a usarlo, por fin.

Categorías: Software
Escribo o no escribo…

Logotipo de Gesbit, por D-MO Describo o no lo hago... Vale. Hace tiempo que Gesbit superó mis expectativas. Si me hubiera conformado con lo que en principio iba a hacer, hace tiempo ya que podría haber publicado una primera versión de Gesbit, y que podría haber comenzado a usarlo.

Pero... a cada momento se me han ido ocurriendo cosas "que no pueden faltar"... y claro, así no hay quien termine nada. Lo último de lo último ha sido los usuarios. Esto es, Gesbit soportaba múltiples usuarios, pero, aún no había añadido la forma de poder añadir nuevos usuarios, en primer lugar.

En segundo lugar... no pensaba en distintos privilegios para distintos usuarios. Iba a ser "o todo o nada". Los usuarios iban a ser todos administradores del sitio y podrían hacer todo lo que un usuario de Gesbit pudiera hacer. Pero, al tocar el tema de los usuarios...

Quise, digo, ver qué pasaba si trataba de dar a los usuarios distintos privilegios. Por supuesto, como no podía ser de otro modo, recogí ideas de WordPress, otra vez relativas al menú de la administración de Gesbit, de modo que cada "item" especificara unos permisos de usuario mínimos para ser mostrados o no.

Pero, el caso es que llevo unos días un poco triste, no sé, no se me dan las cosas como me gustaría, y, viendo cómo se lo monta WordPress con los distintos "roles" de usuarios... como que me echaba para atrás pensando que no lo entendía, que me parecía demasiado complejo para mi cuerpo...

Pero, entonces, casi sin comerlo ni beberlo, fui implementando un sistema de "roles", que, para mi sorpresa (todavía no me lo creo), parece funcionar bastante bien. Pero, yo no tengo experiencia en estos temas, y, es por esto, además de porque la complejidad del "sistema" en Gesbit es infinitamente menor que en WordPress, pienso, ya digo, que algo se me está escapando.

De hecho, he guardado una versión de Gesbit que he dado en llamar "mono usuario", porque, desde que me puse con ello, temo que me vaya a caer con todo el teatro. Y que cuanto más suba, más dura va a ser la caída, como no puede ser de otra manera.

Ahora mismo, con todo lo que haya que revisar, Gesbit "parece" (insisto en que no me lo creo, en que algo va a darme en la frente y despertaré y tendré que desdecirme, pero, el que avisa, etc.) permite tres tipos de usuarios: administradores, editores y autores.

Los usuarios administradores lo pueden todo. Los usuarios editores pueden añadir entradas y páginas, así como categorías y etiquetas (con su descripción), manejar términos, comentarios e incluso editar y borrar entradas "ajenas". Los usuarios autores pueden escribir entradas y páginas, así como editar estas.

Y en esas estamos... ahora mismo es posible añadir nuevos usuarios, especificando su "rol", editarlos, y, por fin, editar el "profile" de cada usuario, incluyendo un "mini sistema" que permite ampliar dicho "profile" con más opciones. Para esto último he vuelto a recurrir a WordPress, puesto que he copiado la estructura de la tabla "usermeta" en la base de datos.

En fin. Que ya veremos si dentro de un tiempo (puede que unas horas... unos minutos...) no tengo que escribir de nuevo para desdecirme. No puede ser tan sencillo... simplemente, no puede ser tan sencillo de implementar los diferentes "roles" de usuario. Algo se me está escapando y me va a reventar en toda la boca. ¡Zas!

Categorías: Software
Sigo ahí, documentando, pero…

Logotipo de Gesbit, por D-MO Ahí sigo, documentando Gesbit. Pero es complicado no pensar en nuevas características, incluso en algunas que en principio no iban a estar presentes. Me estoy refiriendo a la instalación de Gesbit, que, en un primer momento, no iba a existir, es decir, hay que hacerla "a mano".

La verdad es que no es complicado realizar la instalación de Gesbit "a mano". Se cuenta con un archivo que contiene las consultas SQL necesarias para crear las tablas que son menester, junto con ciertos datos "por defecto", como algunas opciones, una entrada y comentario de ejemplo, etc. Este archivo puede importarse, sencillamente, desde un programa como phpMyAdmin, por ejemplo.

Sin embargo, no sé si acaso se ganará algo desarrollando un "instalador" al estilo de WordPress. Tal vez, en algunos casos, no se dispone de un programa como phpMyAdmin, y, que el propio sistema (Gesbit) pueda crear las tablas necesarias, junto con los datos "por defecto", puede que, lejos de ser algo baladí, llegue a resultar útil de veras.

No sé. La verdad es que el asunto de los requisitos mínimos para "correr" Gesbit, así como el asunto de la instalación del mismo, es algo que, desde el principio, daba por asumido. No pensaba hacer nada al respecto, sencillamente, porque no lo consideraba necesario. Y punto. Pero, me está entrando el gusanillo... Y como uno lleva días que casi no hace otra cosa que documentar lo hecho... pues no sé. Ya veremos.

Categorías: Software
Localización de fechas en Gesbit

Logotipo de Gesbit, por D-MO Hasta ahora en Gesbit la localización de las fechas (la traducción a distintos idiomas de nombres de meses, días, etc.) venía siendo muy sencilla. Se apoyaba en cierta clase estática de nombre "DateUtils" que, hasta hoy, tan sólo localizaba los nombres de los meses.

Pero había algo que me preocupaba desde hacía tiempo, y es, ¿cómo localizar las fechas de las entradas? Es decir, cómo conseguir que la fecha de una entrada pudiera mostrarse como "Martes, 21 de Julio de 2007", por ejemplo.

Esto ya no era tan sencillo, puesto que implicaba construir una función similar a "date()", que, recibiendo una cadena con el formato adecuado, retorna la correspondiente fecha debidamente formateada... pero en inglés, of course.

En WordPress la localización está muy lograda, desde mi humilde punto de vista, y claro, me había enamorado de cierta función "mysql2date" que hace, precisamente, lo dicho: actuar como la función "date()", pero, con la capacidad de localizar las cadenas empleadas en el formato de la fecha.

Llevaba ya un par de días dando vueltas al asunto y al cabo, he adaptado la clase "DateUtils" de modo que ya no es estática, sino que en su propio constructor localiza determinadas cadenas (nombres de meses, días, etc.) y las guarda en variables privadas para que estén disponibles.

Además, y lo más importante, he añadido la función "mysql2date" en la clase "DateUtils", de tal manera que ahora sí es posible para Gesbit localizar la fecha de las entradas, exactamente igual que como se hace en WordPress. Al final va a resultar verdad que Gesbit va a ser una mala copia de WordPress, dada la cantidad de ideas, código y demás que estoy recogiendo de este proyecto.

Pero, ante ciertas cosas, no tengo más remedio que rendirme a la evidencia, y, si hubiera tenido yo que escribir una función similar a la "mysql2date()" que se encuentra en WordPress... quién sabe si lo hubiera logrado, además, por otro lado, de estar reinventando la rueda... pero no es excusa. Y el caso es que hoy Gesbit puede hacer una cosa más que ayer no podía. Gracias al proyecto WordPress.

Categorías: Software
Exportando datos desde Gesbit

Logotipo de Gesbit, por D-MO Gesbit (todavía lo llamaremos así) ya permite exportar las entradas, comentarios, categorías y etiquetas. Lo hace volcando el contenido en un archivo XML muy similar al que utiliza WordPress

Sí; otra vez he copiado de WordPress. Pero, es que desde que me puse a trabajar en el importador de Gesbit que importa datos de Wordpress, no he tenido por menos que seguir su estela, dentro de mis posibilidades.

Vamos a ver. WordPress exporta sus datos en un archivo RSS extendido (de ahí WXR), de modo que puede luego importarlos desde dicho archivo, pero, además, permite que un lector de archivos RSS pueda leer el contenido del archivo.

Quiere decirse que puedes exportar los datos de tu weblog y leer tu blog "offline", desde tu lector de RSS favorito. Para conseguir esto, WordPress sigue el estándar RSS, añadiendo algunas etiquetas que no entran en dicho formato, precisamente, las que tienen que ver con los datos de las entradas como su tipo, si puede comentarse o no, etc.

Los lectores RSS, simplemente, ignoran esos datos, y leen todo lo demás. Esto sólo me ha parecido tan estupendo que no he tenido por menos que copiarlo en Gesbit. Y ahora Gesbit ya exporta datos en un formato RSS extendido, y es capaz también de importarlos.

Sólo me queda un escrúpulo. Y es que, ¿por qué no exportar los datos de Gesbit en el mismo RSS extendido en que lo hace WordPress? Bueno. ¿Tal vez por vaguería? ¿Acaso por un prurito de "no, es mi sistema y exporto mis datos con mi propio formato"? Si lo hiciera así podrían exportarse datos de Gesbit a WordPress.

Lo cierto es que tampoco quisiera atenerme al formato de WordPress, no sé. En primer lugar la tabla "posts" de la base de Gesbit es de momento bastante más modesta, más simple. En segundo lugar... quién sabe en un futuro...

Ese es el escrúpulo que me queda. Por lo demás, pues, lo dicho, que Gesbit permite ya la exportación de datos y su importación desde archivos WXR de WordPress o los que genera el propio Gesbit. No me canso de hacer pruebas, de ver el sistema con cientos de entradas... esto va a ayudarme a poner muchos puntos sobre muchas íes, supongo. :P

Categorías: Software
Importando datos de WordPress: la película

Logotipo de Gesbit, por D-MO Bueno. Al cabo parece que me aclaro con el asunto de importar datos desde blogs gestionados con Wordpress a Gesbit. Si bien ahora me ha picado el asunto, y, quisiera ver cómo puede Gesbit, a su vez, exportar datos, y también importarlos, claro está.

Sin embargo, el "GbWpImporter" parece funcionar más o menos bien, después de no pocas pruebas, y, aunque todavía falta limar algunas cosas, sobre todo relativas al reemplazo de algunas entidades de caracteres que quedan por ahí... he preparado una película "flash" donde puedes ver al "importador" en acción.

En esta ocasión se trata de una película "sin pausas". Es decir, no es como las anteriores, que podrían decirse "interactivas", sino que esta empieza y acaba del tirón. En fin. Echadle un vistazo si os apetece y os da la gana y queréis. :P

Para ver la película susomentada, sigue este enlace.

Actualización: En vista de ciertos problemas con el ancho de banda, y de que la película que se enlazaba aquí puede considerarse obsoleta, retiro el enlace correspondiente, y te pido disculpas por cualquier inconveniente.

Categorías: Software
Importando datos de WordPress

Logotipo de Gesbit, por D-MO Ayer a la mañana me propuse echar un vistazo a cómo y de qué manera podrían importarse datos a Ges... ¿bit? ¿blog? (ya veremos...) desde WordPress. Y bueno, el caso es que pienso seguir con ello hoy, puesto que los resultados de ayer fueron bastante buenos.

Por primera vez he visto a Gesbit (dejémoslo por ahora como está, para entendernos) "gestionando" más de 450 entradas, justamente, las que suman este weblog que lees ahora y otro que tengo funcionando también sobre mis NeoPlugins.

Me venía bien ese "jarro de agua fría", si es que en realidad lo ha sido, es decir, que, hasta ahora, en Gesbit las pruebas se hacían con gaseosa, como tiene que ser, pero, aunque sigue siendo información para pruebas, lo cierto es que ver a Gesbit con más de 450 entradas y media centena de categorías... como poco me impactó.

Ah... el sistema de importación de datos. Primero me propuse conectar con la base de datos de WordPress que se quería importar, y empezar a pedir datos y más datos para luego importarlos a Gesbit. Sin embargo, me acordé que WordPress tiene su propio sistema de importación y exportación de datos, que ellos mismos llaman WordPress eXtended RSS, o WXR.

Sabiendo esto... es decir, sabiendo que desde WordPress es posible generar un archivo XML con todos los datos de tu blog, y que desde el propio WordPress también es posible importar dicho tipo de archivos, lo demás fue más o menos sencillo, aunque me llevó todo el día: ¿cómo lo hacen?

Y así es que he podido copiar buena parte del código que se emplea en WordPress para importar datos desde su propio XML, de modo que Gesbit pueda usar el mismo sistema, que, por otro lado, y, aunque no lo parecería en un principio, parece funcionar muy bien.

Gesbit importa desde los archivos XML de WordPress todo lo que Gesbit soporta hasta ahora. Es decir, Gesbit recoge de dicho archivo las entradas (o "posts"), las categorías y etiquetas de las entradas, y los comentarios de las mismas. En menos de 30 segundos Gesbit pasa de tener 1 entrada a tener cientos de ellas, con sus correspondientes categorías, comentarios, etc.

Sin embargo, ayer quise ser más papista que el papa, como suele decirse, y la clase que escribí para que haga las veces de importador "base", y la que escribí basándome en el importador de archivos XML del propio WordPress... necesitan pasar por el mecánico pero ya. Y es que llevo a cabo la importación, por decirlo así, en tres pasos, que no sólo pueden, sino que deben quedar reducidos a dos.

Y eso es todo. Espero tener algo decente para cuando acabe el día, aunque, bueno, no sé porqué me tomo esto con prisas, cuando, en realidad, no hay ninguna, ni puede haberla.

Categorías: Software
Paginación de comentarios en Gesbit

Logotipo de Gesbit, por D-MO De la misma manera en que pueden paginarse las entradas en Gesbit, una cosa que tenía pendiente, era que la misma posibilidad se diera para los comentarios de una determinada entrada. Lo que pasa que lo mío con los "paginadores"... hasta hace poco me daba hasta miedo, no te digo más.

Sin embargo, hoy, casi sin darme cuenta, en no demasiado tiempo y sin demasiadas complicaciones, tenía lista la "paginación" de comentarios en Gesbit. Por si fuera poco, el trabajo me ha servido en varios sentidos. Por ejemplo, he encontrado un "bug" en la generación de Feeds, concretamente, de los feeds que contienen comentarios...

Al principio fue la línea de comandos... digo, ejem, al principio Gesbit no pensaba en paginar los comentarios. Punto primero. Como no sé porqué me olía que no estaba bien dejar esa consulta SQL así, sin límite de ningún tipo, preparé el método correspondiente de la clase "GbDB" para que admitiera argumentos que, opcionalmente, pusieran freno a la consulta SQL que "trae" los comentarios de una entrada.

Después, al llevar a cabo la clase "FeedMaker", que así he dado en llamar a la clase encargada de crear Feeds para las "peticiones" ("request") correspondientes a este tipo de formato, digo, al llevar a cabo la clase quise limitar el número de comentarios que se mostrarían en el Feed, pero, lo hize de forma equivocada.

¿Por qué? Pues porque en realidad no estaba limitando la consulta SQL que yo también he dado en llamar, con razón se llama así, "big query", es decir, la consulta SQL que trae de la base de datos unos u otros en función de la correspondiente petición a Gesbit.

Cuando se trata de mostrar una sola entrada, ya la clase "Query" de Gesbit se encarga de recoger también los comentarios de una entrada, es decir, que a la clase "FeedMaker" esa tarea se la dan hecha, ella viene después, precisamente, en caso de que el resultado de la "query" haya que mostrarlo en formato RSS.

Pues bien, yo estaba cogiendo los datos en la clase "FeedMaker" y "cortando por lo sano" el Array que los contiene, impidiendo, en definitiva, que se añadiesen más de 10 comentarios al Feed. Obviamente es un planteamiento fatal, porque, de lo que se trata, además de no mostrar más comentarios en el Feed que nos de la gana, es de evitar pedir a la base de datos 300 comentarios para al cabo mostrar diez...

En otras palabras, la consulta que trae los comentarios ha de ser una consulta limitada sí o sí. No sólo ahora, porque ya se piensa en la paginación de comentarios, sino también antes (que no se hacía), porque, una entrada puede llegar a tener muchos comentarios... y yo mucho respeto por las bases de datos, el tráfico web y los servidores.

¿Me hubiera dado cuenta tarde o temprano? Probablemente, en cuando me pusiera con el asunto de la paginación de los comentarios, como así has sido. Además de lo dicho, el principal método de la clase "Query", encargado de dilucidar qué tipo de petición se hace, y de construir la "gran consulta SQL" de Gesbit, se ha visto también reducido, pues he separado el "traer" los comentarios a otro método, como era lo suyo, por otro lado.

Gesbit, como WordPress, tienen similares clases "Query". De hecho yo cogí la idea de ahí, si bien es cierto que, en anteriores proyectos, "la solución" a las "peticiones" también pasaba por algo parecido. Por ejemplo recuerdo Loturak, pero, también aPHP: en ambos proyectos ya había una especie de "big query".

Finalmente diré (tengo ya otra entrada en la cabeza, pero, no quiero alargarme, y además no trata el mismo tema), que añadir una nueva opción a Gesbit de modo que pueda determinarse, precisamente, el número de comentarios a mostrar "por página", ha sido de lo más amable. No me ha costado nada hacerlo, en un momento la nueva opción estaba preparada. Casi da miedo saber que puedo añadir opciones así... :P

Categorías: Software
¿SMC, SGB, GB?

¿Recuerdas la canción aquella que decía "Me estoy volviendo loco, me estoy volviendo loco, poco a poco, poco a poco..." ¿Eh? Pues me he visto tarareándola hace un rato. :P

A ver. El nombre de SMC me trae de cabeza. En principio, SMC significa "Sencillo manejador de contenido". Y, además, pretende haber cierto guiño "gracioso", puesto que SMC es al revés CMS, o sea, un verdadero "Content Management System".

Pues bien. El caso es que no me convence en absoluto lo de "manejador", en primero lugar, porque es una traducción "mala" de "management", y, en segundo lugar, porque es una palabra que ni siquiera existe en el diccionario.

Además, la idea de mantener junto con las siglas "SMC" su significado en español "Manejador de contenidos" (aunque se eligiera el inglés como idioma) complica el asunto, porque, si alguien busca "manejador" no lo encontrará en el diccionario.

Por si fuera poco, SMC está muy lejos de ser un gestor de contenidos. Es mucho decir para él. Y tal vez no sea mi intención llevar a cabo un completo gestor de contenido, claro está, suponiendo que pudiera hacerlo, cosa que yo mismo dudo.

Afortunadamente, SMC no es un término "común", ni "manejador" tampoco, así que me he dicho, está bien, ¿y si renombras SMC por SGB, es decir, "Sencillo gestor de bitácoras"? Y bueno, he probado a ver cuánto me costaría hacerlo y al cabo, con la ayuda de las herramientas adecuadas, no ha resultado tan complicado.

Pero, una vez tenía SMC renombrado a SGB (obviamente guardo copias de todo lo anterior) me he preguntado, mente inquieta, ¿a qué viene lo de sencillo? Eres modesto, es cierto, pero, ¿no deberían otros calificarlo de sencillo o complejo? ¿Para qué incluir el sencillo en el nombre?

Así que, cuando ya tenía SMC "Sencillo manejador de contenidos" reducido a SGB "Sencillo gestor de bitácoras", me he dicho, prueba a renombrar "SGB" por, simplemente, GB, es decir, "Gestor de bitácoras"... y así lo he hecho, y así estoy viendo ahora mismo el sitio, ya como un sencillo "Gestor de bitácoras" sin el sencillo en el nombre.

Ahora bien, ¿GB? ¿Gestor de Bitácoras? Esto último sí puedo decir que es el invento, puesto que, al fin y al cabo, gestiona entradas siguiendo un orden cronológico, pero, no sé, no sé, me parece que GB queda muy corto, muy raro, muy... no sé... y ya suena la cancioncilla otra vez en mi cabeza. :P

Envidio a WordPress. Porque su nombre, para mi gusto, "lo dice todo". Pero, ¿GB? ¿Qué puede deducirse de GB sin saber que se trata de Gestor de bitácoras? Si no es ya que este mismo significado es muy general, en el sentido de que cualquier sistema similar puede llamarse "Gestor de bitácoras" con todo rigor.

Así que no sé... escribo aquí esto para ver si tú que lees este blog, o bitácora, puedes echarme un cable. Tal vez se te ocurra algo al respecto y cualquier idea, comentario o sugerencia, te aseguro que será bienvenida y tenida en cuenta.

Categorías: Software
No son las mismas bases de datos

Me escribe alguien (hola Álvaro) para decirme que le parece que SMC es una pasada, que debe ser que no lo ha visto bien, y que ya sería la ostia (creo que ha dicho la ostia) si su base de datos fuera compatible con la de Wordpress.

Sin embargo, y aunque en algunos aspectos así es (he copiado de la base de datos de WordPress cómo trata los términos, las taxonomias, categorías de entradas, de enlaces, etiquetas, etc.) en otros aspectos no son compatibles, ni hay intención de que lo sean.

Puede parecer una contradicción, porque, puestos a copiar... pero, lo cierto es que SMC es un proyecto personal, que no pretende sustituir a Wordpress... ni muchísimo menos. Bastará conque pueda usarlo yo en mis weblogs, y bueno, puesto que la idea es publicar su código bajo una licencia libre, lo podrá usar también quien quiera hacerlo.

Y digo que puede parecer una contradicción, porque, los dos weblogs que mantengo ahora mismo están basados en Wordpress, así pues, ¿qué va a ocurrir con su contenido si alguna vez SMC entra en escena? Pues... que tendré que preparar una especie de "importador de datos" desde Wordpress a SMC.

O eso, o, en última instancia... incluso optaré por desechar el contenido actual de los weblogs... si bien esta idea no me hace demasiada gracia, pero, todo sería por un "comenzar de nuevo", ya con SMC como "manejador" de los weblogs.

Algo podrá hacerse, supongo. Como estoy cogiendo bastante maña con la base de datos de Wordpress, digo yo, que, cuando me pusiera a hacer un "importador de datos" ya tendría algo hecho, aunque, no quiero ni pensarlo, no estoy diciendo que el asunto sea sencillo o resulte facilón.

Al contrario. Tratando de datos el asunto se torna en peliagudo. Se perderán algunos datos, otros "no servirán", no serán tenidos en cuenta, en fin, tal vez pueda recuperarse el contenido de las entradas, acaso alguna otra cosa, pero, básicamente, no podrá cambiarse desde Wordpress a SMC alegremente.

¿Un error? Pues, depende. Si la idea hubiera sido ponerse a competir con Wordpress... o intentarlo, es probable que pudiera considerarse una buena cosa partir de una base de datos compatible, o, cuando menos, estar decidido a preparar un los Scripts necesarios para realizar una importación de datos lo más digna posible.

Pero, SMC es un proyecto personal (repito), que no tiene intención de competir en ningún lado. No pretendo que nadie se cambie de Wordpress u otro sistema parecido a SMC. Nada de eso. Estoy haciendo SMC porque es una "vieja espina" que tenía clavada. Por ver si al menos soy capaz de hacer algo medianamente digno.

Y creo que lo estoy consiguiendo. Si bien es cierto que quedan tropecientas cosas por hacer, que lo que hay hecho necesitará más de un repaso, que puede contener no pocos errores, después de esto, creo que SMC no está mal del todo, y que incluso ya es hora de sacarlo de la carpeta de "pruebas" para llevarlo a la carpeta de "proyectos".

Categorías: Software
« Entradas anteriores