Clicky

Añadir reCAPTCHA a formulario de comentarios de Pligg

Incluir un módulo de reCAPTCHA en los comentarios de un template antiguo de Pligg

reCAPTCHA antispamAl actualizar a una nueva versión de Pligg, en mi caso de la 1.0.4 a la 1.1.3, queriendo mantener nuestro antiguo template (porque nos gusta y nos ha llevado mucho tiempo ajustar su diseño) se tienen que realizar diversas modificaciones para adecuar los archivos antiguos de la plantilla a las nuevas configuraciones de la última versión de Pligg (para gente "sin tiempo" pasar directamente al final del artículo) .

Si mantenemos el template que viene por defecto (wistie) no suele haber ningún problema siempre y cuando tengamos los adecuados permisos de archivos y directorios en nuestro servidor. Para no olvidarnos, dejo un listado de los mismos que deben modificarse antes de la primera instalación (o actualización) de Pligg:

Primera instalación en limpio:

1. Renombrar el archivo /language/lang_english.conf.default a lang_english.conf. Se debe aplicar lo mismo al archivo de idioma en el caso de que elijas durante la instalación de Pligg otro lenguaje en la carpeta en que están: /languages.

2. Renombrar el fichero bannedips.txt.default a bannedips.txt
3. Renombrar el fichero settings.php.default a settings.php
4. Renombrar el fichero local-antispam.txt.default a local-antispam.txt
5. Renombrar el fichero /libs/dbconnect.php.default a dbconnect.php

6. Sube carpetas y archivos a tu servidor

7. Permisos CHMOD 755 a las siguientes carpetas o directorios, si obtienes errores cambíalos a 777 (te lo recomiendo).

  • /admin/backup/
  • /avatars/groups_uploaded/
  • /avatars/user_uploaded/
  • /cache/
  • /cache/admin_c/
  • /cache/templates_c/
  • /languages/ (And all of the files contained in this folder should be CHMOD 777)
  • /modules/upload/attachments/
  • /modules/upload/attachments/thumbs/
8. Permisos CHMOD 666 a los siguientes ficheros:

  • /libs/dbconnect.php
  • bannedips.txt
  • settings.php
  • local-antispam.txt

9. Abre en un navegador la siguiente dirección: http://mi_sitio_pligg/carpeta_pligg/install/index.php . Si puedes ver este documento en tu navegador haz click en la pestaña "install" de tu navegador (NOTA: yo he colocado Pligg en una carpeta dentro de mi directorio raíz, como ejemplo aquí la he llamado "carpeta_pligg", si no es tu caso la dirección sería: http://mi_sitio_pligg/install/index.php ).

Instalacion Pligg

10. A continuación selecciona un lenguaje de la lista (no hay español).

Instalación Pligg elegir lenguaje

Si no has concedido los permisos necesarios ni renombrado los archivos del paso 1. aparecerá el siguiente mensaje de error:

Instalación Pligg error de lenguaje

En el caso de que todo esté correcto te aparecerá la siguiente pantalla:

Instalación Pligg bien permisos

Pulsa "Next"
 
11. En la siguiente pantalla rellena los datos con tu nobre de la base de datos (Database Name), nombre de usuario (Database Username), contraseña de la base de datos (Database Password), el nombre de tu host donde se aloja la bases de datos --normalmente localhost-- (Database Server), y el prefijo de tabla que desees (Table Prefix) NOTA: en este último paso el prefijo de tabla por defecto es pligg_ , yo recomiendo para evitar en lo posible posteriores injecciones de spam por SQL elegir otro nombre de prefijo, p.ej. miprefijo_

Instalación Pligg Base Datos

12. Crea una cuenta de administración en la pantalla que aparecerá a continuación. Ten la precaución de anotar y guardar nombre de usuario y contraseña. Importante ¡Asegúrate de que no recibes en este paso ningún mensaje de error!

13. Elemina o renombra (es mi recomendación) la carpeta /install

14. Cambia de nuevo los permisos a CHMOD 644 al archivo libs/dbconnect.php

13. Abre en tu navegador http://mi_sitio_pligg/index.php

15. Logeate en tu cuenta de administración (pulsando la pestaña "admin" -- http://mi_sitio_pligg/admin --) con las credenciales generadas (y que tienes guardadas) durante el proceso.

16. Configura tu sitio Pligg como más te guste. Puedes utilizar la página "Modify Language" para cambiar el nombre de su sitio Pligg.

Como siempre me he liado con otro tema que no es el del artículo, pero mejor recordar de nuevo estos pasos.

Ahora que tenemos Pligg instalado vamos a configurar el módulo antispam de reCAPTCHA. Desde la página principal del panel de administración tenemos dos opciones de acceder a la configuración de este módulo (se supone que previamente lo hemos instalado desde la configuración de módulos).

1. Pulsando en el acceso directo de la pestaña "Module Settings" y luego en "Captcha"

Pligg panel de administración

2. Un camino un poco más largo: Pinchando en la pestaña "Modules" de la parte superior, y en la siguiente pantalla nos dirigimos a la línea:
"Captcha ( Version 1 )
Allows you to add CAPTCHA fields to the register, comment or story submission fields to prevent mass posting." y pinchamos en el botón "Settings".

Pligg gestor de módulos

En ambos casos aparecerá esta nueva pantalla:

módulo Pligg reCaptcha

Aquí vemos diferentes posibilidades para utilizar los Captchas disponibles. Nosotros utilizaremos, como se en la imagen de arriba, esta configuración:

Captcha Settings

Captcha Options

    * Captcha in user registration | Enabled | Disable
    * Captcha in story submission | Enabled | Disable
    * Captcha in comment submission | Enabled | Disable

Available Captchas

    * reCaptcha | In Use | Configure
    * WhiteHat Method | Enable | Configure
    * Math Question | Enable | Configure

Es decir hemos habilitado el antispam para el registro de usuarios, para el envío de historias y para los comentarios. El Captcha que elejiremos para su uso es reCAPTCHA. Pinchamos en reCaptcha "Configure":

Configuración reCaptcha

En la pantalla que aparece tenemos dos opciones para poner las claves pública y privada, 1) mantener las que nos facilita Pligg por defecto, 2) utilizar nuestras propias Keys que obtendremos del enlace reCAPTCHA.net que viene en la parte superior. Como con esto del spam estoy bastante escaldado y lleva mucho tiempo combatirlo, yo he utilizado mis propias Keys de reCAPTCHA, no por nada pero las de Pligg son bastante públicas, las dos: pública y privada.

Bien, ya tenemos configurado el reCAPTCHA en nuestro Pligg, pero, como es mi caso, si utilizamos otra plantilla que no sea la que viene por defecto en la versión de Pligg (me imagino que en las nuevas plantillas esto estará solucionado), el famoso formulario con las frases distorsionadas aparece en el registro de nuevos usuarios y en el envío de artículos, pero no aparece en los comentarios, por lo que al tener activado el módulo estos sencillamente no funcionan, me imagino que para desesperación de los usuarios (desde aquí les pido perdón a los de mi sitio Háblame del Mar que imagino que habrán sufrido este problema durante unos cuantos días).

La solución es modificar en el archivo comment_form.tpl de nuestro antiguo template que tenemos tanto cariño. En mi caso es este:

{checkActionsTpl location="tpl_pligg_story_comments_submit_start"}
<h4>{#PLIGG_Visual_Comment_Send#}</h4>
<form action="" method="POST" id="thisform">
 <small><em>{#PLIGG_Visual_Comment_NoHTML#}</em></small><br />
 <textarea name="comment_content" class="comment-form" rows="6" cols="56" />{if isset($TheComment)}{$TheComment}{/if}</textarea><br />
 {if $Spell_Checker eq 1}<input type="button" name="spelling" value="{#PLIGG_Visual_Check_Spelling#}" onClick="openSpellChecker('comment');"/>{/if}
 <input type="submit" name="submit" value="{#PLIGG_Visual_Comment_Submit#}" />
 <input type="hidden" name="process" value="newcomment" />
 <input type="hidden" name="randkey" value="{$randkey}" />
 <input type="hidden" name="link_id" value="{$link_id}" />
 <input type="hidden" name="user_id" value="{$user_id}" />
</form>
{checkActionsTpl location="tpl_pligg_story_comments_submit_end"}

Para arreglar definitivamente que aparezca el código de reCAPTCHA en nuestros comentarios, y que estos funcionen, añadiremos estas líneas:

{if isset($register_step_1_extra)}
    <br />
    {$register_step_1_extra}
{/if}


Explico dónde:

{checkActionsTpl location="tpl_pligg_story_comments_submit_start"}
<h3>{#PLIGG_Visual_Comment_Send#}</h3>
<form action="" method="POST" id="thisform">
 <small><em>{#PLIGG_Visual_Comment_NoHTML#}</em></small><br />
 <textarea name="comment_content" class="comment-form" rows="6" cols="56" />{if isset($TheComment)}{$TheComment}{/if}</textarea><br />
 {if $Spell_Checker eq 1}<input type="button" name="spelling" value="{#PLIGG_Visual_Check_Spelling#}" onClick="openSpellChecker('comment');"/>{/if}
{if isset($register_step_1_extra)}
    <br />
    {$register_step_1_extra}
{/if}

 <input type="submit" name="submit" value="{#PLIGG_Visual_Comment_Submit#}" />
 <input type="hidden" name="process" value="newcomment" />
 <input type="hidden" name="randkey" value="{$randkey}" />
 <input type="hidden" name="link_id" value="{$link_id}" />
 <input type="hidden" name="user_id" value="{$user_id}" />
</form>
{checkActionsTpl location="tpl_pligg_story_comments_submit_end"}
<br />

formulario de comentarios Pligg con reCaptcha


Espero les sirva a la gente que como yo le tenemos cariño a nuestro antiguo template.

Jesus_Caceres