Sliva
Активный участник
- Баллы
- 61
Итак, пишу эту тему для тех, кто хотел AJAX авторизацию (без перезагрузки сайта).
1. Переходим в engine/modules/main.php.
2. Находим строку:
и вставляем после неё такой код:
3. Переходим в engine/modules/sitelogin.php.
и после
Вставляем:
4. Здесь же находим
и после вставляем это:
Здесь же находим
и после вставляем это:
Здесь же находим
и после вставляем это:
Здесь же находим
и после вставляем это:
5. Создаем js файл в папке templates/ваш_шаблон, назовем его index.js
Вставляем в него:
6. В папке с вашим шаблоном находим файл main.tpl и между тегами <head> </head> вставляем это:
а перед закрывающим тегом </body> вставляем это:
Да-да.. В DLE есть jquery, но пусть лучше так.
7. Ну, и в конце концов переходим в templates/ваш_шаблон/login.tpl и вставляем вашу кнопку
2. Находим строку:
PHP:
if($remove_canonical) {
$tpl->result['main'] = preg_replace( "#<link rel=['\"]canonical['\"](.+?)>#i", "", $tpl->result['main'] );
}
и вставляем после неё такой код:
PHP:
if(($_POST['login'] == "submit") && ($_POST['ajax'] === "1")) {
$tpl->result['main'] = $login_message;
}
3. Переходим в engine/modules/sitelogin.php.
и после
PHP:
$is_logged = false;
$member_id = array ();
$attempt_login = false;
Вставляем:
PHP:
if( isset( $_POST['login'] ) && $_POST['login_name'] && $_POST['login_password'] && $_POST['login'] == "submit" ) {
if ($_POST['ajax'] === "1") {
$_POST['login_name'] = convert_unicode( $_POST['login_name'], $config['charset'] );
$_POST['login_password'] = convert_unicode( $_POST['login_password'], $config['charset'] );
}
4. Здесь же находим
PHP:
$db->query( "UPDATE LOW_PRIORITY " . USERPREFIX . "_users SET {$new_pass_hash}lastdate='{$_TIME}', hash='{$hash}', logged_ip='{$_IP}' WHERE user_id='{$member_id['user_id']}'" );
и после вставляем это:
PHP:
$login_message = "logged";
Здесь же находим
PHP:
if ($config['auth_metod']) msgbox( $lang['login_err'], $lang['login_err_3'] ); else msgbox( $lang['login_err'], $lang['login_err_1'] );
и после вставляем это:
PHP:
$login_message = $lang['login_err_1'];
Здесь же находим
PHP:
$lang['login_err_2'] = str_replace("{time}", $config['login_ban_timeout'], $lang['login_err_2']);
msgbox( $lang['login_err'], $lang['login_err_2'] );
и после вставляем это:
PHP:
$login_message = $lang['login_err_2'];
Здесь же находим
PHP:
msgbox( $lang['login_err'], $lang['ip_block_login'] );
и после вставляем это:
PHP:
$login_message = $lang['ip_block_login'];
5. Создаем js файл в папке templates/ваш_шаблон, назовем его index.js
Вставляем в него:
Код:
function sitelogin(){
var uname=$("input[name='login_name']").val();
var upassword=$("input[name='login_password']").val();
$.post("/index.php",{login_name:""+uname+"",login_password:""+upassword+"",login:"submit",ajax:"1"},function(data){
if (data == "logged") {
swal("Хорошая работа, Олег!", "Ты успешно вошел!", "success");
setTimeout(function() { window.location.replace(window.location.pathname); }, 2500);
} else {
swal("Ошибка!", ""+data+"", "error");
}
});
}
6. В папке с вашим шаблоном находим файл main.tpl и между тегами <head> </head> вставляем это:
Код:
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
а перед закрывающим тегом </body> вставляем это:
Код:
<script type="text/javascript" src="{THEME}/index.js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-3.0.0.min.js"></script>
7. Ну, и в конце концов переходим в templates/ваш_шаблон/login.tpl и вставляем вашу кнопку
Код:
<button onclick="sitelogin(); return false;" type="submit">Войти</button>