При переходе в закрытый форум выводится сообщение «Этот форум закрыт с XX:00 до YY:00». Такое же сообщение отображается в это время и в списке форумов. Доступ к закрытым форумам имеют только администраторы.
Для настройки мода откройте файл includes/pub.php и отредактируйте значения переменных в строках 9…12. Укажите время открытия и закрытия форумов и перечислите ID форумов, которые должны закрываться. Можно также выбрать способ отсчёта времени: время пользователя или время конференции. По умолчанию мод использует локальное время пользователя (часовой пояс, указанный в настройках ОС).
Версия phpBB — 3.0.7-PL1.
Стили — Prosilver, Subsilver2.
Закрытие форумов в определённое время суток
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
Nekstati
- Поддержка

- Сообщения: 3365
- Стаж: 17 лет 6 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 1454 раза
Закрытие форумов в определённое время суток
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Закрытие форумов в определённое время суток
Спасибо за мод. Надеюсь, что мод получит развитие. Хотелось бы, чтобы время закрытия-открытия можно было выставлять в админке, как и выбор форума который будет открыт-закрыт. Так же хотелось бы получить возможность выбора времени пользователя (локальное или время конференции)
Re: Закрытие форумов в определённое время суток
Спасибо за мод!
А можно настроить так, что пока форумы закрыты, их не видят участники форума.
Но как только они открываются, становятся видимыми?
Добавлено спустя 9 минут 24 секунды:
Подскажите ещё, пожалуйста, вы не делали закрытие по датам? чтобы было закрыто, допустим с 13 декабря 14:00 до 25 декабря 15:30.
А можно настроить так, что пока форумы закрыты, их не видят участники форума.
Но как только они открываются, становятся видимыми?
Добавлено спустя 9 минут 24 секунды:
Подскажите ещё, пожалуйста, вы не делали закрытие по датам? чтобы было закрыто, допустим с 13 декабря 14:00 до 25 декабря 15:30.
Re: Закрытие форумов в определённое время суток
Пробую сделать открытие в определённую дату.
Делаю, сравнивая временные метки. Может, кому понадобится:
Добавлено спустя 3 минуты 24 секунды:
планирую также сделать интерфейс в меню модератора, скорее всего, где можно будет задавать даты.
Делаю, сравнивая временные метки. Может, кому понадобится:
Код: Выделить всё
$pub_forums = array(10); // List of forum ID's to be closed
$pub_year_open = 2010;
$pub_month_open = 12;
$pub_date_open = 15;
$pub_hour_open = 22;
$pub_min_open = 0;
$pub_sec_open = 0;
$pub_year_close = 2010;
$pub_month_close = 12;
$pub_date_close = 13;
$pub_hour_close = 18;
$pub_min_close = 0;
$pub_sec_close = 0;
if ($pub_hour_close == 24) $pub_hour_close = 0;
if ($pub_hour_open == 0) $pub_hour_open = 24;
$date_open = mktime($pub_hour_open,$pub_min_open,$pub_sec_open,$pub_month_open,$pub_date_open,$pub_year_open);
$date_close = mktime($pub_hour_close,$pub_min_close,$pub_sec_close,$pub_month_close,$pub_date_close,$pub_year_close);
$date_now = time ();
if ($date_open >= $date_close)
{
$pub_open = ($date_now >= $date_close && $date_now < $date_open) ? false : true;
}
else
{
$pub_open = ($date_now >= $date_close || $date_now < $date_open) ? false : true;
}
$pub_alert = sprintf($user->lang['PUB_CLOSED'], $pub_date_open, $pub_month_open);планирую также сделать интерфейс в меню модератора, скорее всего, где можно будет задавать даты.
Re: Закрытие форумов в определённое время суток
Также мне необходимо настраивать открытие/закрытие форумов в разное время. Например, форум 1 открыть 25 мая, форум 2 открыть 28 мая, форум 3 открыть 7 мая.
Также было бы здорово перенести эту систему на темы. Буду пробовать.
Если у кого-то что-то есть, напишите, пожалуйста.
Также было бы здорово перенести эту систему на темы. Буду пробовать.
Если у кого-то что-то есть, напишите, пожалуйста.
-
Nekstati
- Поддержка

- Сообщения: 3365
- Стаж: 17 лет 6 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 1454 раза
Re: Закрытие форумов в определённое время суток
По-моему, это проще и быстрее делать руками. Есть некий логический предел любой автоматизации, дальше которого идти нерационально.vubo писал(а):Например, форум 1 открыть 25 мая, форум 2 открыть 28 мая, форум 3 открыть 7 мая.
-
Алг
- Former team member
- Сообщения: 933
- Стаж: 14 лет 1 месяц
- Откуда: Израиль
- Благодарил (а): 85 раз
- Поблагодарили: 306 раз
Re: Закрытие форумов в определённое время суток
Nekstati, позвольте с Вами не согласиться. В данном случае бывает, что такая автоматизация жизненно необходима.
Пример из собственного опыта: на нашем форуме проходят турниры ( интернет-чгк), в которых принимает участие несколько команд. Как правило 10-13. Каждой команде ставится пакет вопросов в её форум и ещё блиц -пакет, несколько вопросов на определённое время, скажем на час. Игра длится сутки.Каждая команда сама себе назначает удобный для неё срок начала игры и начала блица ( в течение этих суток, разумеется).
Значит на 10 команд (столько было в последнем турнире), ведущие игры должны были 20 раз вовремя открыть игру (дать доступ определённой группе в определённый форум) и 20 раз вовремя закрыть. Т.е. в течение суток двое ведуших как минимум 40 раз должны были сидеть около компьютера с будильником , чтобы не пропустить время. Им даже пришлось взять отпуск на работе на время турнира.
После чего, пришлось делать расписание, примерно так теперь ведущие свободны и не привязаны к компу
Техническое решение не слишком сложно, но требует создания нескольких таблиц в БД, в частности, таблицы для игр и таблицы для команд. Время начала для каждой команды заносится через интерфейс в админке ( см рисунок) в виде дд/мм/гггг чч:мм ( 31/08/2012 22:45 к примеру) и конверируется в секунды с помошью двух функций
первая вычисляет смещение относительно времени хостера и установок конференции
вторая возвращает время в секундах
Время в секундах заносится в таблицу команды
открытие форума ( сделано через hook-функцию, чтобы не делать своих изменений в function.php. , но можно и там
считывается вся информация по текущей игре из БД. Для каждой команды беру время открытия и вызываю фунццию
если фунция возвращает true , то форум открывается ( даётся доступ группе в этот форум)
п.с. Если это кому-то пригодится, буду рада
Пример из собственного опыта: на нашем форуме проходят турниры ( интернет-чгк), в которых принимает участие несколько команд. Как правило 10-13. Каждой команде ставится пакет вопросов в её форум и ещё блиц -пакет, несколько вопросов на определённое время, скажем на час. Игра длится сутки.Каждая команда сама себе назначает удобный для неё срок начала игры и начала блица ( в течение этих суток, разумеется).
Значит на 10 команд (столько было в последнем турнире), ведущие игры должны были 20 раз вовремя открыть игру (дать доступ определённой группе в определённый форум) и 20 раз вовремя закрыть. Т.е. в течение суток двое ведуших как минимум 40 раз должны были сидеть около компьютера с будильником , чтобы не пропустить время. Им даже пришлось взять отпуск на работе на время турнира.
После чего, пришлось делать расписание, примерно так теперь ведущие свободны и не привязаны к компу
Техническое решение не слишком сложно, но требует создания нескольких таблиц в БД, в частности, таблицы для игр и таблицы для команд. Время начала для каждой команды заносится через интерфейс в админке ( см рисунок) в виде дд/мм/гггг чч:мм ( 31/08/2012 22:45 к примеру) и конверируется в секунды с помошью двух функций
первая вычисляет смещение относительно времени хостера и установок конференции
Код: Выделить всё
function get_offset()
{
$stime= array_unique(explode(":", date('P')));
$stime = (int)$stime[0];
$offset_hour = $config['board_timezone'] + $config['board_dst'] - $stime ;
$offset_sec = $offset_hour * 3600;
return $offset_sec;
}Код: Выделить всё
function setGMTTime($s_time)
{
$arr = date_parse_from_format("d/m/Y H:i", "$s_time"); //work in PHP 5 >= 5.3.0
return mktime ($arr['hour'] , $arr['minute'] , $arr['second'] , $arr['month'], $arr['day'] , $arr['year'] )- get_offset();
}открытие форума ( сделано через hook-функцию, чтобы не делать своих изменений в function.php. , но можно и там
считывается вся информация по текущей игре из БД. Для каждой команды беру время открытия и вызываю фунццию
Код: Выделить всё
function is_time_to_open($time_open)
{
return time() >= $time_open ? true : false;
}п.с. Если это кому-то пригодится, буду рада
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...
Т. Шаов
А ты проявляй интеллигентность, постарайся убеждать...
Т. Шаов
-
future
- phpBB 1.4.4
- Сообщения: 183
- Стаж: 14 лет 6 месяцев
- Благодарил (а): 39 раз
- Поблагодарили: 1 раз
Re: Закрытие форумов в определённое время суток
При установке мода категория делается, как собственный форум почему-то...
Установил в pub.php свои данные: Ничего не пишет внизу под форумом. Подскажите, что нужно правильно сделать?
Установил в pub.php свои данные:
Код: Выделить всё
// Configuration (use integers only)
$pub_hour_open = 6; // Open forums at this time (0~24)
$pub_hour_close = 24; // Close forums at this time (0~24)
$pub_forums = array(1); // List of forum ID's to be closedВот как природа это все вот шурум-бурум устроила: Ртом торт есть можно, а тортом рот, - нельзя! Чудеса!

