«космическая» форма входа мини профиль для 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 — login.tpl шаблон теги «панели авторизации на сайте»
FAQ: Шаблоны DLE — login.tpl шаблон теги оформления формы «Панели авторизации на сайте», поля «Логин» и «Пароль», ссылки на зарегистрироваться или восстановить пароль (забыли), получить доступ с помощью аккаунта соц сети , если посетитель ещё не был зарегистрирован. Если пользователь зарегистрировался, в панели можно добавить ссылки на “Добавить публикацию, Сообщения, Закладки, Непрочитанные новости, Доп поля, Профиль, Фото” и тому подобное.
FAQ (полезная справка): В файле login.tpl шаблон DLE настраивается в разделе “Панель авторизации на сайте”, вывод панели авторизации посетителя на сайте, применяется следующих тегов:
Теги | Описание |
{registration-link} | Тег устанавливает ссылку на страницу регистрации посетителя. |
---|---|
{lostpassword-link} | Тег устанавливает ссылку на страницу восстановления пароля. |
{logout-link} | Тег ссылки на выход пользователя с сайта, разлогирование. |
{admin-link} | Добавляет ссылку, чтобы пройти в админпанель скрипта. |
{pm-link} | Открыть страницу персональных сообщений. |
{new-pm} | Вывести количество новых персональных сообщений. |
{all-pm} | Тег вывода общего количества персональных сообщений. |
{favorite-count} | Выводит количество публикаций, которые добавил пользователь себе в закладки на сайте. |
{foto} | Можно вывести аватар пользователя. |
[admin-link] Профиль[/admin-link] | Выводит содержимое в тегах, если пользователь имеет доступ к админпанели скрипта. |
{profile-link} | Проставляет ссылку на страницу профиль пользователя. |
{stats-link} | Ссылка на статистику на сайте. |
{addnews-link} | Проставляет ссылку на страницу добавления новости на сайте. |
{favorites-link} | Ссылка на просмотр закладок пользователя. |
{newposts-link} | Проставляет ссылку на страницу непрочитанных новостей пользователем с последнего посещения им сайта. |
{group-icon} | отобразит иконку группы пользователя. |
{login-method} | В зависимости от установленного в настройках скрипта типа авторизации, вывод что необходимо вводить пользователю: логин или E-mail |
[vk] Вконтакте [/vk] | Можно добавит любые слова заключенный в них, если включена поддержка авторизации при помощи социальной сети Вконтакте. |
{vk_url} | Ссылка URL Вконтакте на авторизацию в соц. сети. |
[odnoklassniki] Одноклассники [/odnoklassniki] | Можно добавит любые слова заключенный в них, если включена поддержка авторизации при помощи социальной сети Одноклассники. |
{odnoklassniki_url} | Ссылка URL Одноклассники на авторизацию в соц. сети. |
[facebook] текст [/facebook] | Можно добавит любые слова заключенный в них, если включена поддержка авторизации при помощи социальной сети Facebook. |
{facebook_url} | Ссылка URL Facebook на авторизацию в соц. сети. |
[google] текст [/google] | Выводят текст заключенный в них, если включена поддержка авторизации при помощи почты Google. |
{google_url} | Выводит ссылку URL на авторизацию в почты Google. |
[mailru] текст [/mailru] | Выводят текст заключенный в них, если включена поддержка авторизации при помощи социальной сети Mail ru |
{mailru_url} | Выводит ссылку URL на авторизацию в соц. сети Mail_ru. |
[yandex] текст [/yandex] | Выводят текст заключенный в них, если включена поддержка авторизации при помощи социальной сети Yandex. |
{yandex_url} | Выводит ссылку URL на авторизацию в соц. сети Yandex. |
[xfgiven_x] [xfvalue_x] [/xfgiven_x] | Выводится дополнительное поле “x“, если поле не пустое. Более подробно про доп поля читайте. |
[xfnotgiven_x] текст [/xfnotgiven_x] | Выводится текст, указанный в них, если дополнительное поле пользователя не было задано, где X это имя дополнительного поля профиля пользователя. |
[xfvalue_x] | Выводится значение дополнительного поля “x”, где “x” название дополнительного поля. |
{group} | Выводит название группы пользователя сайта в которой он находится в данный момент. |
Dle шаблоны *.tpl об всех файлах подробно
Форма “Панель авторизации на сайте” настраивается в шаблоне login.tpl, готовый вариант можно увидеть в архиве движка в папке dle14_0.zip/upload/templates/Default/ или скачать по этой ссылке.
login.zip [1,21 Kb] (cкачиваний: 30)
Единая регистрация и авторизация на нескольких сайтах » 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
Хак представляет из себя отдельную страницу авторизации пользователей сайта. Установка очень проста и потребует минимум изменений.
Для начала разместите файлы в свои места, login.php в папку /engine/modules/, а файл шаблона в в папку с шаблоном /templates/skin/ Затем добавьте запись в файле /engine/engine.php ниже switch ( $do ) { напишите
case "name_module" :
include (DLEPlugins::Check(ENGINE_DIR . '/modules/login.php')); // Для версий движка 13 и выше.
include ENGINE_DIR . '/modules/login.php'; // Для версии движка ниже 13.
break;
Где name_module используйте любое название страницы но главное, чтобы оно не совпадало с другими страницами и затем новая страница будет доступна по адресу http://sitename/index.php?do=name_module
P.S.1 У меня так и названа login
P.S.2 В зависимости от версий движка, код в login.php может быть немного другим, это относиться в основном к авторизации через социальные сети.
В файле login.php есть два тега
{class}
и
{btnClose}
. Их я использую для ajax вызова формы авторизации. И назначение их я думаю не должно вызывать вопросов. Можете поправить по себя или удалить если у Вас нету красивых модульных окошек.
if($_SERVER['REQUEST_METHOD'] == 'POST') $tpl->set( '{class}', "ajax-login" );
else $tpl->set( '{class}', "" );
if($_SERVER['REQUEST_METHOD'] == 'POST') $tpl->set( '{btnClose}', "<button type="button" class="mfp-close">×</button>" );
else $tpl->set( '{btnClose}', "" );
Обращение к странице при помощи ajax точно такое же как и обычный вход. На ссылку с адресом на страницу можно повесить получение формы входа, а если js дал сбой или по ссылке нажали средней кнопкой мыши то будет стандартная страница.
P.S.3
{btnClose}
Чисто отсебятина, я использую скрипт
Magnific Popup
и там у меня проблемки с добавлением кнопки на закрытие окна, пришлось её добавить в сам шаблон. Так вот её можно не использовать и удалить вовсе.
Стилизуйте формы и шаблоны самостоятельно, Удачи в установке.
Автор: TeraMoune
Версия DLE: любая