Сайт открыт только администратору

  • 4 Ответов
  • 2039 Просмотров

sergo

  • Сообщений: 5
    • Просмотр профиля
Здравствуйте, подскажите как сделать сайт открытым администратору при временном отключении сайта?

Neon

  • Сообщений: 932
    • Просмотр профиля
    • Danneo CMS
Re: Сайт открыт только администратору
« Ответ #1 : 23 Июня 2021, 13:53:12 »
В корневом файле /index.php
/**
 * Closed Site
 */
if ($config['closed'] == 'yes')
{
$tm->closeprint($config['closedtext']);
}
Заменить на
/**
 * Closed Site
 */
$is_admin = $db->numrows(
$db->query("SELECT `admid` FROM ".$basepref."_admin_sess WHERE `admid` = '1' LIMIT 1")
);
if ($config['closed'] == 'yes' AND !$is_admin)
{
$tm->closeprint($config['closedtext']);
}
Админ должен быть авторизован в панели управления.
DANNEO ™

sergo

  • Сообщений: 5
    • Просмотр профиля
Re: Сайт открыт только администратору
« Ответ #2 : 23 Июня 2021, 16:18:27 »
Спасибо за помощь
Всё работает

студент

  • Сообщений: 250
    • Просмотр профиля
    • Мировые новости
Re: Сайт открыт только администратору
« Ответ #3 : 20 Сентября 2022, 21:24:36 »
В корневом файле /index.php
/**
 * Closed Site
 */
if ($config['closed'] == 'yes')
{
$tm->closeprint($config['closedtext']);
}
Заменить на
/**
 * Closed Site
 */
$is_admin = $db->numrows(
$db->query("SELECT `admid` FROM ".$basepref."_admin_sess WHERE `admid` = '1' LIMIT 1")
);
if ($config['closed'] == 'yes' AND !$is_admin)
{
$tm->closeprint($config['closedtext']);
}
Админ должен быть авторизован в панели управления.
На предыдущей версии это работает, а в новой версии (1.5.7 beta) нет. Подскажите как сделать для новой версии.

buhCRM

  • Сообщений: 7
    • Просмотр профиля
Re: Сайт открыт только администратору
« Ответ #4 : 02 Декабря 2022, 22:18:14 »
Всем доброго времени суток, времени с момента вопроса прошло много, но вдруг пригодится.
Если позволите, попробую предложить небольшой костыль.

Для начала сделаем ссылку на главной странице в админке. Для этого в файле \admin\index.php находим
			/**
* Рабочий стол
*/
echo ' <div class="desktop clearfix">
<div class="sheet sl">
и добавляем
<ul>
<li><h4><a href="/?ops='.$sess['hash'].'">ссылка</a></h4></li>
</ul>
А далее, как и советовалось ранее только вставляем

session_start();
if(isset($_GET['ops'])){
$ops = preg_replace('/[^a-zA-Z0-9]/ui', '', $_GET['ops']);
$is_admin = $db->numrows(
$db->query("SELECT `hash` FROM ".$basepref."_admin_sess WHERE `hash` = '" . $ops . "' LIMIT 1")
);
setcookie('ops', $ops, time() + 60*60*24);
redirect('/');
}
$is_admin = false;
if(isset($_COOKIE['ops'])){
$ops = preg_replace('/[^a-zA-Z0-9]/ui', '', $_COOKIE['ops']);
$is_adm = $db->numrows(
$db->query("SELECT * FROM ".$basepref."_admin_sess WHERE `hash` = '" . $ops . "' LIMIT 1")
);
$is_admin = $is_adm ? true : false;

}
session_write_close();

if ($config['closed'] == 'yes' && !$is_admin)
{
$tm->closeprint($config['closedtext']);
}

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