В регистрационной форме Joomla нет captcha.

Это может привести к тому, что начнёт быстро расти количество регистраций :)

Добавить captcha можно с помощью компонента tinCaptcha . Добавить captcha можно и с помощью какого-то другого компонента, но мне понравился этот - небольшой компонент, который можно интегрировать в свой компонент Joomla.

В описании компонента есть инструкция как добавить captcha в компонент контактов.

По аналогии с добавлением tinCaptcha в компонент контакты, сделаем добавление проверочного кода в форму регистрации Joomla.

Создадим в текущем шаблоне папку html/com_user/register/

Скопируем туда из папки /com_user/views/register/tmpl/ файл default.php.

Добавим в этот файл после строк (или в другое место, сами можете выбрать):

<tr><td colspan="2" height="40">
<?php echo JText::_( &#39;REGISTER_REQUIRED&#39; ); ?>
</td></tr>

следующий код:

<!-- tincaptcha- -->
<br />
<label for="captcha">
<?php echo JText::_( &#39;TIN_CAPTCHA&#39; ); ?>:
</label>
 
<input type="text" name="captcha" id="captcha" size="10" class="inputbox required" value="" />
<br />
<img name="captchaimg" src="index.php?option=com_tincaptcha&task=captcha_display" alt="<?php echo JText::_( &#39;TIN_CAPTCHA&#39; ); ?>" />
 <a href="javascript:void(0);" onclick="document.images[&#39;captchaimg&#39;].src=&#39;index.php?option=com_tincaptcha&task=captcha_display&t=&#39;+(new Date()).getTime();return false;"><?php echo JText::_(&#39;TIN_REFRESH&#39;); ?> </a>
<!-- -tincaptcha -->

Теперь в файл controller.php , который находится в папке com_user/

после строк:

function register_save()
	{
		global $mainframe;
 
		// Check for request forgeries
		JRequest::checkToken() or jexit( &#39;Invalid Token&#39; );

добавим такой код:

// tincaptcha-
$captchk = plgSystemTincaptcha::check(JRequest::getVar(&#39;captcha&#39;, &#39;&#39;, &#39;post&#39;));
if ($captchk !== true)
{
JError::raiseWarning(0, $captchk);
echo &#39;<meta http-equiv="refresh" content="3;URL=javascript: history.go(-1)" />&#39;;

return false;
}
// -tincaptcha

Вот и все. 

Я бы еще заменил шрифты, которые используются в данной captcha - сложно распознать что там за буква :)

В папке plugins/system/tincaptcha/fonts удалить шрифты и добавить туда какой-нибудь другой, более понятный ttf шрифт, хотя он будет понятнее и для спам роботов).

Чтобы сделать комментарий, нужно авторизоваться на сайте!