$u = new User();
if ($u->isRegistered()) {
if (Config::get("ENABLE_USER_PROFILES")) {
$userName = '<a href="' . $this->url('/profile') . '">' . $u->getUserName() . '</a>';
} else {
$userName = $u->getUserName();
}
echo "<span class=\"sign-in\">Здравствуйте <b>$userName</b><br /><a href=\"".$this->url('/login', 'logout')."\">".t('Sign Out')."</a></span>";
} else {
echo "<span class=\"sign-in\"><a href=\"".$this->url('/login')."\">Вход на сайт</a></span> или <span class=\"register\"><a href=\"".$this->url('/register')."\">Регистрация</a></span>";
}
На самом деле, чтобы дать ответы на поставленные вопросы требуется куда дополнительной информации. Какой шаблон используете, какая версия C5, дружите ли с PHP и т.п.
olga_work6 писал(а):Все три варианта авторизации - это то, что надо. Мой вариант еще проще, без регистрации, т.к. сайт корпоративный, регистрировать пользователей буду сама, через админку и затем высылать им логин и пароли на почту.
olga_work6 писал(а):2) Куда ведет эта ссылка: . $this->url('/profile') ?
olga_work6 писал(а):2) Куда ведет эта ссылка: . $this->url('/login') ?
olga_work6 писал(а):3) Config::get("ENABLE_USER_PROFILES") - это стандартная С5 конструкция?
olga_work6 писал(а):Если посоветуете что почитать по PHP, буду признательна. Книжек много, но мне нужно чтобы "быстро и понятно" в приложении к С5 (очень уж мне понравился этот движок, хочу в нем разобраться) , можно на английском.
olga_work6 писал(а):меня интересуют бэкенды, маршрут доступа к файлам, мне как-то проще по FTP посмотреть.
olga_work6 писал(а):И еще, проблемка осталась: если мы используем стандартный логин, как сделать для него форму авторизации? Как я догадываюсь, всплывающее окно с помощью jquerry реализовано
olga_work6 писал(а):а в Вашем варианте - скорее всего собственный класс CSS в "теме", да? Только вот не могу сообразить, как встроить форму ввода на страницу сайта.
<div id="user-controls">
<?php
$u = new User();
if ($u->isRegistered()) {
?>
<a href="<?php echo DIR_REL ?>/index.php/profile/" class="profile-link"><span><?php echo $u->getUserName(); ?></span></a> |
<a href="<?php echo DIR_REL ?>/index.php/login/logout/" class="signout-link"><span>Выйти</span></a>
<?php
} else {
?>
<a href="login" class="signin"><span>Войти</span></a>
<fieldset id="signin_menu">
<form method="post" id="signin_form" action="<?php echo $this->url('/login', 'do_login')?>">
<div id="login-form-wrapper">
<p>
<label for="uName"><?php if (USER_REGISTRATION_WITH_EMAIL_ADDRESS == true) { ?>
Email адрес
<?php } else { ?>
Имя пользователя
<?php } ?></label>
<input id="uName" name="uName" <?php echo (isset($uName)?'value="'.$uName.'"':'');?> title="Имя пользователя" placeholder="Имя пользователя" required tabindex="1" type="text" />
</p>
<p>
<label for="uPassword">Пароль</label>
<input id="uPassword" name="uPassword" value="" title="Пароль" placeholder="Пароль" required tabindex="2" type="password" />
</p>
<p>
<input id="submit" name="submit" value="Войти" tabindex="3" type="submit" />
</p>
<p class="remember">
<input id="uMaintainLogin" name="uMaintainLogin" value="1" tabindex="4" type="checkbox" title="Автоматически входить при каждом посещении сайта в течении двух недель" />
<label for="uMaintainLogin">Запомнить меня</label>
</p>
</div>
<?php $rcID = isset($_REQUEST['rcID']) ? preg_replace('/<|>/', '', $_REQUEST['rcID']) : $rcID; ?>
<input type="hidden" name="rcID" value="<?php echo $rcID?>" />
</form>
</fieldset>
<?php } ?>
</div>
#user-controls {
margin:0 auto;
position: relative;
}
#user-controls a.signin {
background: #BCD2C2;
padding:4px 6px 6px;
text-decoration:none;
font-weight:bold;
color:#fff;
-webkit-border-radius:4px;
-moz-border-radius:4px;
border-radius:4px;
}
#user-controls a.signin:hover {
background: #9FC8A8;
color: #FFFFFF !important;
}
#user-panel a.signin {
position:relative;
margin-left:3px;
text-decoration: none!important;
}
a.signin span {
background-image:url("images/key-up.gif");
background-repeat:no-repeat;
background-position: 100% 50%;
padding: 4px 23px 6px 0;
}
#user-controls a.menu-open {
background:#9FC8A8!important;
color:#2F5231!important;
outline:none;
-moz-box-shadow: #999999 2px 2px 2px;
-webkit-box-shadow: #999999 2px 2px 2px;
-o-box-shadow: #999999 2px 2px 2px;
box-shadow: #999999 2px 2px 2px;
}
#small_signup {
display:inline;
float:none;
line-height:23px;
margin:25px 0 0;
width:170px;
}
a.signin.menu-open span {
background-image:url("images/key-down.gif");
color:#2F5231;
}
#signin_menu {
-moz-border-radius-topleft:5px;
-moz-border-radius-bottomleft:5px;
-moz-border-radius-bottomright:5px;
-webkit-border-top-left-radius:5px;
-webkit-border-bottom-left-radius:5px;
-webkit-border-bottom-right-radius:5px;
border-top-left-radius:5px;
border-bottom-left-radius:5px;
border-bottom-right-radius:5px;
-moz-box-shadow: #999999 2px 2px 2px;
-webkit-box-shadow: #999999 2px 2px 2px;
-o-box-shadow: #999999 2px 2px 2px;
box-shadow: #999999 2px 2px 2px;
display:none;
background-color:#9FC8A8;
position:absolute;
width:235px;
z-index:100;
border:1px transparent;
text-align:left;
padding: 7px;
top: 11px;
right: 0px;
margin-top:5px;
margin-right: 0px;
*margin-right: -1px;
color:#2F5231;
font-size:11px;
}
#login-form-wrapper {
background-color: #D2E5D6;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
padding: 10px;
}
#signin_menu input[type=text], #signin_menu input[type=password] {
display:block;
width:203px;
}
#signin_menu p {
margin:0;
}
#signin_menu a {
color: #2F5231 !important;
}
#signin_menu label {
font-weight:normal;
}
#signin_menu p.remember {
padding:10px 0;
}
#signin_menu p.forgot, #signin_menu p.complete {
clear:both;
margin:5px 0;
}
#signin_menu p a {
color:#2F5231!important;
}
<script type="text/javascript">
$(document).ready(function() {
<?php
$u = new User();
if (!$u->isRegistered()) {
?>
$(".signin").click(function(e) {
e.preventDefault();
$("fieldset#signin_menu").toggle();
$(".signin").toggleClass("menu-open");
});
$("fieldset#signin_menu").mouseup(function() {
return false;
});
$(document).mouseup(function(e) {
if($(e.target).parent("a.signin").length==0) {
$(".signin").removeClass("menu-open");
$("fieldset#signin_menu").hide();
}
});
<?php } ?>
});
</script>
public function do_login() {
................
if( $_REQUEST['format']=='JSON' ){
$jsonHelper=Loader::helper('json');
echo $jsonHelper->encode($loginData);
die;
}
}
<script type="text/javascript">
$(document).ready(function() {
$("#submit").click(function () {
$.ajax({
type: "POST",
url: '<?php echo $this->url('/login', 'do_login')?>',
data: {"format": 'JSON', },
dataType: "json",
beforeSend: function() {
},
success: function(data) {
if (data.success == 1) {
document.location.reload(true);
} else {
alert('Неверное имя пользователя или пароль.');
}
},
error: function(req, textStatus) {
alert('Ошибка соединения.');
}
});
return false;
});
});
</script>
olga_work6 писал(а):Здравствуйте, вопрос по модулю авторизации.
Поставленная задача: сделать на сайте раздел "для своих", куда можно попасть по паролю.
Ссылку Log in разместить стандартно, в верхнем правом углу. При нажатии - ввод пароля и переход в закрытый раздел.
1. Если я правильно поняла, модуль один и для входа в админскую панель и для доступа зарегистрированных пользователей к закрытымм разделам сайта ?
2. Как "встроить" модуль в шаблон сайта ? Чтобы форма авторизации появлялась на страничке сайта.
3. Если есть другие, бесплатные варианты модуля авторизации, посоветуйте.
Вернуться в Стандартные модули concrete5
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1