Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/08/2008, 11:32
Kadmon
 
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