Foros del Web » Programando para Internet » PHP »

Acortar comentarios e incluir un "ver todo" para desplegar comentario completo.

Estas en el tema de Acortar comentarios e incluir un "ver todo" para desplegar comentario completo. en el foro de PHP en Foros del Web. Hola, Tengo una web donde se permiten comentarios. Lo que quisiera hacer es que cuando un comentario fuese demasiado largo se acortase y mostrase al ...
  #1 (permalink)  
Antiguo 07/08/2008, 09:44
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Acortar comentarios e incluir un "ver todo" para desplegar comentario completo.

Hola,

Tengo una web donde se permiten comentarios.

Lo que quisiera hacer es que cuando un comentario fuese demasiado largo se acortase y mostrase al final del mismo un link "Ver comentario completo" con el cual podríamos desplegar el resto del comentario para poder seguir leyendo.

Esta función la tienen muchas webs, un ejemplo es menéame. Traté de hacerlo mirando el código de menéame pero me perdí a mitad de camino así que agradecería si alguien me pudiera orientar .
  #2 (permalink)  
Antiguo 07/08/2008, 10:06
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Acortar comentarios e incluir un "ver todo" para desplegar comentario comp

Podrias usar la funcion
substr(('comentario'),0,50)."<a href='tulinkparavercomentariocompleto.php'>ver completo</a>";
aca se tomara solo los primeros 50 caracteres, y el el link al final par que te dirija a la pag donde mostrarlo completo, podrias mejorarlo con ajax, para que se muestre abajo, sin tener que dirijir a ninguna pagina.
Saludos
__________________
Drupal Argentina
  #3 (permalink)  
Antiguo 07/08/2008, 10:23
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Acortar comentarios e incluir un "ver todo" para desplegar comentario comp

Clic AQUI
FAQ's de PHP
  #4 (permalink)  
Antiguo 07/08/2008, 11:32
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Acortar comentarios e incluir un "ver todo" para desplegar comentario comp

Gracias,

Hice esto, a ver si se entiende algo:
Código PHP:
$id2 $_GET['id2'];
    
while(
$array mysql_fetch_array($cad)) {

$indice$array['indice'];
$fecha=$array['fecha'];
$nick=$array ['nick'];
$email=$array['email'];
$web=$array['web'];
$comentario=nl2br ($array['comentario']);


$caracteres strlen($comentario); // caracteres totales
$tamano 1500// tamaño máximo


echo "<tr><td class='p'><a name='".$indice."' id='".$indice."'></a>
            <b>El</b>&nbsp;"
.$fecha." <b>Por</b>:&nbsp;".$nick." "
if (!empty (
$email)) {
echo 
" - <a href=mailto:".$email." title='".$email."'>email</a>";}
if (!empty (
$web)) { 
echo 
" - <a href='http://".$web."' target='_blank' title=".$web.">web</a>";}
echo 
"</td>
         </tr>
          <tr><td><blockquote>"
;
 if (
$caracteres >= $tamano and $indice !=$id2) { 
echo 
"".substr(($comentario),0,$tamano)."
<a href='encuesta.php?pg="
.$pg."&amp;id=".$id."&amp;id2=".$indice."#".$indice."'>[Seguir leyendo]</a>";} 

else { echo 
$comentario;} echo "</blockquote></td></tr>";


Lo que hago es, primero contar los caracteres que tiene el comentario.

A la hora de mostrarlo, con el if si los caracteres superan o son iguales al límite marcado el comentario es acortado por la función "substr" y se muestra el enlace "[seguir leyendo]". También se debe cumplir que el id2 correspondiente al mensaje no está definido.

Si los caracteres no alcanzan el límite pasamos al else donde se muestra el comentario directamente. Hago esto así por dos motivos, uno es que si no hay nada que acortar ya vamos al grano y mostramos el comentario, dos, así el "[seguir leyendo]" no se muestra si no hay nada más que leer.

Todos los comentarios llevan un marcador que corresponde con el indice del comentario.
Con el enlace del "[seguir leyendo]" enlazamos a la misma página del comentario portando en la dirección el id2 del comentario y el indice como marcador.

Así al clicar en el enlace pasan dos cosas: 1. gracias al marcador la página se posiciona en el mensaje que queremos ver completo, 2. como el id2 ahora si está definido pasamos al "else" y el comentario se muestra completo.

Mi problema: de esta forma se nota la recarga de la página y el desplazamiento de la página hacia el mensaje provocando que nos perdamos en el comentario sin saber por donde íbamos leyendo.

Lo que me gustaría es que el mensaje completo se desplegase de forma limpia, tal como pasa aquí, p ej: http://meneame.net/story/new-york-times-ole-this-spanish-summer-eng#comment-50

Última edición por Kadmon; 07/08/2008 a las 11:44
  #5 (permalink)  
Antiguo 07/08/2008, 11:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Acortar comentarios e incluir un "ver todo" para desplegar comentario comp

Hola kadmon,

En ese caso necesitas usar AJAX para recargar el contenido al momento.

Saludos.
  #6 (permalink)  
Antiguo 07/08/2008, 15:44
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Acortar comentarios e incluir un "ver todo" para desplegar comentario comp

Cita:
Iniciado por GatorV Ver Mensaje
Hola kadmon,

En ese caso necesitas usar AJAX para recargar el contenido al momento.

Saludos.
Ok, veo que tengo trabajo para rato pues de AJAX no tengo ni idea.

En fin... poco a poco, gracias por la ayuda ;) . Luego le echaré un ojo a eso del AJAX.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:09.