Jump to content
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) сжатие бэкапа

 

 

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

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

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

Featured Replies

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

  • Author

@Атаман,

это понятно

 

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

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

 

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

 

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

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

  • Author

@Атаман,

 

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

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

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

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

 

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

  • Author

@Атаман,

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

 

Вопрос не в самом кроне/планировщике, а в том как можно перевести форум в оффлайн при помощи 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();
?>

 

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

  • Author

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

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

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

  • Author

@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)

Edited by podvorie

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

 

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

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

 

:)

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

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.