«космическая» форма входа мини профиль для dle
Всем привет! Появилась свободная минутка, поэтому решил с пользой ее провести и сделать что-нибудь нужное для сайта 🙂
Итак, перед вами альтернатива стандартной форме входа DLE легкий мини профиль. Открытие окон сопровождается анимацией (то, что вы получите в итоге, можете посмотреть в конце статьи). Дизайн довольно приятный, поэтому данная связка подойдет для многих сайтов. Модуль тестировался на DLE версии 10.0 – 11.1
Внимание! Для того чтобы вход через социальные сети функционировал без проблем, необходимо установить соответствующие настройки в разделе «Пользователи» – настройка социальных сетей в панели управления сайтом.
1. Перед началом, из архива закачайте в свою тему папку img.
2. В вашей теме, откройте файл login.tpl, очистите все данные из него, после чего скопируйте и вставьте следующий код:
[not-group=5]
<div class="login_mal profiles">
<div class="top_border_proff"></div>
<div class="you_name">{login}</div>
<div class="you_group">Группа: {group}</div>
<div class="ava_position"><img src="{foto}" alt="{login}" class="ava"><div class="online"></div></div>
<div class="border_miniprof"></div>
<div class="menu_prof">
<div><a href="{profile-link}">Персональная страница</a></div>
<div><a href="{pm-link}">Личные сообщения {new-pm}</a></div>
<div><a href="{favorites-link}">Мои закладки</a></div>
</div>
<div class="border_miniprof"></div>
<a href="{logout-link}" class="logout">выход</a>
<div class="top_border"></div>
</div>
<div class="overlay"></div>
[/not-group]
[group=5]
<div class="login_mal">
<form method="post" action="">
<div class="top_border"></div>
<div class="rocket"></div>
<input type="text" class="login" name="login_name" id="login_name">
<input type="password" class="password" name="login_password" id="login_password">
<ul class="login_button">
[vk]<li class="vk"><a href="{vk_url}"></a></li>[/vk]
[facebook]<li class="fb"><a href="{facebook_url}"></a></li>[/facebook]
<li class="log_in"><input type="submit" value="Войти"></li>
</ul>
<div class="clears"></div>
<div class="footer_login">
<div class="bottom_border"></div>
<ul>
<li class="for_pass"><a href="{lostpassword-link}">Забыли пароль?</a></li>
<li class="register">Нет аккаунта? <a href="{registration-link}">Регистрация</a></li>
</ul>
</div>
<input name="login" type="hidden" id="login" value="submit" />
</form>
</div>
<div class="overlay"></div>
[/group]
<a href="javascript://" id="open_modal">[group=5]Авторизоваться[/group][not-group=5]Открыть профиль[/not-group]</a>
<script>
$("#open_modal").click(function() {
$(".login_mal").addClass("md-content");
$(".overlay").css({"display": "block"});
});
$(".overlay").click(function() {
$(".login_mal").removeClass("md-content");
$(this).css({"display": "none"});
});
</script>
Сохраняете и закачиваете на сайт.
3. Теперь поработаем с файлом стилей. Копируем и вставляем эти значения в самый конец файла, и сохраняем. Важно! В зависимости от того, где находится ваш файл стилей, нужно изменить адреса для картинок.
/** © 2022 Artem Malcov | https://www.pandoge.com/moduli-i-skripty/kosmicheskaya-forma-vhoda-mini-profil-dlya-dle **/
.login_mal {
font-family: arial;
width: 340px;
height: 560px;
margin: auto;
background: #fafaff;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
-webkit-transform: translateY(20%);
-moz-transform: translateY(20%);
-ms-transform: translateY(20%);
transform: translateY(20%);
opacity: 0;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
z-index: 1200;
visibility: hidden;
}
.login_mal a {
text-decoration: none
}
.login_mal a:hover {
text-decoration: underline;
}
.profiles {
height: 445px;
}
.top_border {
background: #ff6900;
height: 5px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.top_border_proff {
background: #fcfcff;
height: 5px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.bottom_border {
background: #a0bec6;
height: 5px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.rocket {
background: url("../img/rocket.png") no-repeat center center;
width: 136px;
height: 110px;
margin: 66px 0 0 113px;
}
.login {
width: 190px;
height: 50px;
border: 0;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
background: #b2d4dc url("../img/login.png") no-repeat;
background-position:13px 12px;
margin: 65px auto 0 auto;
display: block;
padding: 0 17px 0 53px;
font-size: 15px;
color: #fff;
font-weight: bold;
font-family: arial;
}
.password {
width: 190px;
height: 50px;
border: 0;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
background: #3e6372 url("../img/password.png") no-repeat;
background-position:10px 12px;
margin: 20px auto 0 auto;
display: block;
padding: 0 17px 0 53px;
font-size:15px;
color: #a7b3bc;
font-weight: bold;
font-family: arial;
}
.login_button {
list-style-type: none;
margin: 40px auto 0 auto;
padding: 0;
width: 260px
}
.login_button li {
display: block;
float: left;
}
li.vk a {
width: 60px;
height: 50px;
display: block;
background: #507299 url("../img/vk.png") no-repeat center center;
-webkit-border-top-left-radius: 4px;
-webkit-border-bottom-left-radius: 4px;
-moz-border-radius-topleft: 4px;
-moz-border-radius-bottomleft: 4px;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
li.vk a:hover {
background: #486a90 url("../img/vk.png") no-repeat center center;
cursor: pointer;
}
li.fb a {
width: 60px;
height: 50px;
display: block;
background: #3b5998 url("../img/fb.png") no-repeat center center;
-webkit-border-top-right-radius: 4px;
-webkit-border-bottom-right-radius: 4px;
-moz-border-radius-topright: 4px;
-moz-border-radius-bottomright: 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
li.fb a:hover {
background: #304d8a url("../img/fb.png") no-repeat center center;
cursor: pointer;
}
.log_in {
float: right !important;
width: 120px;
}
.log_in input {
width: 120px;
height: 50px;
background: #ff6900;
border: 0;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
font-size: 14px;
text-transform: uppercase;
color: #fff;
font-weight: 700;
}
.log_in input:hover {
background: #ec6201;
cursor: pointer;
}
.footer_login {
height: 65px;
background: #b2d4dc;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
margin: 39px 0 0 0;
}
.footer_login ul {
list-style-type: none;
margin: 18px 0 0 0;
padding: 0 24px;
}
.for_pass {
float: left;
padding: 3px 0 0 0;
}
.for_pass a {
color: #3e6372;
font-size: 12px;
font-weight: 700;
}
.register {
color: #3e6372;
font-size: 12px;
font-weight: 700;
padding: 4px 0 0 0;
float: right;
}
.register a {
color: #ff6900;
text-transform: uppercase;
}
.clears {
clear: both;
}
.md-content {
-webkit-transform: translateY(0);
-moz-transform: translateY(0);
-ms-transform: translateY(0);
transform: translateY(0);
opacity: 1;
visibility: visible;
}
.overlay {
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: 1000;
background: rgba(0,0,0,0.6);
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
display: none;
cursor: pointer;
}
.you_name {
color: #3e6372;
font-size: 18px;
text-align: center;
font-weight: 700;
padding: 24px 0 0 0;
text-transform: uppercase;
}
.you_group {
color: #3e6372 !important;
font-size: 14px;
text-align: center;
padding: 6px 0 0 0;
font-weight: 400 !important;
}
.ava {
display: block;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
width: 110px;
height: 110px;
}
.ava_position {
margin: 23px auto 28px auto;
width: 110px;
position: relative;
}
.online {
width: 11px;
height: 11px;
background: #fad920;
border:5px solid #fafaff;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
position: absolute;
right: -10px;
top: 45px;
}
.border_miniprof {
border-top: 1px solid #e1e1e5;
}
.menu_prof {
text-align: center;
padding: 10px 0;
}
.menu_prof a {
color: #3e6372;
font-size: 14px;
margin: 5px 0;
display: inline-block;
}
.logout {
width: 120px;
height: 50px;
background: #ff6900;
color: #fff;
font-size: 14px;
text-transform: uppercase;
display: block;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
margin: 31px auto 26px auto;
font-weight: 700;
text-align: center;
line-height: 50px;
}
.logout:hover {
background: #ec6201;
text-decoration: none !important;
}
Сохраняем, и заливаем обратно на сайт.
4. В завершение, не забудьте почистить кэш на сайте. Установка закончена.
Чтобы визуально представить результат того, что должно получиться, рекомендуем посмотреть краткую видео демонстрацию:
Дизайнер: Brad Frost
Faq: шаблоны dle — registration.tpl шаблон теги «регистрация на сайте»
FAQ: Шаблоны DLE — registration.tpl шаблон теги оформления страницы «Регистрация на сайте», где вы можете добавить поля и формы для регистрации посетителей на сайте, это: поля регистрации и активации, защитная картинка CAPTCHA и reCAPTCHA, модуля вопросы и ответы, в этой форме можно добавить дополнительные поля с разными функциями. Раздел “Регистрация на сайте” шаблона registration.tpl не стоит редактировать без знания HTML, в основном это касается имена полей, это крайне важно. В целом большую часть кода редактировать можно, менять текст по своему усмотрению, но имена полей передают запрос на активацию и сохранение данных в скрипт через форму, если они будут неправильно отредактированы, то информация не будет добавлена в базу данных.
FAQ (полезная справка): В файле registration.tpl dle шаблона страницы “Регистрация на сайте” используются теги оформления следующих типов:
Теги | Описание |
[registration] и [/registration] | Коды выводит содержание заключенный в тегах при регистрации. |
---|---|
[validation] и [/validation] | Коды выводит содержание заключенный в тегах при активации. |
[sec_code] Защитный код (пример) [/sec_code] | Будет выводиться текст кода безопасности, в случаи подключения скрипта CAPTCHA в настройках панели управления DataLife Engine для данной страницы. |
{reg_code} | Выводит код безопасности для посетителя. |
[sec_code]{reg_code} [/sec_code] | Выводит код безопасности для посетителя в шаблонах чаще применяется такая вставка, дополнительно ещё HTML код для оформления блока капчи. |
{xfields} | Форма вывода дополнительных полей для полей профиля. Более подробно про доп поля читайте. |
[xfinput_X] | Тег вывода выбранного дополнительного поля в виде заполнения формы в нужном вам месте, где X это имя дополнительного поля. |
[recaptcha] тест [/recaptcha] | Выводят информацию, заключенную в тегах, другой вариант капчи защиты, если в настройках панели управления скрипта включен тип reCAPTCHA |
{recaptcha} | Основной тег вывода виджета reCAPTCHA, если вы подключили заранее в настройках скрипта этот тип вывода капчи. Как правило в шаблонах используется такая вставка [recaptcha]{recaptcha}[/recaptcha], дополнительно ещё HTML код для оформления формы капчи. |
Рекомендация | Советуем отказаться от применения CAPTCHA, она легко обходятся программами и скриптами, создаёт нагрузку, многим она не нравится, особенно, если была установлена сложная загадка. Не стоит использовать и reCAPTCHA, так как данные подгружаются из стороннего источника сервера Google, если он будет не доступен, ваши посетители не смогут оставить комментарий, зарегистрироваться и т.д. Создает сильную нагрузку, не всегда понятна для людей. Наилучший вариант, подключить стандартный плагин “Вопросы и Ответы”, как на сайте vhod-v-lichnyj-kabinet.ru, вопросы можно поменять за пару минут, взломать её нельзя, уникальная и не неповторимая защита. За всё время использования количество проходов достигла 0,01%, но это в основном ручной подбор. |
[question] и [/question] | Тег вывода содержания заключенный в данный код, если подключена система “Вопрос-Ответ”. |
{question} | Основной тег вывода вопроса для посетителя из заданного ранее списка вопросов и ответов [question]{question}[/question] часто применяется именно в такой связке. |
[vk] Вход через Вконтакте [/vk] | Отобразит текст заключенный в них, если включена поддержка авторизации при помощи социальной сети Вконтакте. |
{vk_url} | Код ссылки URL на авторизацию в соц. сети Вконтакте. |
[odnoklassniki] Вход через Одноклассники [/odnoklassniki] | Отобразит текст заключенный в них, если включена поддержка авторизации при помощи социальной сети Одноклассники. |
{odnoklassniki_url} | Код ссылки URL на авторизацию в соц. сети Одноклассники. |
[facebook] Facebook [/facebook] | Отобразит текст текст заключенный в них, если включена поддержка авторизации при помощи социальной сети Facebook. |
{facebook_url} | Код ссылки URL на авторизацию в соц. сети Facebook. |
[google] Google [/google] | Выводят текст заключенный в них, если включена поддержка авторизации при помощи социальной сети Google. |
{google_url} | Сформирует ссылку URL на авторизацию в соц. сети Google. |
[mailru] текст [/mailru] | Покажет текст заключенный в них, если включена поддержка авторизации при помощи социальной сети Mail ru. |
{mailru_url} | Сформирует ссылку URL на авторизацию в соц. сети Mail_ru. |
[yandex] текст [/yandex] | Выводят текст заключенный в них, если включена поддержка авторизации при помощи социальной сети Yandex. |
{yandex_url} | Выводит ссылку URL на авторизацию в соц. сети Yandex. |
Dle шаблоны *.tpl об всех файлах подробно
Страница “Регистрация на сайте” настраивается в dle шаблоне registration.tpl, готовый вариант можно увидеть в архиве движка в папке dle14_0.zip/upload/templates/Default/ или скачать по этой ссылке.
registration.zip [1,33 Kb] (cкачиваний: 71)
Авторизация на dle сайте через php
В некоторых случаях нам нужно получить необходимую информацию, закрытую для гостей определенного сайта. Для этого нам придётся авторизоваться на сайте под своим профилем. На примере рассмотрим сайты на движке DataLife Engine.
Для начала, давайте рассмотрим весь POST запрос, который мы передаём серверу:
login_name — данный параметр отвечает за логин пользователя.
login_password — как понятно из названия, это — пароль.
login=submit — эмулируем нажатие кнопки авторизации.
Очень важный фактор — если будет не заполнен хотя бы один параметр, авторизация пройдёт с ошибкой. Бывают моменты, когда в запрос добавляют несколько никому не нужных параметров, а именно — координаты нажатия курсора. Это можно не заполнять, но мы рекомендуем отправить несколько байт памяти, во избежание какой-либо ошибки.
<?php //url сайта, куда будет отправлен запрос $url = "*********"; //значение логина $login = "********"; //значения пароля $password = "*********"; // Формируем POST запрос $query_str = "login_name=".$login."&login_password=".$password."&login=submit"; // Инициализируем сеанс CURL (впишите сюда полный адрес страницы с формой) $cin = curl_init($url); // Указываем, что запрос делаем через POST curl_setopt($cin, CURLOPT_POST, 1); // Указываем строку, передаваемую в запросе curl_setopt($cin, CURLOPT_POSTFIELDS, $query_str); // Выполняем CURL запрос curl_exec($cin); // Закрываем работу с CURL curl_close($cin); ?>
Этот способ подходит только для тех сайтов, которые расположены на DLE.
Единая регистрация и авторизация на нескольких сайтах » datalife engine (dle) — система управления сайтом и контентом. официальный сайт.
Сегодня хотелось бы рассказать вам об одном из нововведении версии 5.7, а именно о том что в скрипт добавлена поддержка единой регистрации и авторизации на ваших сайтах, которые могут находится на различных доменах и работать под управлением разных копий скрипта, но при этом вашим пользователям достаточно зарегистрироваться только на одном из ваших сайтах и в дальнейшем использовать свой логин и пароль на других ваших сайтах. Единственным условием для реализации данной возможности является то, что все домены должны иметь доступ к одной и той же MySQL базе данных, в пределах одного хостера это не проблема, если хостеры разные, то MySQL сервер должен разрешать внешние подключения.
Внимание: несмотря на то что скрипт поддерживает работу с несколькими проектами, это не меняет условий лицензирования и одна лицензия выдается на один домен второго уровня, и для другого домена вам понадобится еще одна лицензия.
Итак рассмотрим более подробно как вам реализовать и использовать данную возможность:
Нам необходимо установить скрипт на основной домен, допустим http://site.ru/. Для этого делаем все как обычно, закачиваем файлы скрипта на сервер и запускаем мастер установки скрипта install.php. После того как скрипт проведет тестирование вам необходимо будет заполнить данные для доступа к MySQL серверу.
Например:
Сервер MySQL: localhost
Имя базы данных: datalife
Имя пользователя: root
Пароль: password
Эти данные вам предоставляет ваш хостер.
Следующим параметром идет Префикс, этот параметр вы можете определить и указать самостоятельно, мы например укажем: site
После того как мы успешно установили скрипт на один домен, нам необходимо установить скрипт на другой возмем для примера http://games.site.ru/. Делаем все по аналогии и данные для доступа к MySQL серверу указываем теже самые что и для первого сайта:
Сервер MySQL: localhost
Имя базы данных: datalife
Имя пользователя: root
Пароль: password
Единственным отличием является это параметр Префикс, который мы укажем другой, например укажем: games.
Итак мы получили два самостоятельных сайта http://site.ru/ и http://games.site.ru/, которые работают отдельно и между собой не связаны. Поэтому следующей нашей задачей является объединить авторизацию и регистрацию на этих сайтах. Для этого мы заходим по FTP на наш второй сайт http://games.site.ru/ и открываем файл engine/data/dbconfig.php, находим там строчку:
define ("USERPREFIX", "games");
и заменяем ее на
define ("USERPREFIX", "site");
Другими словами мы поставили для параметра
USERPREFIX
префикс от первого сайта. После этих действий ваш второй сайт будет использовать базу данных для пользователей и групп пользователей от первого сайта, а для всего остального будет использовать собственную отдельную базу данных.
Внимание: Некоторые продвинутые пользователи после этих действий решат удалить неиспользуемые в дальнейшем MySQL таблицы, но мы предостерегаем вас от этих действий, маленькие и неиспользуемые таблицы не будут вам мешать, но так как вам придется обновлять в дальнейшем каждый отдельно, то во избежания конфликтов вам нужно оставить эти таблицы, т.к. они также будут проходить процедуру обновления структуры.
Ну вот в принципе и все, как видите все достаточно просто.
Удачи вам и всего наилучшего.
Как сделать авторизацию на dle и на самопис. cms
Подскажите как сделать авторизацию на своем cms и dle.
Пробовал прописывать в сессию
Пароль от сайта dle и id
$_SESSION['dle_user_id'] = $result;
$_SESSION['dle_password'] = md5($pass);
Не работает.
Моя cms в корне. DLE в папке site.ru/dle
Расковырял плагин авторизации dle 9.8 с ppbb
Так вот тоже не работает…
$auth = array('login'=>'test', pass=>md5('test'), 'email'=>'[email protected]')
$time = time();
$_TIME = $time (86400 * 60);
$result = $db->query('insert into `dle_users` set `email`=?s, `password`=?s, `name`=?s, `user_group`=4, `reg_date`=?s, `lastdate`=?s', $auth['email'], md5($auth['pass']), $auth['login'], $time, $time);
if($result) {
$id = $db->insertId();
$this->set_cookie( "dle_user_id", $id, 365 );
$this->set_cookie( "dle_password", md5($auth['pass']), 365 );
session_name();
session_id();
@session_register( 'dle_user_id' );
@session_register( 'dle_password' );
@session_register( 'member_lasttime' );
$_SESSION['dle_user_id'] = $id;
$_SESSION['dle_password'] = md5($auth['pass']);
$_SESSION['member_lasttime'] = $time;
$_SESSION['dle_log'] = 0;
$db->query( "UPDATE LOW_PRIORITY dle_users set lastdate=?s, logged_ip=?s WHERE user_id=?s", $_TIME, $_SERVER['REMOTE_ADDR'], $id );
return true;
} else
return false;
public function set_cookie($name, $value, $expires) {
if( $expires )
$expires = time() ($expires * 86400);
else
$expires = FALSE;
if( PHP_VERSION < 5.2 )
setcookie( $name, $value, $expires, "/", DOMAIN . "; HttpOnly" );
else
setcookie( $name, $value, $expires, "/", DOMAIN, NULL, TRUE );
}
Отдельные страницы входа и регистрации для дле
Модуль или хакотдельные страницы Входа и регистрации для Dle – красиво оформить страницу регистрации и входа на сайта с блоком пароль и логин, автоматическим входом через соц. сети Вконтакт и Facebook. Отдельные страницы входа и регистрации выполнены в метровском дизайне.
Установка отдельные страницы Входа и регистрации из раздела dle хаки
Делайте все по инструкции в архиве, более полная инструкция Three-pages.rar/Модуль/install.html
Открыть /engine/engine.php в нем ищем:
case "feedback" : include ENGINE_DIR . '/modules/feedback.php'; break;
Ниже вставляем:
case "login" : include ENGINE_DIR . '/modules/login.php'; break;
Ищем:
elseif ($do == 'feedback') $nam_e = $lang['title_feed'];
Ниже вставляем:
elseif ($do == 'login') $nam_e = $lang['title_login'];
Открываем /language/Russian/website.lng в нем ищем:
'wysiwyg_language' => "ru",
Ниже вставляем:
'title_login' => "Авторизация на сайте",
Открываем /engine/init.php в нем ищем:
$tpl->set( '{lostpassword-link}', $PHP_SELF . "?do=lostpassword" );
Ниже вставляем:
$tpl->set( '{loginpage-link}', $PHP_SELF . "?do=login" );
Далее скрываем ваш шаблон!
Открываем templates/ваш-шаблон/main.tpl в нем закрываете ваши стили, скрипты и каркас шаблона! ( Не закрывайте {headers} и {AJAX} ):
[not-aviable=login|register|lostpassword] ..... [/not-aviable]
Пример:
[not-aviable=login|register|lostpassword] <link rel="stylesheet" href="/engine/modules/styles.css" type="text/css"> <script type="text/javascript" src="/templates/orating_pack.js"></script> [/not-aviable] [not-aviable=login|register|lostpassword]
<body> бла-бла-бла-бла-бла [/not-aviable] {info} {content}
Далее делаем красивый адрес страниц:
Открываем /.htaccess после
RewriteEngine On,
вставляем:
( reg / login / reset - можете сменить на своё! ):
RewriteRule ^reg(/?) $ /?do=register [L] RewriteRule ^login(/?) $ /?do=login [L] RewriteRule ^reset(/?) $ /?do=lostpassword [L]
Внимание: В шаблонах страниц есть закомментированный код, если он вам понадобится – раскомментируйте его, а если нет, то удалите!
Внимание: Стиль тэга {info} – bean-alert note
Автор login.php: ХЗ
от 23.10.2022
Автор Модификации: Tesak.
Автор дизайна данной страницы: Qnut.
Версия движка: DataLife Engine 10.x
Скачать хаки для dle, как хак Отдельные страницы Входа и регистрации для ДЛЕ
Three-pages.rar [428,55 Kb] (cкачиваний: 874)