Programación

Foro WordPress » WordPress » Programación

Numerar comentarios (29 mensajes)

Acerca de este hilo

Tags

Etiquetas:

  1. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 5 meses
    #

    Numeración correlativa de los comentarios: solucionado en parte

    1) Declarar las variables global para que funcionen

    $GLOBALS['comment'] = $comment;
    global $commentcount;
    global $commentreply;

    2) Calcular el número del comentario con el que debe comenzar cada página:

    if(!$commentcount) { $commentcount = (get_option('comments_per_page') * (get_query_var('cpage') - 1 )) ; }

    Si ponemos, por ejemplo, 15 comentarios por página: página 1 (0), página 2 (15), página n ((n-1)*15). Y ahora veremos cómo no contar las réplicas para que esta formula funcione bien:

    <a href="#comment-<?php comment_ID() ?>">
    <?php if ($comment->comment_parent == 0) { // comentarios normal
    $commentcount++;
    $commentreply = 0; // al llegar a un nuevo comentario "normal", reply debe ser cero
    printf('#%1$s', $commentcount);
    } else { //replica
    $commentreply++;
    printf('#%1$s', $commentcount . '.' . $commentreply);
    }
    ?></a>

  2. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 5 meses
    #

    Y ahora solo queda por mejorar la numeración de las réplicas.

    Esto es lo que hace ahora

    1 Comentario normal
    1.1 Replica al comentario
    1.2 Replica al comentario
    1.3 Réplica a la réplica (y aquí debería aparecer 1.2.1)
    1.4 Réplica al comentario (y aquí debería aparecer 1.3).

    ¿Alguna idea LGrusin? Ya te adelanto que con comment_parent no conseguirás nada porque aquí almacena el valor 0 cuando no tiene padre (comentario normal) y el ID del comentario padre cuando es una réplica.

    Habría que ver de mirar por el nivel del comentario.

  3. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 5 meses
    #

    A ver, a ver, se supone que eso no lo querías así. Lo que estás haciendo ahora, ¿No lo hacía el plugin que habías instalado?

    Entendí que querías numeración correlativa, sean padres o hijos (réplicas). Lo de la anidación en su dia (a saber cuál era el código) lo había conseguido pero como no lo querías así...

    Define cuales son tus preferencias...

    De todas formas yo lo veo bien ahora. Creo que esa es la visualización correcta. ¿Qué le notas?

    Un saludo

  4. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 5 meses
    #

    Resumiendo:

    Antes de hacer nada los comentarios se numeraban de forma correlativa pero comenzando por 1 en cada página. No me gustaba porque al entrar en un post aparecía, por ejemplo, que había 200 comentarios pero la numeración comenzaba por 1 y acababa en 10, 15 o 20 dependiendo de si había o no réplicas.

    Quería por tanto una correspondencia entre el número total de comentarios y su numeración. Si había 120 comentarios, la numeración debía ir del 1 al 120. Como veremos, esto no he podido conseguirlo y tuve que cambiar de idea (por una lado separar padres e hijos a la hora de calcular el número total de comentarios, y por otro aplicar distinta numeración a los padres y a los hijos).

    1) Primer problema: mostrar el número total de comentarios. Formas:

    1.1.- Número total incluyendo tanto padres como hijos. Esto implicaba que la numeración fuera correlativa incluyendo tanto unos como otros.

    Ejemplo: Número total de comentarios: 150. Numeración: 1, 2,.., 150.

    No he podido conseguirlo porque no hay forma de guardar la variable al pasar de página. Eso hacía que la fórmula no funcionara.

    Ejemplo con la fórmula: página 1 comienza por 1, la segunda por el 16, etc. Pero resulta que en la primera página hay 3 hijos. La segunda debería comenzar por el 19, y eso no hay forma de calcularlo.

    1.2.- Número total de comentarios separando padres e hijos. Ejemplo: 100 comentarios y 20 réplicas. Eso implica que los hijos deben seguir una numeración distinta.

    El cálculo del número total de comentarios por separado está solucionado.

    2) Una vez que decidí que los hijos debían tener una numeración distinta, vi que había dos posibles opciones:

    2.1.- Uso de un plugin (es como lo tengo en el servidor)

    2.2.- Sin usar el plugin. Lo he conseguido en parte (ver mi comentario anterior). Lo estoy probando en local.

    Espero haberme explicado bien

  5. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 5 meses
    #

    LGrusin: si te parece, lo dejamos como está hora mismo en el servidor, es decir

    1) Mostrando número total de comentarios por separado (padres e hijos)

    2) Mostrando numeración distinta para padres e hijos con el uso del plugin.

    ¿Damos por cerrado el tema?

    Siento haberte dado tanto mal.

  6. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 5 meses
    #

    Yo creo que estamos hablando de lo mismo y no nos entendemos. Te he preguntado si te es necesario mostrar las réplicas de los comentarios en niveles anidados en forma de árbol. Si eso lo desactivas la cuenta la hace bien puesto que muestra el número de comentarios que configures, en este caso 15. Independientemente de si sean padres o hijos, siempre saldrán 15.

    El problema viene por ahí, es complicado contar el número de comentarios y réplicas porque no es el mismo número en cada página.

    El código que has puesto para el conteo tampoco funciona:
    (get_option('comments_per_page') * (get_query_var('cpage') - 1 )) A partir de la tercera página ya muestra una numeración incorrecta.

    Si das con uno que cuente bien igual lo solucionamos. Insisto, para réplicas anidadas. Si no hay niveles no hay ningún problema en el conteo.

    ...y no me desagrada como está ahora con el plugin.

    Un saludo

  7. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 5 meses
    #

    A ver si nos entendemos

    ¿Es necesario mostrar las réplicas de los comentarios en niveles anidados en forma de árbol? Me gustaría que así fuera.

    A partir de la tercera página ya muestra una numeración incorrecta. Creo que has contado respuestas mías como réplicas cuando no lo son.

    Te explico: el blog funciona desde hace bastantes años por lo que hubo un tiempo en el que no tenía puesto lo de los comentarios anidados. Los comentarios que ves en azul en las primeras páginas no son réplicas sino comentarios normales (están en azul porque son míos). Si te fijas, verás que no están desplazados a la derecha como en las dos últimas páginas donde sí son réplicas.

    En cualquier caso, en el servidor ahora mismo es el plugin el que se encarga de numerar y lo hace bien.

    En local, donde estoy haciendo las pruebas, lo que falla es la numeración de las réplicas:. Aquí no empleo el plugin sino la fórmula (funciona bien) y el código que aparece en el primer comentario de esta misma página (el que he subtitulado como "Numeración correlativa de los comentarios: solucionado en parte"):

    1 Comentario normal
    1.1 Replica al comentario
    1.2 Replica al comentario
    1.3 Réplica a la réplica (y aquí debería aparecer 1.2.1)
    1.4 Réplica al comentario (y aquí debería aparecer 1.3).

    Por eso te decía lo de echar un vistazo al plugin para ver cómo consigue contar las réplicas. La función que usa para ello es gtcn_comment_numbering.

  8. LGrusin

    Moderador
    Antiguedad: Feb 2011
    Mensajes: 1.801

    offline

    Publicado hace 5 meses
    #

    No me estoy refiriendo al blog on line que funciona bien con el plugin. Me refiero a las pruebas que estamos haciendo. A mi no me funciona bien el conteo de comentarios después a partir de la 3 página en adelante. Incluso guardar las réplicas de la página anterior lo he conseguido.

    ¿Es necesario mostrar las réplicas de los comentarios en niveles anidados en forma de árbol? Me gustaría que así fuera.

    Bien pero, ¿Cómo quieres la numeración? Yo entendí que correlativa por el número de comentario y no por anidación, es decir:
    1
    ...2
    .....3
    .....4
    en vez de
    1.1
    ...1.2
    ......1.2.1
    ......1.2.2
    etc

    Desde el principio estamos hablando de hacer coincidir el número de comentarios totales con la numeración que sale en los comentarios.

    Si lo que quieres es conseguir lo mismo que el plugin para evitar usarlo, sinceramente no creo que te ahorres mucho código.

    Un saludo

  9. almendron

    5.0
    Antiguedad: Feb 2010
    Mensajes: 1.101

    offline

    Publicado hace 5 meses
    #

    En un principio, pensé en numerar las réplicas de forma correlativa y no por anidación (el primer ejmplo que has puesto). No obstante, me encontré con el mismo problema que con numerar los comentarios y es que no hay forma de guardar la variable cuando pasa de página. Por ello, hubiera quedado así:

    Página 1:
    1
    ...1
    ...2
    ......3
    ...4
    2
    Página 2:
    16
    ...1
    ...2
    17

    Las réplicas hubieran comenzado por 1 en cada página. Recuerda que la numeración de comentarios funciona gracias a la fórmula o al plugin pero no porque hayamos conseguido guardar la variable.

    Si lo que quieres es conseguir lo mismo que el plugin para evitar usarlo, sinceramente no creo que te ahorres mucho código.

    Pues dejo el plugin y fiesta. Si tengo tiempo, reduciré el plugin a la función que necesito y listo.

Responder

Debes Identificarte para publicar.

Foro WordPress » WordPress » Programación