12 августа 2009
Интеграция KCAPTCHA с Joomla 1.5. Часть 2: Компонент com_contact
Итак, продолжаю первую статью об интеграции KCAPTCHA с Joomla 1.5. Сегодня опишу интеграцию KCAPTCHA с компонентом com_contact.
Приступим:
1) В файле /components/com_contact/controller.php после строки 164 добавим:
2) В файл /components/com_contact/views/contact/tmpl/default_form.php после строки добавим:
Готово! Если делаете интеграцию только для компонента com_contact, то не забудьте добавить нужный код в index.php Joomla, а также языковые константы в файл локализации, как это описано в первой части.
Продолжение: интеграция KCAPTCHA с модулем mod_login.
Приступим:
1) В файле /components/com_contact/controller.php после строки 164 добавим:
$mail->setSubject( $FromName.': '.$subject );
$mail->setBody( $body );
// BEGIN PATCH
if(1!==$_POST['captcha']) {
JError::raiseWarning( 403, JText::_( 'You need to enter the code shown' ));
$this->setRedirect(JRoute::_('index.php?option=com_contact&view=contact&id='.$contactId, false));
return false;
}
// END PATCH
$sent = $mail->Send();
2) В файл /components/com_contact/views/contact/tmpl/default_form.php после строки добавим:
<?php endif; ?>
<!-- BEGIN PATCH -->
<br />
<br />
<label for="captcha"><?php echo JText::_( 'Enter text shown below' ); ?>:</label>
<br />
<input type="text" name="captcha" class="inputbox" size="20" id="captcha" />
<img src="<?php JURI::base() ?>libraries/kcaptcha/index.php?<?php echo session_name(); ?>=<?php echo session_id(); ?>" alt="Captcha" style="vertical-align:-25px;" />
<!-- END PATCH -->
<br />
<br />
<button class="button validate" type="submit"><?php echo JText::_('Send'); ?></button>Готово! Если делаете интеграцию только для компонента com_contact, то не забудьте добавить нужный код в index.php Joomla, а также языковые константы в файл локализации, как это описано в первой части.
Продолжение: интеграция KCAPTCHA с модулем mod_login.
- fred
- 16 августа 2009, 16:37
- 0
во первых код
во вторых эта капча не совместима с модулем loginbox_1.0.1 (всплвающаю авторизация и регистрация)
как только поставил капчу так сразу накрылся модуль (вернул все обратно) но это ошибка вроде как первой части, удали код первой части все заработало)) хотя из-за чего это я не знаю )
а так все зачетно… давно искал капчу и наконец то нашел )) в обратной связи все таки поставил )
<?php endif; ?> в файле /components/com_contact/views/contact/tmpl/default_form.php есть аж два раза на строке 28 и на строке 63, вот код нужно вставить после 63 (это так чтоб другие не запутались и чтобы вы исправили;))во вторых эта капча не совместима с модулем loginbox_1.0.1 (всплвающаю авторизация и регистрация)
как только поставил капчу так сразу накрылся модуль (вернул все обратно) но это ошибка вроде как первой части, удали код первой части все заработало)) хотя из-за чего это я не знаю )
а так все зачетно… давно искал капчу и наконец то нашел )) в обратной связи все таки поставил )
- pedrosoft
- 16 августа 2009, 19:26
- 0
<?php endif; ?> присутствует 2 раза, но ведь я в листинге написал и перед чем должен вставляться хак:<br />
<br />
<button class="button validate" type="submit"><?php echo JText::_('Send'); ?></button>и это место в коде как раз присутствует 1 раз :)
нельзя говорить что капча несовместима с модулем loginbox_1.0.1 т.к. он не является штатным модулем joomla. да видимо этот модуль для регистрации используется компонент com_user, который в котором вы прохакали и который ожидает ввода капча, а в loginbox_1.0.1 поля для ввода капчи естественно нет, вот и не работает. нужно просто добавить это поля и тогда всё встанет на круги своя.
кстати fred, письмо об активации всё таки пришло? было в спаме или нет?
- Polosat
- 04 сентября 2009, 23:56
- 0
на заметку, буду хакать =), в последнее время спам письма всё чаще и чаще из контактов приходят
- nikolay63rus
- 11 октября 2009, 17:51
- 0
на шаблоне YOO_Flux не отображает kcaptcha, сделал всё как написано выше для com_contacts, но на многих шаблонах не отображает, что и где нужно добавить? подскажите!
- nikolay63rus
- 11 октября 2009, 18:05
- 0
нашел ответ — нужно зайти в папку с шаблоном (templates\yoo_flux\html — и удалить папку com_contact) — работает!!!
- pedrosoft
- 11 октября 2009, 18:18
- 0
правильно но не правильно! нужно не удалить com_contact из templates\yoo_flux\html а внести изменения пункта 2 в нём
- nikolay63rus
- 11 октября 2009, 18:30
- 0
да, на самом деле удалять не желательно, а то не будет отображаться текст когда введешь например email адрес не по шаблону…
Тогда вопрос к тов.Pedrosoft — где внести изменения???
И ещё хотелось бы продолжения — Интеграции KCAPTCHA с VirtueMart 1.1.3. на странице «Задать вопрос по этому товару»
Тогда вопрос к тов.Pedrosoft — где внести изменения???
И ещё хотелось бы продолжения — Интеграции KCAPTCHA с VirtueMart 1.1.3. на странице «Задать вопрос по этому товару»
- pedrosoft
- 11 октября 2009, 18:40
- 0
ну в пункте 2 как не изменения а добавления. Вот куда вам удобнее вставить изображение кода и форму для его ввода, туда и вставляйте, главное что б это было между открывающимся и закрывающимся тегом FORM
- Ekzebiche
- 27 июля 2010, 22:40
- 0
Люди, требуется помощь. Установил как описано kcaptcha для модуля контактов. Joomla 1.5.17 Картинку показывает. После заполнения формы и внесения кода выдает такое:
Fatal error: Unsupported operand types in /home2/webtest/homepage/includes/router.php on line 148
Что сие значит и как исправить?
Fatal error: Unsupported operand types in /home2/webtest/homepage/includes/router.php on line 148
Что сие значит и как исправить?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Комментарии:13