Los antiguos lectores de mi blog se acordaran que antes lo gestionaba con otro sistema que no es wordpress, el sistema en cuestión se llama bMachine al cual ya le habÃa creado uno que otro mod (los mods son modificaciones extraoficiales, si no se llamarÃan extensiones o parches) y pues ahora toca el turno de uno para (como no) myComments.
Felicidades a Diego porque ya ha logrado que el mundo anglosajon ponga los ojos en myComments: A New Way to Tame Chaos of Flames.
Despues de liberar la versión estable de myComments Diego se ha encontrado con el problema del spam que ha saturado su servidor. Y para eso Marcos Sader ha creado una nueva versión del plugin:
myComments 1.1 está basado en el plugin original (versión 1.0) desarrollado por el mismo Diego, sólo que esta nueva versión incluye un cambio en el código que permite detener el envÃo del comentario si este es moderado por WordPress.
En la versión original si fulanito troll o pepe spammer dejaban un comentario y Mr Akismet se daba cuenta de semejante barbaridad y lo moderaba, myComments no lo veia y enviaba el ping con los datos al servidor.
Asà que lo único que hice fue agregar un condicional para que verfique el estado del post, mas un nuevo Hook para que cuando los comentarios sean moderados y aprobados se actuactualice el ping y envie el comentario que antes habÃa sido detenido.
Asà que a actualizar el plugin para no saturar de spam el servidor. Ahora el problema es como actualizar el hack de blogger para eso, creo que es una tarea imposible por el momento.
Descarga: myComments 1.1
Desde que Diego liberó myComments 1.0, lo he instalado en mi wordpress que administra este weblog, pero me quedé con las ganas de integrarlo en otros CMS y más ahora que ha liberado su API para interactuar con el.
Pues entonces como no me querÃa quedar asà les presento un hack que he desarrollado para integrar MyComments en ese CMS que creo que varios conocen y se llama Blogger creo que es de una empresa llamada Google.
Bien entonces cuales son los pasos para instalarlo?
Primero que nada como todos sabemos Blogger no es un sistema que te permita “generalmente” modificar la plantilla de los comentarios, pero nuestros amigos de Blogger Templates nos han solucionado el problema, y ponen a nuestra posposición plantillas con comentarios integrados dentro de la misma plantilla, asà que el primer paso es descargarse una de sus ultimas plantillas donde ya traen los comentarios integrados.
Después hay que poner este código en la plantilla después de la etiqueta </style>:
<ItemPage>
<Blogger>
<script language="javascript">
function myComments()
{
blogName = "<$BlogDescription$>";
blogUrl = "<$BlogURL$>";
postTitle = "<$BlogItemTitle$>";
postID = "<$BlogItemNumber$>";
postUrl = "<$BlogItemPermalinkUrl$>";
commentAuthor = document.getElementById('author').value;
commentEmail = document.getElementById('email').value;
commentContent = encodeURIComponent(document.cFrm.postBody.value);
msg = "http://www.pecesama.net/mycomments/ping.php?p1="+blogName+"&p2="+blogUrl+"&p3="+postTitle+"&p4="+postID+"&p5="+postUrl+"&p6="+commentAuthor+"&p7="+commentEmail+"&p8="+commentContent;
document.getElementById('if_mycom').src=msg;
}
</script>
<iframe id="if_mycom" src="about:blank" width="0" height="0"></iframe>
</Blogger>
</ItemPage>
Y por ultimo buscar la funcion javascript function cFrmPost() y agregar la siguiente linea antes del return true;:
myComments();
myComments en ZoomBlog
Escrito en MyComments, PHP, Programacion March 12th, 2006
Bueno va un hack nuevo para poder usar myComments en sistemas donde lo unico que podemos hacer es modificar las plantillas, esta ocasión toca a ZoomBlog, un sistema de blogs perteneciente a la familia de ZoomAlgo.
Este hack esta basado en el de Blogger con algunas ligeras modificaciones, debido principalmente a que las etiquetas de la plantilla son diferentes y además de que los elementos del formulario de comentario por alguna razón no cuentan con ID
Ok vamos a comenzar:
1) El primer paso es ir a la edición de plantillas y elegir editar la plantilla “index.html” y en ella antes de que termine la sección
</head>vamos a insertar el siguiente código:<zb:Entries>
<script language="javascript">
<!--
function myComments()
{
blogName = "<zb:blogSubtitle>";
blogUrl = "<zb:blogUrl>";
postTitle = "<zb:EntryTitle>";
postID = "<zb:EntryID>";
postUrl = "<zb:EntryPermalink>";
commentAuthor = document.cform<zb:EntryID>.cnick.value;
commentEmail = document.cform<zb:EntryID>.cemail.value;
commentContent = encodeURIComponent(document.cform<zb:EntryID>.comment.value);
msg = "http://www.pecesama.net/mycomments/ping.php?p1="+blogName+"&p2="+blogUrl+"&p3="+postTitle+"&p4="+postID+"&p5="+postUrl+"&p6="+commentAuthor+"&p7="+commentEmail+"&p8="+commentContent;
document.getElementById('if_mycom').src=msg;
date = new Date();
var curDate = null;
do { var curDate = new Date(); }
while(curDate-date < 2000);
return true;
}
// -->
</script>
</zb:Entries>
2) Vamos un poco más abajo en la misma plantilla y despues de la etiqueta
<body id="home">ponemos el siguiente código:<iframe name="if_mycom" id="if_mycom" src="about:blank" width="0" height="0"></iframe>
3) Guardar la plantilla.
4) Ahora cambiemonos a la plantilla “commentPost.html” y en la segunda lÃnea de esta plantilla tenemos la etiqueta del formulario de la siguiente manera:
<form name="cform<zb:EntryID>" action="http://<zb:blogUrl>/cgi-bin/blogComment.cgi" method="post" class="bComment">
Debemos cambiarla por esta:
<form name="cform<zb:EntryID>" action="http://<zb:blogUrl>/cgi-bin/blogComment.cgi" method="post" class="bComment" onSubmit="return myComments();">
5) Guardar la plantilla.
Listo con estos 5 sencillos pasos ya podemos disfrutar de myComments en ZoomBlogs. Que por cierto, el ping al server de myComments se envia cuando se presiona el botón de “Previsualizar” ya que no hay forma de controlar el de enviarlo (al menos hasta donde pude ver).
Nota: Nos podriamos ahorrar el paso de enviar a
http://www.pecesama.net/mycomments/ping.phptanto en este como en el de Blogger si Diego permitiera en su API el poder recibir desde GET en lugar de solo por POST.Nota 2: Ya tengo que pensar en pedir sueldo como myComments Evangelist.
3 Comentarios »