Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Можно ли перевести форум в оффлайн через conf_global.php?

Опубликовано:

В 2.0.0 в conf_global.php был параметр:

 

$INFO['board_offline'] = '1';

и там стояла единичка или нолик в зависимости от статуса форума.

 

В 3.3.х этого нет?

 

 

Что я хочу?

сделать крон на следующее:

1) перевод форум в оффлайн

2) бэкап через sypex без сжатия

3) перевод форум в онлайн

4) сжатие бэкапа

 

 

Почему я хочу бэкапить отключённый форум? мне так спокойнее.

при переезде был трабл что дублировались какие то строчки в таблице постов при включённом форуме.

при отключённом - всё было гладко

Рекомендованные сообщения

Опубликовано:

В самой админке форума, можно перевести форум offline

Опубликовано:
  • Автор

@Атаман,

это понятно

 

но я же ясно изъяснил. хочу автоматизировать через крон.

Опубликовано:

Настройки > Системные настройки > Система > Отключение форума

 

При помощи данной группы настроек, вы можете включить или выключить (режим offline) ваш форум для пользователей.

 

Но нужно проверить еще группы пользователей, чтобы не было вкл галки. Пользователи Могут просматривать отключенный форум?

Опубликовано:

Нужно тогда создать задачу в планировщике задач.

Опубликовано:
  • Автор

@Атаман,

 

вот тут и вопрос. имеет ли смысл?

в самом conf_global.php я не нахожу параметра для отключённого форума как это было в двушке.

пробовал играться на тестовом полигоне и добавить - не катит.

Опубликовано:

Нужно тогда создать задачу в планировщике задач.

 

Там можно использовать, через крон.

Опубликовано:
  • Автор

@Атаман,

я очень ценю Ваше желание ответить, но Вы, похоже, не понимаете вопроса.

 

Вопрос не в самом кроне/планировщике, а в том как можно перевести форум в оффлайн при помощи conf_global.php наподобие того как это было в двушке.

Пока что я не вижу, что это возможно

Опубликовано:

Нет, не будеть работать. Там сейчас система такая, что в массив настроек сначала загружается $INFO из conf_global.php, а потом поверх этих данных добавляются все значитения таблицы core_sys_conf_settings из БД. И board_offline внесена в эту таблицу. Что бы вы не назначили для $INFO['board_offline '], оно все равно перезапишется значением из базы.

 

Придется писать что-то вроде этого:

 

<?php

include('conf_global.php');

mysql_connect($INFO['sql_host'], $INFO['sql_user'], $INFO['sql_pass']) or die( mysql_error() );
mysql_select_db($INFO['sql_database']) or die( mysql_error() );
mysql_query("UPDATE {$INFO['sql_tbl_prefix']}core_sys_conf_settings SET conf_value = 1 WHERE conf_key = 'board_offline'") or die( mysql_error() );
mysql_close();
?>

 

А еще можно сюда же вписать очистку таблицы логов посещений (если ведутся) и очистку таблицы кэша, чтобы легче было дампы снимать :)

Опубликовано:
  • Автор

Большое спасибо

Это именно то что я хотел.

Опубликовано:

Не, там на самом деле немного по другому, board_offline загружается из кеша настроек, так что его апдейт в таблице настроек не даст никаких результатов. Сам с этим столкнулся, когда отключал форум таким запросом, а он продолжал работать как ни в чем не бывало.

Опубликовано:
  • Автор

@siv1987,

так и есть. не отключает

Опубликовано:

Ну так кэш все равно в БД лежит (по-умолчанию), так что либо радикально:

 

<?php

include('conf_global.php');

mysql_connect($INFO['sql_host'], $INFO['sql_user'], $INFO['sql_pass']) or die( mysql_error() );
mysql_select_db($INFO['sql_database']) or die( mysql_error() );
mysql_query("UPDATE {$INFO['sql_tbl_prefix']}core_sys_conf_settings SET conf_value = 1 WHERE conf_key = 'board_offline'") or die( mysql_error() );
mysql_query("TRUNCATE {$INFO['sql_tbl_prefix']}cache_store") or die( mysql_error() );
mysql_close();
?>

 

Либо более нежно:

 

<?php

include('conf_global.php');

mysql_connect($INFO['sql_host'], $INFO['sql_user'], $INFO['sql_pass']) or die( mysql_error() );
mysql_select_db($INFO['sql_database']) or die( mysql_error() );
mysql_query("UPDATE {$INFO['sql_tbl_prefix']}core_sys_conf_settings SET conf_value = 1 WHERE conf_key = 'board_offline'") or die( mysql_error() );
mysql_query("DELETE FROM {$INFO['sql_tbl_prefix']}cache_store WHERE cs_key = 'settings'") or die( mysql_error() );
mysql_close();
?>

 

Собственно, об этом и думал, когда вот это писал:

А еще можно сюда же вписать очистку таблицы логов посещений (если ведутся) и очистку таблицы кэша,
Опубликовано:

Может я глупость скажу, но все же.

 

А кто мешает, в скрипте указать на время создания бэкапа так:

 

1. Добавляем на сайт файл index.htm(l) с текстом типа "Сайт закрыт зайдите позже"

2. Включается cron а нем:

а) Переименовать index.php в index.php1 (таким образом стартовая страница автоматом будет загружаться index.htm(l)

B) Cron отработал

c) Переименовать index.php1 в index.php

 

Собственно все...

 

ПыСы смайлик не правильный b_) отображается как B)

Изменено пользователем podvorie

Опубликовано:

Видимо, ТС хочется, чтобы были "культурное" сообщение для пользователей в дизайне форума и правильный код 503 для поисковиков на время оффлайна. И первое, и второе как раз и реализуется стандартным оффлайном.

 

Хотя, конечно, дописывать и удалять в conf_global.php строки было бы проще:

header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Retry-After: 300');
echo "Мужчина, вы что не видите - у нас обед!";
die;

 

:)

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.