Joomla jQuery Регистрация расширения + капча - PullRequest
0 голосов
/ 21 января 2012

Я использую расширение Joomla jQuery Registration, которое поставляется без какой-либо функции бот-чека, и я хотел бы добавить его, но я не знаю, как мне это сделать. Вот код расширения:

    <?php
/**
 * @title         jQuery Dropdown Registration Module
 * @version   1.7.2
 * @package     Joomla
 * @author      http://www.minitek.gr (Ioannis Maragos)
 * @copyright   Copyright (C) 2011 Minitek. All rights reserved.
 * @license     GNU General Public License version 2 or later.
 */

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php JHTML::_('behavior.formvalidation'); ?>       

<?php /*<link rel="stylesheet" href="modules/mod_dropdown_registration/css/style.css" type="text/css" /> */?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js?ver=1.4.2" type="text/javascript"></script>
<script src="modules/mod_dropdown_registration/js/register.js" type="text/javascript"></script>


<?php
$user = JFactory::getUser();
$myID = $user->id;
if ($myID == 0) {
?>
<div id="registerContainer">
                <a href="#" id="registerButton"><span>Registracija</span><em></em></a>
                <div style="clear:both"></div>
<div id="registerBox"> 

<form id="member-registration" action="<?php echo JRoute::_('index.php?option=com_users'); ?>" method="post" class="form-validate">

<fieldset id="reg-body" class="userdata">       

<div class="reg-field">
    <label for="jform_name" id="jform_name-lbl">
            Ime i prezime:
    </label>
</div>      
<div style="float:left;">
    <input type="text" maxlength="50" class="inputbox required" value="" size="40" id="jform_name" name="jform[name]"/><br/>
    Molimo Vas da unesete stvarno ime i prezime!
</div>

<div style="clear:both;"></div>
<div style="height: 7px;"></div>

<div class="reg-field">
        <label for="jform_username" id="jform_username-lbl">
            Korisničko ime:
        </label>
</div>
<div style="float:left;">
        <input type="text" maxlength="25" class="inputbox required validate-username" value="" size="40" name="jform[username]" id="jform_username"/>
</div>
<div style="clear:both;"></div>

<div class="reg-field">
        <label for="jform_password1" id="jform_password1-lbl">
            Lozinka:
        </label>
</div>
<div style="float:left;">
        <input type="password" value="" size="40" name="jform[password1]" id="jform_password1" class="inputbox required validate-password"/>
</div>
<div style="clear:both;"></div>

<div class="reg-field">
        <label for="jform_password2" id="jform_password2-lbl">
            Potvrdite lozinku:
        </label>
</div>
<div style="float:left;">
        <input type="password" value="" size="40" name="jform[password2]" id="jform_password2" class="inputbox required validate-password"/>
</div>
<div style="clear:both;"></div>

<div class="reg-field">
        <label for="jform_email1" id="jform_email1-lbl">
            E-mail:
        </label>
</div>
<div style="float:left;">
        <input type="text" maxlength="100" class="inputbox required validate-email" value="" size="40" name="jform[email1]" id="jform_email1"/>
</div>
<div style="clear:both;"></div>

<div class="reg-field">
        <label for="jform_email2" id="jform_email2-lbl">
            Potvrdite e-mail:
        </label>
</div>
<div style="float:left;">
        <input type="text" maxlength="100" class="inputbox required validate-email" value="" size="40" name="jform[email2]" id="jform_email2"/>
</div>
<div style="clear:both;"></div>

<br/>
    <font color = "#FF0000">Sva polja su obavezna!</font><br/>

<br/>
    <button type="submit" class="button validate">Registracija</button>
    <input type="hidden" name="option" value="com_users" />
    <input type="hidden" name="task" value="registration.register" />
    <?php echo JHtml::_('form.token');?>

    </fieldset>

</form>

 </div>
</div>
<?php
}
?>

Извините, если это не блок кода, но инструкции неясны. В любом случае, я хотел бы добавить текстовое поле перед кнопкой «Отправить», перед которым будет стоять ярлык «Что такое 3 плюс 2», и отправка не будет работать, если ответ неверен. Есть ли способ сделать это без редактирования файлов ядра Joomla?

1 Ответ

0 голосов
/ 23 января 2012

Вы можете использовать jQuery, чтобы добавить свой ярлык и элементы ввода на страницу. Затем привяжите прослушиватель .click () к кнопке отправки, которая проверяет правильность вашего ответа перед отправкой формы. Не думайте, что это не очень безопасное решение для проверки ботов. Чтобы добавить дополнительный уровень безопасности, вы можете рассмотреть возможность изменения 2 и 3 на два и три, а также, возможно, чередовать плюсы, минусы, умножения и деления и сохранять комбинации ответов и вопросов в сеансе Joomla вместо того, чтобы вычислять их все в JS.

...