Доступ к сайту только для авторизованных пользователей

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 20 апреля 2014 в 06:43
Всем привет!
Поиск ничего не дал, несколько тем есть конечно но ни одного толкового совета так и не нашел.

Может быть все таки кто то подскажет?

Еще раз повторю задачу.

Закрыть абсолютно все страницы сайта для неавторизованных посетителей

т.е.

Если заходит авторизованный пользователь сайт доступен.
Если заходит гость показываем определенную страницу с формой авторизации.

И если кто то знает решение то пожалуйста опишите как можно подробнее, с движкой еще только знакомлюсь)
#2 20 апреля 2014 в 09:49


Всем привет!
Поиск ничего не дал, несколько тем есть конечно но ни одного толкового совета так и не нашел.

Может быть все таки кто то подскажет?

Еще раз повторю задачу.

Закрыть абсолютно все страницы сайта для неавторизованных посетителей

т.е.

Если заходит авторизованный пользователь сайт доступен.
Если заходит гость показываем определенную страницу с формой авторизации.

И если кто то знает решение то пожалуйста опишите как можно подробнее, с движкой еще только знакомлюсь)

Instant
в модулях, статьях, разделах, т.п., закрываете доступ гостям.
Главная → Компоненты → Профили пользователей- Разрешить гостям просматривать профили: нет
#3 20 апреля 2014 в 10:56
так просто shock

Спасибо, попробую v
#4 20 апреля 2014 в 11:10
К сожалению данный вариант не подходит т.к. отображается меню сайта и все остальное, что как раз необходимо спрятать.

Нужна именно ширма как на мойсайт.ру/admin

Может быть, получится как то /splash/splash.php приспособить под эту задачу?
#5 20 апреля 2014 в 11:48
Instant, на главной странице открывать компонент профили, и тогда если этот компонент закрыт от гостей(как и все остальное), будет открываться форма авторизации при заходе на сайт.
#6 20 апреля 2014 в 13:19
Вставляете строчку такого содержания
  1. if(!$inUser->id){cmsCore::redirect('/login');}
во фронтэнды страниц (после
  1. if($do=='additem) {...
или
  1. if($do == 'publish') {...
и др.) тех компонентов, которые хотите закрыть от гостей.
#7 20 апреля 2014 в 13:37


К сожалению данный вариант не подходит т.к. отображается меню сайта и все остальное, что как раз необходимо спрятать.

Нужна именно ширма как на мойсайт.ру/admin

Может быть, получится как то /splash/splash.php приспособить под эту задачу?

Instant
Заходите в меню и там тоже настраиваете: убираете видимость гостями
#8 20 апреля 2014 в 16:51
Не ожидал такой мощной огневой поддержки!
Всем ОГРОМНОЕ спасибо, ценю. smile
На неделе поковыряюсь, отпишусь.
#9 21 апреля 2014 в 08:37
Instant, выложу свой пример. Модуль авторизации немного поправил, и добавил класс с оформлением. На какую бы вы страницу не перешли под гостем, всегда будет окно запроса авторизации

1. Открываете файл template.php вашего шаблона. После <body> вставляете следующее

  1. <?php if (!$inUser->id){ ?>
  2. <link href="/templates/<?php echo TEMPLATE; ?>/css/login.css" rel="stylesheet" type="text/css" />
  3.  
  4. <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" class="login_page_bg">
  5. <tr>
  6. <td align="center" valign="middle">
  7. <div id="form">
  8. <?php $inPage->printModules('auth'); ?>
  9. </div>
  10. </td>
  11. </tr>
  12. </table>
  13. <?php } else { ?>
  14.  
и перед
  1. <?php if($inConf->debug && $inUser->is_admin){
вставляете
  1. <?php } ?>

2. в position.txt дописываете: auth. сохраняете
3. заходите в админку, находите модуль авторизации, переходите к редактированию, выбираете позицию для показа "auth", и ставите галочку, показывать на всех страницах. Сохраняете...

если нужен будет код модуля авторизации… пишите…
#10 21 апреля 2014 в 09:49
Товарищи, не усложняйте. Если следовать вопросу ТС буквально, то это ровно одна строчка кода в template.php
  1. if(!$inUser->id and $inCore->component != 'registration') cmsCore::redirect('/login');
#11 21 апреля 2014 в 12:28
Pasha, разные подходы. У меня была определённая цель при моем решении) но это не столь важно
#12 18 мая 2014 в 15:51
balooo, Вам отдельное спасибо!
Ваш вариант оказался наиболее подходящим для выполнения дананной задачи.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.