Atención: rayada técnica. En resumen: los comentarios en mi blog vuelven a estar numerados de forma coherente, teniendo en cuenta el número de páginas de comentarios y todo eso.

Y ahora a la manteca.

Hace unos años, creé un pequeño script para numerar comentarios en el blog. Funcionaba bastante bien, aunque era un poco enrevesado (y nada optimizado, diría yo).

Sin embargo, por aquellas cosas del ancho de banda, los amos de La Coctelera dividieron los comentarios en páginas, de forma que ahora se muestran de 50 en 50, para no saturar. Cuando introdujeron esta característica, mi script se volvió loco, como lo que los comentarios siempre iban del 1 al 50, es decir, la cuenta era en la página en la que estaba.

Esto apestaba a culo de camello en celo, por supuesto. Lo suyo sería que el script tuviera en cuenta cuántas páginas de comentarios había para empezar la numeración de la página actual de forma coherente (si estoy en la tercera página de comentarios y hay 50 comentarios por página, el primer comentario de la página será el 101, y así sucesivamente).

Para arreglar esto intenté usar una biblioteca Javascript absolutamente cojonuda llamada jQuery. Haciendo pruebas con Firebug llegué a una cantidad absurdamente baja de líneas de código para obtener lo que quería.

 $(document).ready (function ( ) {
   commentsPerPage = 50;
 
 
   pagerText = $("body").find (".page_number").text ( );
   if (pagerText.match (/P\341gina ([0-9]+) de ([0-9]+)/)) {
     pageNumber = RegExp.$1;
     totalPages = RegExp.$2;
   } else {
     pageNumber = 1;
     totalPages = 1;
   }
   startingCommentIndex = (((pageNumber - 1) * commentsPerPage) + 1);
 
 
   $("#comentarios").find (".colcomment").each (function (i) {
         $(this).prepend ('<p class="commentIndex">' + (i + startingCommentIndex) + '</p>');
   });
 });
 

El problema es que eso no funciona ni a tiros, porque por desgracia, uno no puede cargar scripts en la sección head de la página. El único sitio en el que puedes cargarlos es a través del panel de administración, en la sección Sobre mí, con lo que el orden de carga de la página influye, y mucho. El código que les muestro, de hecho, arroja un error que dice que $("body") es un objeto nulo.

Frak.

Por lo tanto, he tenido que volver al viejo estilo y currarme el código Javascript completo para poder obtener lo que quería. El método es esencialmente igual que el de la versión original, con la salvedad de que primero determino en qué página de comentarios me encuentro para saber a partir de qué número debo empezar a contar. Como siempre, disponen del código fuente (nuevamente no muy optimizado) para su guarreo.

Si notan algo raro en la numeración, estilos que se han ido a tomar por culo y esas cosas, dejen un comentario por ahí, que ya lo arreglaré dentro de dos o tres años.