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