Плагин "Улучшенный "Закрытый режим""


Как известно, движок позволяет использовать «Закрытый режим», когда незалогиненный/незарегистрированный пользователь не видит ничего кроме страницы авторизации. Но если вы хотите открыть к примеру только главную страницу, или rss-ленту, или страницу «О проекте», то вам весьма подойдет этот плагин, который вы можете скачать в каталоге.

Плагин доступен на GitHub

49 комментариев

avatar
А как выбрать что отображать?
avatar
В config залез, но все равно не понял как что в ключать… Напишите плиз пример как должен выглядеть конфиг чтобы отображалась главная странница!
avatar
'index' => array(), // Главная страница
'login' => array(), // Страница авторизации (не рекоммендую закрывать)
'page' => array('about'), // Страница about модуля page
'registration' => array(), // Страница регистрации (не рекоммендую закрывать)
'rss' => array('index'), // Страница rss-потока
'error' => array(), // Страница ошибки (не рекоммендую закрывать)

Главная открыта
Страница авторизации открыта
Страница about открыта
Страница регистрации открыта
rss-поток открыт для главной страницы
Страница 404 открыта
avatar
Germis спасибо, всё как всегда типтоп :)
avatar
на данный момент стоит в плагене открытая главная страница? Если да, то у меня все равно при заходе на главную страничку, отсылает «пожалуйста войдите на сайт»

тестануть можно тут, я на сутки оставлю закрытый режим с включенным плагином
avatar
После установки не забудьте выключить родной «закрытый режим».
— сделали?
avatar
сайт.ру/admin/site/settings/
Использовать закрытый режим работы сайта: нет
Уже затем активируем сам плагин.
avatar
Благодарю, не в читался в инструкцию, почему то показалось что надо наоборот сначала, запустить свой закрытый режим
как запретить переход с 1 странички?
avatar
тоесть, при нажатии юзером на страничку 2 до последней -> отправляет на «войдите в систему»
avatar
Если делать так 'index'=> array('page1'),
то работает, но не показывается сама главная, а только xxx.ru/index/page1/

Надо автора плагина лучше спросить, может добавить ещё функционал.
avatar
это в /plugins/closedsite/config/config.php
avatar
сижу пробую, если будут результаты, отпишусь
avatar
Результатов бублик…
avatar
Бублик или рогалик?
avatar
решили проблему? а то такая же
avatar
Помогите убогому выложете полный код конфига, чтобы было открыто только главная страница! У меня нихрена не получается ;(
avatar
из
'index' => array(), // Главная страница
'login' => array(), // Страница авторизации (не рекоммендую закрывать)
'page' => array('about'), // Страница about модуля page
'registration' => array(), // Страница регистрации (не рекоммендую закрывать)
'rss' => array('index'), // Страница rss-потока
'error' => array(), // Страница ошибки (не рекоммендую закрывать) 


оставь только
'index' => array(), // Главная страница
avatar
и это
'login' => array(), // Страница авторизации (не рекоммендую закрывать)
'registration' => array(), // Страница регистрации (не рекоммендую закрывать)
avatar
Отличный плагин, спасибо, а можно ли его настроить так, чтобы перекидывало не на страницу login, а оставался бы на тойже странице, но только всплывало бы окно ввода логина и пароля. Как будто нажал на кнопку войти.
avatar
так перепаши сам… тут все просто
avatar
Заметил прикол! Если вы попробуете зайти на сайт вот так
avatar
ea.ixterm.ru/tag/%D0%A1%D0%BE%D0%B9%20%D0%A4%D0%BE%D0%BD%D0%B3/
то у вас выйдет страничка реги

А если через сохраненную копию поисковика — hghltd.yandex.net/yandbtm?fmode=inject&url=http%3A%2F%2Fea.ixterm.ru%2Ftag%2F%25D0%25A1%25D0%25BE%25D0%25B9%2520%25D0%25A4%25D0%25BE%25D0%25BD%25D0%25B3%2F&text=%D1%82%D0%B5%D0%B3%20%D1%84%D0%BE%D0%BD%D0%B3&l10n=ru&sign=9deb4a1816e16709235820005e38a83b&keyno=0

О чудо, а где же закрытый режим? Коменты и тд, конечно не оставишь, но внутренности любого топика теперь можно разглядеть, так думаю можно и с любой другой страничкой на сайте.
avatar
К сожалению плагин пока не умеет подчищать базу поисковиков.
avatar
Germis, скажи пожалуйста, а можно ли сделать наоборот, не закрывать сайт целиком и в конфиге прописывать разрешенные страницы, а хотелось бы сайт открытым держать, но некоторые странички закрыть от незарегистрированных?
Я понимаю что в конфиге можно прописать все разрешенные странички, а та, которая должна быть недоступна ее не прописывать. Но как тогда будет работать такая конструкция? Повлияет ли это на скорость загрузки страниц? Если я правильно понимаю, то он каждый раз проверят перед загрузкой есть ли страница в списке разрешенных?
avatar
можно.
например закрываем доступ к профилям:
оставляем в конфиге
$config['allowedelements'] = array(
    'profile'   => array()			,
									);

и меняем хук
public function HookInitAction(){
		$oCurrentUser		= $this->User_GetUserCurrent();
		if($oCurrentUser) return true;
	
		$aAllowedElements	= Config::Get('plugin.closedsite.allowedelements');
		$aAllowedactions	= array_keys($aAllowedElements);
		
 	  $sCurrentAction		= Router::GetAction();
		$sCurrentEvent		= Router::GetActionEvent();

		if (!zin_array($sCurrentAction,$aAllowedactions)){
			return Router::Action('login');
		}

		$aAllowedEvents		= $aAllowedElements[$sCurrentAction];
    if( (!empty($aAllowedEvents)) and (!in_array($sCurrentEvent,$aAllowedEvents)) ){
			return Router::Action('login');		
		}
	}
на
public function HookInitAction(){
		$oCurrentUser		= $this->User_GetUserCurrent();
		if($oCurrentUser) return true;
	
		$aAllowedElements	= Config::Get('plugin.closedsite.allowedelements');
		$aAllowedactions	= array_keys($aAllowedElements);
		
    $sCurrentAction		= Router::GetAction();
		$sCurrentEvent		= Router::GetActionEvent();

		if (in_array($sCurrentAction,$aAllowedactions)){
			return Router::Action('login');
		}
		//$aAllowedEvents		= $aAllowedElements[$sCurrentAction];
    /*if( $sCurrentEvent and in_array($sCurrentEvent,$aAllowedElements[$sCurrentAction]) ){
			return Router::Action('login');		
		} */
	}
avatar
Спасибо, действительно работает так, как я хотел, но почему-то в прописав в конфиге вот такую строку
'blog'      => array('news')               ,

т.е. я хотел запретить доступ к определенному коллективному блогу, он запрещает доступ ко всем блогам, адрес которых начинается с blog/
Значение в array не срабатывает, можно ли исправить эту проблему?
avatar
игрался только с profile и my, с остальными масками для закрытия можно еще поиграть
avatar
в принципе эту возможность (открывать только некоторые или наоборот закрывать только некоторые страницы) можно сделать опционально в конфиге, чуть чуть поигравцись с плагином
avatar
поисковики будут индексировать сайт?
avatar
Нет. Поисковый бот = анонимный посетитель
avatar
Люди, кто может знать как влияет на быстродействие движка данный плагин? У меня такое ощущение, что сайт стал грузиться медленнее. Или это у меня одного так?
avatar
Поддерживаю вопрос, что произойдет с индексацией сайта. Допустим я оставил только главную.
avatar
Перечитав все комментарии, я так и не понял, что необходимо сделать, дабы появились линки на странице авторизации? На данный момент включен закрытый режим + регистрация по инвайтам, а так же активирован плагин.
1. надо отключить родной закрытый режим или же сначала активировать плагин, а затем отключить?
2. надо удалить все и оставить один или же что делать в конфиге?
'index' => array(), // Главная страница
'login' => array(), // Страница авторизации (не рекоммендую закрывать)
'page' => array('about'), // Страница about модуля page
'registration' => array(), // Страница регистрации (не рекоммендую закрывать)
'rss' => array('index'), // Страница rss-потока
'error' => array(), // Страница ошибки (не рекоммендую закрывать)
avatar
сайт.ру/admin/site/settings/
Использовать закрытый режим работы сайта: нет
Уже затем активируем сам плагин.

В плагине по дефолту прописано следующие:
'index' => array(), // Главная страница
'login' => array(), // Страница авторизации (не рекоммендую закрывать)
'page' => array('about'), // Страница about модуля page
'registration' => array(), // Страница регистрации (не рекоммендую закрывать)
'rss' => array('index'), // Страница rss-потока
'error' => array(), // Страница ошибки (не рекоммендую закрывать)


Эти параметры открывают следующие страницы:
Главная открыта — сайт.ру
Страница авторизации открыта — сайт.ру/login
Страница about открыта — сайт.ру/page/about
Страница регистрации открыта — сайт.ру/registration
rss-поток открыт для главной страницы — сайт.ру/rss
Страница 404 открыта — сайт.ру/error

Если нужно например убрать сайт.ру/page/about, то просто удаляем строку:
'page' => array('about'), // Страница about модуля page
avatar
Loci, подскажите как добавить настройку показа сайт.ру/блог/блогнейм?

я хочу, чтобы было видно что у нас есть внутри блога — топики до ката, но целиком показывать не хочу.

настройка вида
'blog'			=> array('')
открывает все полностью
avatar
тут гдето была статья которая скрывала топики от незарегистрированных пользователей. Там какраз делалось чтоб до ката могли читать все, а полностью уже под авторизацией.
Я не помню названия. Нужно искать.
avatar
Нашел)) в избранном был))
Вопрос о доступе под кат — livestreet.ru/blog/6653.html
avatar
Мне вот интересно, а роботы с поисковиков будут иметь доступ в закрытую область сайта? допусти робот тыкнул на статью, а там авторизация, и вывел страницу авторизации в результатах поиска, это не есть гуд!
avatar
Робот не тыкнет на статью, сайт не будет индексироваться поисковиками. А что плохого в индексации страницы регистрации?)
avatar
а ключевые фразы и заголовки статей, забыли? зачем поисковику страница авторизации?
avatar
комментарии не читаем — пишем
avatar
Хмм, если оставить
'registration'	=> array()

, то перестает работать регистрация по инвайтам, можно ввести что угодно в поле приглашения и благополоучно перейти на страницу регистрации.
avatar
Да, уточню: помимо «Улучшенног „Закрытого режима“ используется AceAdminPanel. И была немного модифицирована protected function EventInvite() в classes/actions/ActionRegistration.class.php для того, чтобы можно было отправлять ссылки на инвайты в формате sitename/registration/invite/?invite_code=123456 (изменения начиная с 300 строки):

if (isset($_GET['invite_code']) || isPost('submit_invite')) {
            if ($this->CheckInviteRegister()) {
                $sInviteId=$this->GetInviteRegister();
            } else {
...


При переходе по ссылке sitename/registration/invite/?invite_code=123456 в HookInitAction из HookClosedsite.class.php приходят action= „registration“ и пустой event= „“. При 'registration' => array() в конфиге плагина, пропускает юзера дальше, но непонятно почему не проверяется валидность кода приглашения, хотя Config::Get('general.reg.invite')==true
avatar
Отбой, кажется разобрался в чем дело: инвайт сохраняется в сессии, и если уже был введен правильный инвайт, но регистрации по нему произведено не было, то при последующем вводе неверного инвайта из сессии будет взят id ранее введенного но не использованного верного.
avatar
А как открыть доступ конкретному посту 32 блога 'blog_name', не открывая доступ ко всему блогу?
есть что-нибудь наподобие
'blog' => array('blog_name/32'),
?
avatar
Подскажите пжл как закрыть от гостей только один конкретный блог /blog/xxxx/?
  • Rega
  • 0
avatar
Внезапно заметил, что при включенном nice url можно в любой пост зайти по прямой ссылке, несмотря на то, что разрешены только несколько статических страниц. Как это обойти?
avatar
Кто-нибудь решил проблему с тем как закрыть конкретный блог? Пробовал и так, и этак, закрывает только все блоги вместе.
Заодно попробовал, как и в основной конфигурации указано, закрыть только страницу page/about. Та же самая история, закрывает все статичные страницы сразу. Может быть тогда проблема в хуках? Но самостоятельно что-то не получается разобраться.
Соответственно, у меня хуки, которые от товарища netlanc, нужно было закрыть доступ только к конкретным страницам.
avatar
Собственно, подтвердилась проблема с хуками. Если поставить хуки от автора и сделать полностью закрытый сайт с несколькими разрешёнными страницами, то можно, получается, в данном случае, открыть доступ к какому-то конкретнму блогу. Осталось только разобраться что же не так в хуках.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.