Una solución para la paginación de comentarios antiguos | Oloblogger No sólo hemos tenido algunos problemas aquellos que nos hemos pasado forzosa o voluntariamente al nu...

26 de enero de 2012

Una solución para la paginación de comentarios antiguos

No sólo hemos tenido algunos problemas aquellos que nos hemos pasado forzosa o voluntariamente al nuevo sistema de comentarios hilados, agrupados o anidados (nomenclatura a elegir). También los que han conservado el antiguo sistema, igualmente de manera voluntaria o por causa de fuerza mayor, tienen algunos problemillas con ellos.


Los síntomas son distintos, pero el origen de la enfermedad es el mismo. De momento ya tengo conocimiento de dos. Uno es el que ayer comentaba J.Miur respecto a la desaparición del nuevo estilo que hasta ahora estaba insertado en la plantilla. Eso ha provocado que las modificaciones que pudieras haber hecho directamente en esa parte ya no estén y que los comentarios se vean de aquella manera.

La solución es volver a regenerar el estilo, pero si todavía no te lo han borrado de tu plantilla puedes aplicar una pequeña modificación preventiva que se explica en el anterior enlace de Vagabundia.


El segundo problema es el de la paginación de comentarios en posts con más de 200. Aquí lo que ocurre es que no se puede acceder a dichas páginas, siendo imposible ver nada a partir del que hace 201.

Pero también alguien -que no fui yo- ha encontrado una manera de arreglar esto. Se trata de un pequeño JavaScript que aprovechando las variables data oportunas y las direcciones que maneja Blogger para mostrar las distintas páginas, reproduce el sistema de paginación.

Aclaro que no restaura lo que sea que se haya perdido, sino que directamente construye las páginas y los enlaces a ellas con un código alternativo.


Ese alguien es el editor de Simplex Design y a continuación voy a intentar traducir lo mismo que allí podréis encontrar. Cuando no he probado algo lo advierto y esta es una de esas veces porque no tengo el sistema antiguo en ningún post con más de 200 comentarios, aunque siguiendo la lógica del código, debería funcionar y bien.

Y como hace tiempo que no lo digo, recuerdo que los experimentos se hacen con gaseosa y que para hacerlos con tu plantilla real, antes siempre deberías guardar una copia de seguridad por si se te va una tecla de más y borras algo importante accidentalmente.


Recomponer paginación de comentarios


1. Escritorio ► Pantilla ► Editar HTML ► Continuar ► Expandir plantillas de artilugios

2. Añadir estas líneas antes de ]]></b:skin>

#commentpaging {float:right;}
#commentpaging a {margin-right:5px;}

3. Añadir el JavaScript antes de <body> (supongo que también sirve antes de </head>)

<script type='text/javascript'>
//<![CDATA[
function commentpagination(url,comment){
var posturl= url;
var comment = comment;
cmpage = Math.ceil(comment/200);
document.write('<a href="'+posturl+'?commentPage=1">Primeros</a>');
for (var i = 1; i <= cmpage; i++) {
document.write('<a href="'+posturl+'?commentPage='+i+'">'+i+'</a>');
}
document.write('<a href="'+posturl+'?commentPage='+cmpage+'">Últimos</a>');
}
//]]>
</script>

4. Encuentra la línea <b:includable id='comments' var='post'> y justo a continuación insertas la llamada al script

<b:includable id='comments' var='post'>
<span id='commentpaging'>
<script type='text/javascript'>commentpagination(&quot;<data:post.url/>&quot;,&quot;<data:post.numComments/>&quot;);</script>
</span>

5. Graba los cambios.

Actualización: Una mejora propuesta por J.Miur para que no salga la paginación cuando sólo hay una página, sería añadir una condición que saltaría la impresión en ese caso. En verde lo que habría que añadir:

...
cmpage = Math.ceil(comment/200);
if(cmpage>1) {
....... document.write ....... etc etc
}

Cómo funciona


Primero este script toma el número de comentarios del post y lo divide por 200. Redondea el resultado al entero mayor y así se sabe cuantas páginas hay que construir. Por ejemplo, si una entrada tiene 250 comentarios: 250:200=1,25 ► 2 páginas. De esta manera, la primera página tendrá 200 comentarios y la segunda 50.

La dirección a una página de comentarios tiene la estructura:
http://dirección del post.html?commentPage=número de página

Por ejemplo, en la página del autor, la página 2 de comentarios sería así:
http://www.thesimplexdesign.com/2011/02/simplexenews-latest-version-fixed.html?commentPage=2

Una vez conseguidos el número total de páginas de comentarios y la estructura de la dirección de cada página, el siguiente paso es muy simple, sólo escribimos debajo los enlaces a todas las páginas que pudiera haber con un bucle.

¿Vemos otro post al azar por si le encuentras utilidad o quizás prefieres ser más metódico y suscribirte a nuestras entradas por correo? También puedes imprimir este artículo y por supuesto compartirlo en redes sociales si fue de tu agrado.

Compartir
Copy URL

Y muchos más artículos interesantes si nos sigues en...

follow us in feedly

46 comentarios :

  1. Perfecto, Oloman. Gracias por la info. Funciona perfecto :-)

    ResponderEliminar
    Respuestas
    1. Quién más indicado para probar paginaciones que tú, que tienes miles de comentarios en tu haber :)

      Gracias por hacérmelo saber.

      Eliminar
    2. Recién acabo de agregarlo "oficialmente" al blog porque sólo había tenido tiempo de probarlo y reafirmo que anda perfecto.

      Sólo le agregaría un detalle para evitar que se muestre siempre aunque sólo haya una página:

      if(cmpage>1) {
      ....... document.write ....... etc etc
      }

      Vamos avanzando ... pese a Blogger, vamos avanzando :D

      Eliminar
  2. Muchas gracias. Esto me a resuelto por ahora el problema de artículos con más de 200 comentarios.
    En mi caso aún se me sigue abriendo esa molesta página en blanco al clicar Responder de los comentarios anidados. Lo curioso es que no sucede siempre. Una veces sí otras no.
    Muchas gracias por todo y estupendo blog
    Saludos

    ResponderEliminar
    Respuestas
    1. Nadie me ha comentado ningún problema de ese tipo. Sí que en IE, las entradas con comentarios se quedan como congeladas cuando se accede a ellas, pero eso de que ocurra al pinchar en Responder, de verdad que es la primera vez que lo leo.

      Eliminar
    2. Ya está solucionado. Tras no encontrar la solución decidí cambiar de Plantilla para ver si sucedía lo mismo. Y no era así, funciona perfectamente.
      Supongo que algo habrá en mi plantilla. Tiene tantas modificaciones manuales que he perdido la cuenta y no he conseguido dar con el causante del problema que hace que al clicar el Responder actúe de esa forma.
      Como digo he restaurado la plantilla y ahora funciona a las mil maravillas. Y ahora tan sólo me queda ir añadiendo las modificaciones que necesito.
      Por cierto muchas gracias también por la numeración de los comentarios con sub-índices. Fenomenal!!
      Lo dicho muchas, gracias por todo.
      Saludos

      Eliminar
  3. Hola.

    Esto crea links a páginas de comentarios, pero no te muestra los comentarios repartidos por ellas. Todos los comentarios me siguen apareciendo en la primera página. Creo que falta algún IF por ahí... ¿no?

    Saludos.
    David.

    ResponderEliminar
    Respuestas
    1. Este truco era para cuando incorporaron el nuevo sistema de comentarios anidados y dejó de funcionar la paginación en los antiguos. No obstante te debería funcionar si quieres una paginación igualmente. Si tienes menos de 200 comentarios te saldrán todos en la primera página. Para probar por ejemplo a mostrar de 10 en 10, habría que cambiar ese valor en el script:
      cmpage = Math.ceil(comment/10);

      Eliminar
    2. Eso hice pero no me funciona. Creo que eso ocurre porque ese cálculo simplemente sirve para saber cuantas páginas de comentarios con link (1 2 3...) debe imprimir, pero eso no quiere decir que al pulsar en dichos links muestre los comentarios por páginas.

      Para mostrar los comentarios por páginas supongo que debería de llamarse a otro script que, dependiendo de la página que aparece en la url actual, muestre unos comentarios (los que se corresponden con dicha página) y otros no. Pero mi conocimiento de CSS es bastante pobre.

      Eliminar
    3. Espera, hace tiempo de esto y no me acordaba bien. Lo siento pero erré en mi respuesta.

      Las páginas las crea Blogger de 200 en 200 por lo que dividamos como dividamos, siempre tendrán 200 comentarios. Efectivamente, el script lo único que hace es averiguar las páginas que Blogger ha creado y luego muestra enlaces a la 1, 2, 3, etc. Por cierto que lo de 3 es un decir porque pienso que más de 400 comentarios debe ser poco habitual :)

      Por tanto, si tienes más de 200 te servirá para algo, pero si no, este script es inútil.

      Eliminar
  4. Existe algún JavaScript que al entrar a tu blog te abra una pestaña nueva (o pagina? para mostrar otras cosas a la gente que entra en nuestros blogs. gracias

    ResponderEliminar
    Respuestas
    1. Amplía esa explicación ¿Lo que quieres es que cuando alguien acceda a tu blog, automáticamente se abra una segunda pestaña con otra página distinta?

      Eliminar
  5. Hay alguna forma de paginar en el nuevo sistema de ocmentarios?

    ResponderEliminar
    Respuestas
    1. En el nuevo sistema funciona sin problemas que yo sepa ¿tienes alguna entrada con más de 200 que no te funcione?

      Eliminar
    2. Tengo muchas entradas con mas de 200 comentarios, y busque alguna forma de paginarlos pero no encontre ninguna, de todas formas me pase a disqus y la verdad estoy muy contento, gracias por responeder.

      Eliminar
    3. Yo es la segunda o tercera vez que me pongo Disqus y nunca me aparecen los nuevos comentarios.
      Tambien he intentado poner lo que comentais aqui pero no me salio bien.
      Solo llevo 1 año con mi blog,y no he hcho muchas modificaciones de este tipo,pero he seguido los pasos y me sale un error.

      Eliminar
    4. Si tienes comentarios anidados, el lugar dónde poner el segundo trozo de código sería justo después de
      <b:includable id='threaded_comments' var='post'>

      Eliminar
    5. Después de mucho tratar, al fin he conseguido aplicar los cambios y funciona. Gracias a todos por investigar y ayudarnos con estos inconvenientes.

      Lo que sucede es que al responder un comentario de la página 2 (201 en adelante) y presionar el botón publicar, se carga la página 1 de comentarios en lugar de la página 2 en la que estamos respondiendo.

      No tendrás por allí alguna solución para ahorrar tiempo al no tener que ir a la página 2 continuamente cuando respondemos comentarios del 201 en adelante?

      Eliminar
    6. Pues no, pero sería fantástico que alguien la tuviera porque yo también soy sufridor de ese problema.

      La verdad es que pienso que es difícil, ya que al pinchar en Publicar, Blogger es quién toma el control de nuevo y no se me ocurre cómo hacer que "recuerde" la página por dónde íbamos... como no sea con cookies.

      Eliminar
  6. Funciona, muchas gracias, fantástico. Era un problema cada vez que se hacía un comentario tener que pulsar en "cargar mas" para volver otra vez al último.

    ResponderEliminar
  7. Hola Oloman.

    Tengo un problema con mi blog: no consigo que aparezca el formulario de los comentarios, ni en vistas dinámicas ni en plantillas "normales".

    Los oculté durante un tiempo y ahora quiero volver a mostrarlos, pero no aparecen. ¿Conoces algún tipo de código que hubiera que añadir a la plantilla?

    Muchas gracias.

    ResponderEliminar
    Respuestas
    1. Acabo de encontrar la solución, lo explican en el foro de Blogger: https://productforums.google.com/forum/?fromgroups=#!category-topic/blogger-es/algo-no-funciona/T1BX9wTVz_U

      Saludos! ;)

      Eliminar
    2. OK. Gracias por aportar la solución ;)

      Eliminar
  8. Perdona Oloman por si esta pregunta no es de este tema del todo. Te explico, en mi blog puse los comnetarios anidados y parece q funcionan bien... solo un detalle, cuando el numero de comentarios está a cero (aún nadie ha comentado), pinchas sobre el link q te llevará a una pag donde haya una caja de comentarios pero no hay tal caja.

    Ahora mismo funciona pork debajo de ese link, puse una caja. Cuando ya hay 1 comentario ya funciona dicho link correctamente.

    Supongo q habrá algo q no deja funcionar pero no entiendo pork solo no deja funcionar bien cuando hay 0 comentarios.

    http://piesdechica.blogspot.com.es/

    ResponderEliminar
    Respuestas
    1. Pues así a priori, no sé lo que puede ser. Cuando tengas algún post nuevo (sin comentarios) avísame que lo vea.

      Eliminar
  9. Hola Oloman, buenisimo este blog, no te das una idea de cuanto me ayuda, especialmente porque entiendo muy muy poco(digamos casi nada) de codigos html, java, etc.
    Soy Claudia de ABCDUKAN, mi blog ha superado los 200 comentarios en varios post ya hace varios meses, el tema es que es imposible ver la segunda página de comentarios, y como no sabia que hacer, he tenido que borrar manualmente algunos comentarios para poder visualizar los nuevos, ya que la opcion que aparece al final (creo que es "Ver más" o algo asi) no funciona, cuando le das click como que se congela la pagina. Mi duda es la siguiente ¿es posible que tenga el sistema antiguo de comentarios, mi blog lo cree en noviembre de 2011? Si es asi¿debo hacer los cambios que sugieres arriba? porque ya es imposible, cada vez crecen los comentarios mas rapido. No me molesta tener dos paginas de comentarios, pero el tema es que la segunda no se puede ver, quizas puedas darme una solucion. Muchisimas gracias!!! Espero tu respuesta

    ResponderEliminar
    Respuestas
    1. Hola. Posiblemente te falte alguna actualización del sistema de comentarios, pero como no tienes casi modificaciones en la plantilla que afecten a los artilugios (eso me pareció) prueba a restaurar las plantillas de artilugios, seleccionando sólo Blog1.

      No olvides hacer una copia de seguridad antes de nada por si hubiera algo que yo no vi y esa actualización te lo cambiara. Con esa copia podrás volver al estado actual si lo deseas.

      Eliminar
    2. Hola otra vez, hice lo que me dijiste, y sigue todo igual, al final de la pagina 1 de comentarios pone "Cargar mas", le das y aparece la palabra "Cargando" y se queda ahi, pero no muestra nada nuevo. Aparece el numero de nuevos comentarios (202, 253,) pero no los comentarios nuevos, es decir no se puede ver la segunda pagina. No se que puedo hacer...

      Eliminar
    3. ...sigo
      Agregue todos los codigos que sugieres arriba y todo sigue igual, aparecea "Cargar mas" y nada.
      Tienes idea cual puede ser el problema?

      Eliminar
    4. Pásame un enlace con algún post que tenga más de 200 comentarios que eché un vistazo entre los más populares y ninguno los sobrepasaba

      Eliminar
    5. Lo que pasa es que cada dia borro algunos para responder, el viernes borre en la pagina "preguntas" todos los de 2011, y es una pena, primero porque puedesn ser comentarios utiles para los seguidores y 2º porque parece que tengo menos comentarios de los que tengo en realidad.
      Este enlace de "Cuentanos" te agregue uno de prueba para llegar a 201.
      http://abcdukan.blogspot.com.es/p/cuentanos.html?showComment=1371557202619
      de hecho estoy haciendo capturas y dejando un enlace a los comentarios antigus, pero me toma muchisimo tiempo. mira aqui en la entrada "2ª Etapa: Fase Crucero"
      http://abcdukan.blogspot.com.es/2011/09/2-etapa-fase-crucero.html

      Eliminar
    6. Vale, casi seguro que es lo que te dije de que no tienes el código completo, así que lo mejor es que lo restaures.

      Es posible que con que cambies tres "includables" te funcionen. Serían estos:
      - b:includable id='threaded-comment-form' var='post'
      - b:includable id='threaded_comment_js' var='post'
      - b:includable id='threaded_comments' var='post'

      Prueba a sustituirlos (completos) por estos otros. Parecen más en ese documento porque están desplegados, pero son esos mismos tres pero "originales".

      No olvides hacer una copia de seguridad previamente por si las flies.

      Eliminar
    7. Muchas gracias Oloman, ya lo hice y sigue todo igual. Creo que optaré por copiar los comentarios viejos, hacer un documento o capturas, y dejar un enlace, asi borro los comentarios antiguos. Es un rollo tremendo, pero no veo otra solucion. Muchisimas gracias por tu tiempo. Un saludo!

      Eliminar
    8. Pues lo siento, pero es que ese gadget de comentarios es actualmente algo complejo porque tiene muchas partes y yo cuando cambio algo es prácticamente por el sistema de ensayo-error, así que no te puedo decir qué te pasa en concreto.

      Eliminar
  10. Hola Oloman!
    Me rehuso a cambiar el hermoso estilo que tienen los comentarios en mi plantilla modificada de blogger y volver a los viejos comentarios, sin estilo totalmente.....así que recurro a vos a ver si me podés ayudar con mi problemita: una de mis páginas tiene más de 300 comentarios, y obviamente después del 155 no aparecen más....tenía una solución instalada en mi blog pero cargué una plantilla anterior. Si bien hice copia de seguridad por las dudas, de volver a esa solución tendría que rescindir al estilo de los comentarios que tengo ahora. Se puede aplicar esta solución que proponés?? o en el caso de plantillas modificadas no funciona?? cómo debería hacerlo?? podrías hacerte una pasada por mi blog y darme una idea?? gracias!!!

    ResponderEliminar
    Respuestas
    1. Recién acabo de instalar esto en mi blog y sigo igual.....si entrás a ésta página: http://asesoramientoconsorcios.blogspot.com.ar/p/libro-de-visitas.html verás que no aparece la paginación......y creo que la instalé bien.....!!! no me salió ningún error. La verdad, está muy lindo el estilo de los comentarios que tengo y me rehuso a creer que no hay solución para mi problema y lo único que queda es el viejo sistema!!! Estoy DESESPERADA!!!

      Eliminar
    2. Hmmm... La verdad es que no sé por qué no te funciona, pero prueba a cambiar el 200 de esta línea:
      cmpage = Math.ceil(comment/200);
      ...por un 150.

      Eliminar
    3. Hola! Probé lo que proponés y NO PASÓ NADA.....sinceramente, estoy frustrada!!! Se queda colgado "cargando...." cuando hacés click en "cargar más" y no pasa nada....de nada!!! Me podrías ayudar revisando la plantilla?? o me proponés otra solución?? Saludos!!!

      Eliminar
    4. El código del punto 4 no lo veo en tu página...

      Eliminar
    5. Sí......está en la línea 2457 abajo del y antes del div class='comments' id='comments' o lo debería poner después del div??? la verdad, no entiendo nada, y hasta ahora no me saltó error pero tampoco se solucionó el problema.....sigo sin poder ver más del comentario 155 en esa página lo cual me está matandoooo!!!!!!! xq tengo varios comentarios por responder que no puedo hacerlo!!!!! me ayudan!!!!

      Eliminar
    6. Pues yo no lo veo en el fuente. Por algún motivo que no puedo ver desde aquí, no se interpreta si es que lo tienes puesto.

      Otra cosa rara que he visto ahora es que tu script de comentarios tiene un defer='defer' ¿puedes sustituir eso por un async='async' que es lo normal?

      Eliminar
    7. Sería mucho trabajo si te envío una copia de la plantilla??? Porque realmente, no sé qué estoy haciendo mal.....o te puedo subir una captura de pantalla para que veas dónde está ubicado eso y me digas qué hice mal....no soy experta en informática, soy abogada y te juro que esto me está complicando la existencia, ya que la página en cuestión es la más importante del blog, la que tiene más comentarios y la que sirve a los efectos de dejar, por parte de clientes y personas que me escriben, su experiencia con el servicio. Saludos!!!

      Eliminar
    8. La verdad es que sí Mercedes... sería un trabajo extra. Puedo resolver consultas puntuales o sobre cosas que me han pasado tantas veces que me sé de memoria, pero tu caso es algo no habitual y además casi seguro que habría que reconstruir bastante.

      Eliminar
  11. Hola! Estoy intentando solucionar la paginación de mi blog con lo anterior y no sucede nada, creo que es porque habrá cambiado algo en blogger desde 2012. ¿Podrías decirme si la solución sería la misma o habría que modificar algo?

    ResponderEliminar
  12. ¿Quieres paginar comentarios o entradas? Este post es para comentarios. Hay otro por ahí para entradas. Este

    ResponderEliminar