Доступ к сайту только для администрации
По нужде сделал что-то вроде «Ведутся технические работы». Доступ к сайту будет закрыт всем кроме администрации.
1. открываем /plugins/aceadminpanel/classes/actions/ActionAdminSiteSettings.class.php
находим
после, добавляем:
2. открываем /config/config.php
находим
после, добавляем:
далее, находим
после, добавляем:
3. заходим в /classes/actions/ и создаем ActionReconstruction.class.php
добавляем:
4. заходим в /classes/actions/ и открываем Init.class.php
находим
после, добавляем
5. /templates/skin/ваш-шаблон/actions/ и создаем папку ActionReconstruction
создаем файл index.tpl, в нем добавляем
6. /templates/language/russian.php
до
добавляем
7. /plugins/aceadminpanel/templates/language/russian.site_settings.php
до
добавляем
Это все.
Для авторизации переходим site.ру/login/
В админпанель->сайт->Настройки под галочкой «Использовать закрытый режим работы сайта», появится наша галочка с возможностью отключения сайта.
п.с. если есть способ эффективнее сделать это, поделитесь.
1. открываем /plugins/aceadminpanel/classes/actions/ActionAdminSiteSettings.class.php
находим
'adm_set_general_close' => array(
'type' => 'checkbox',
'config' => 'general.close',
),
после, добавляем:
'adm_set_general_reconstruction' => array(
'type' => 'checkbox',
'config' => 'general.reconstruction',
),
2. открываем /config/config.php
находим
$config['router']['config']['action_not_found'] = 'error';
после, добавляем:
$config['router']['page']['reconstruction'] = 'ActionReconstruction';
далее, находим
$config['general']['reg']['activation'] = false;
после, добавляем:
$config['general']['reconstruction'] = false; // использовать закрытый режим работы сайта, сайт будет доступен только администрации
3. заходим в /classes/actions/ и создаем ActionReconstruction.class.php
добавляем:
class ActionReconstruction extends Action {
public function Init() {
$this->SetDefaultEvent('index');
}
protected function RegisterEvent() {
$this->AddEvent('index','EventRec');
}
protected function EventRec() {
$this->Viewer_AddHtmlTitle($this->Lang_Get('reconstruction'));
}
}
4. заходим в /classes/actions/ и открываем Init.class.php
находим
if (!$this->oUserCurrent and Config::Get('general.close') and Router::GetAction()!='registration' and Router::GetAction()!='login') {
Router::Action('login');
}
после, добавляем
if ( Config::Get('general.reconstruction') and (!$this->oUserCurrent or ($this->oUserCurrent and !$this->oUserCurrent->isAdministrator()))){
if (Router::GetAction()=='login')
Router::Action('login');
else
Router::Action('reconstruction');
}
5. /templates/skin/ваш-шаблон/actions/ и создаем папку ActionReconstruction
создаем файл index.tpl, в нем добавляем
{include file='header.light.tpl'}
<div style="text-align: center;">{$aLang.in_reconstruction}</div>
6. /templates/language/russian.php
до
);
добавляем
'in_reconstruction' => 'Ведутся технические работы по улучшению работоспособности сайта.',
'reconstruction' => 'Ведутся технические работы.',
7. /plugins/aceadminpanel/templates/language/russian.site_settings.php
до
);
добавляем
'adm_set_general_reconstruction' => 'Закрыть сайт для пользователей.',
Это все.
Для авторизации переходим site.ру/login/
В админпанель->сайт->Настройки под галочкой «Использовать закрытый режим работы сайта», появится наша галочка с возможностью отключения сайта.
п.с. если есть способ эффективнее сделать это, поделитесь.
1 комментарий