Il modulo "chiedi un'informazione su questo prodotto" di Virtuemart è un bersaglio facile per le email di spam.
Per aggiungere un filtro captcha al modulo bisogna seguire questi tre passaggi:
1- registrarsi presso http://recaptcha.net/ e ottenere le due "chiavi", ovvero i codici, per il proprio sito.
2- scaricare il plugin reCaptcha e installarlo sul proprio sito. Quindi:
- attivare il plugin
- immettere i due codici (public key e private key)
- impostare Set Inclusion Syntax con YES
- impostare Set Auto-verify con NO
3- aprire il file joomla\components\com_virtuemart\themes\default\templates\pages\shop.ask.tpl.php
Trovare il codice (verso la riga 35) <input type="button" name="send".. e inserire proprio sopra questa riga il testo:
{captcha}
4- Infine, aprire il file /administrator/components/com_virtuemart/classes/ps_communication.php e verso la riga 128 cercare il codice
function mail_question(&$d)
{
global $vmLogger, $Itemid, $_SESSION, $VM_LANG,$mosConfig_live_site,$mosConfig_lang, $sess;
Immediatamente sotto la riga, aggiungere il seguente codice:
// Check if a captcha challenge has been made. If not, we know
// things are not right, so force the challenge anyway so it
// will be verified (and fail).
$challenge = JRequest::getCmd("recaptcha_challenge_field", null, 'POST');
if(!isset($challenge) || !$challenge) {
JRequest::setVar('recaptcha_challenge_field', 1, 'POST');
}
// Verify the captcha code.
$plugin = &JPluginHelper::getPlugin('system', 'jezReCaptcha');
$params = new JParameter($plugin->params);
plgSystemJezReCaptchaHelper::verifyCaptcha($params);
I link utili:
Discussione originale dal forum di VM (in inglese)
Plugin reCaptcha
