Решение не претендует на гениальность, но может кому и пригодится. Не требует установки чего либо, все изменения делаются в файле
administrator/components/com_virtuemart/html/checkout_register_form.phpПростейший javascript выводит кнопку регистрации с типом
"disabled" (неактивна) если не выбран правильный ответ на вопрос антиспама. Итак, код
в файле
checkout_register_form.php делаем такие вот изменения
после строк 73 и 74
echo '<input type="hidden" name="remember" value="'.$rmbr.'" />';
}
вставляем
?>
<script language="javascript">
function Display(which) {
nl=document.getElementById("5");
me=document.getElementById("4");
if (which=="5") nl.style.display="block";
else nl.style.display="none";
if (which=="4") me.style.display="block";
else me.style.display="none";
}
</script>
<span style="color:#ff0000;">Антиспам: </span><span style="color:blue;">2 + 2 = </span>(
5 <input type="radio" name="marka" size="30" class="marka" value="5" onClick="Display('5');" />
4 <input type="radio" name="marka" size="30" class="marka" value="4" onClick="Display('4');" />)
<?php
затем, вместо строчки
<input type="submit" value="'. $VM_LANG->_('BUTTON_SEND_REG'). '" class="button" onclick="return( submitregistration());" />
пишем
<div id="5" style="display:block;"><input disabled="disabled" type="submit" value="'. $VM_LANG->_('BUTTON_SEND_REG'). '" class="button" onclick="return( submitregistration());" /></div>
<div id="4" style="display:none;"><input type="submit" value="'. $VM_LANG->_('BUTTON_SEND_REG'). '" class="button" onclick="return( submitregistration());" /></div>
ну а дальше, посмотрев внимательно на код, даже не зная джаваскрипт можно развить фантазию как угодно.
Пока не поставлен флажок в радиокнопке с правильным значением, кнопка "Регистрация" будет неактивна.
Тестировал во всех браузерах - проблем нет.
Конешно, не Бог весть какая защита, но все же лучше чем ничего.
Кстати, если гуру программинга откомментируют данное решение - буду очень благодарен)) Интересует собсна такой вопрос - насколько эта защита слаба перед спам-ботами?