Единая регистрация и авторизация на нескольких сайтах » DataLife Engine (DLE) — система управления сайтом и контентом. Официальный сайт.

«космическая» форма входа мини профиль для dle

Всем привет! Появилась свободная минутка, поэтому решил с пользой ее провести и сделать что-нибудь нужное для сайта 🙂

Итак, перед вами альтернатива стандартной форме входа DLE легкий мини профиль. Открытие окон сопровождается анимацией (то, что вы получите в итоге, можете посмотреть в конце статьи). Дизайн довольно приятный, поэтому данная связка подойдет для многих сайтов. Модуль тестировался на DLE версии 10.0 – 11.1

«Космическая» форма входа   мини профиль для DLE

Внимание! Для того чтобы вход через социальные сети функционировал без проблем, необходимо установить соответствующие настройки в разделе «Пользователи» – настройка социальных сетей в панели управления сайтом.

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}">Личные сообщения&nbsp;&nbsp; {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 шаблон теги «панели авторизации на сайте»

login.tpl шаблон «Панели авторизации на сайте»
FAQ: Шаблоны DLElogin.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: любая

Похожее:  Вы не авторизированы на сайте :: DLE FAQ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *