jueves, 12 de enero de 2012

Blogger: Comentarios anidados, reply y dudas

Blogger ha implementado el sistema de comentarios anidados con opción de Reply en cada uno de ellos y esto trae algunos dolores de cabeza ya que el sistema se aplica a todos los blogs, sin importar la plantilla que se use, sea esta de las nuevas o no.

En todas ellas, veremos (en realidad hace tiempo que ya está pero no tenían uso), estos cuatro elementos includable dentro del widget llamado Blog1 que es el que contiene las entradas:
<b:includable id='threaded_comment_js' var='post'>
...
</b:includable>

<b:includable id='threaded_comments' var='post'>
...
</b:includable>

<b:includable id='threaded-comment-form' var='post'>
...
</b:includable>

<b:includable id='threaded_comment_css'>
...
</b:includable>
El primero es el script que usa Blogger para mostrar los comentarios; el segundo es el contenedor de esos comentarios de nuevo estilo, el tercero es el formulario para ese modelo y el ultimo son las reglas de estilo de esa sección.

Por ahora, los dolores de cabeza y dudas que se presentan son tres:
  1. tengo todo eso pero no se ve nada
  2. tengo todo eso y se ve pero no funciona
  3. tengo todo eso, se ve, funciona pero no lo quiero usar
Como dije, los includables están en todas las plantillas pero, si alguien quiere utilizar el sistema y no lo ve implementado, es posible que falte un código que es el que va en el includable llamado main; allí, seguramente veremos una o dos veces, el siguiente código:
<b:include data='post' name='comments'/>
y ninguna referencia al nuevo sistema así que bastaría reemplazar eso por esto:
<b:if cond='data:post.showThreadedComments'>
<b:include data='post' name='threaded_comments'/>
<b:else/>
<b:include data='post' name='comments'/>
</b:if>
Y al revés, si NO quisiéramos usar el nuevo sistema, borraríamos eso y dejaríamos sólo:
<b:include data='post' name='comments'/>
El tercer error que he visto afecta a quienes usamos Prototype+Scriptaculous; en ese caso, lo que no parece funcionar es el "Responder" y eso se corrige cambiando la forma de cargar estas librerías ya que es un error similar al que ocurría con los Seguidores; si usamos las API de Google, podemos cargarlas de este modo aunque esto es dudoso:
<script src='http://www.google.com/jsapi'/>
<script>
google.load(&quot;prototype&quot;, &quot;1&quot;);
window.JSON = {
parse: function (st) { return st.evalJSON(); },
stringify: function(obj) { return Object.toJSON(obj); }
};
google.load(&quot;scriptaculous&quot;, &quot;1&quot;);
</script>
Por último, hay que tener en claro que el nuevo sistema no usa las mismas reglas de estilo que el anterior y por lo tanto, el resultado gráfico, si es que se ha personalizado toda esa parte, podrá ser ... cualquier cosa y habrá que comenzar a toquetear las cosas para acomodarlas nuevamente.

Todas las definiciones de estilo de este modelo se encuentran en threaded_comment_css y pueden ser modificadas allí ... con paciencia, prudencia y tratando de no insultar demasiado a los desarrolladores de Blogger.

Veremos si a lo largo de los días puedo ir poniendo los detalles de eso y de que manera ir re-acomodando las cosas y los distintos trucos o personalizaciones que ya han sido publicadas.

No hay comentarios:

Publicar un comentario