Закрытие форумов в определённое время суток

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Закрытие форумов в определённое время суток

Сообщение Nekstati »

При переходе в закрытый форум выводится сообщение «Этот форум закрыт с XX:00 до YY:00». Такое же сообщение отображается в это время и в списке форумов. Доступ к закрытым форумам имеют только администраторы.
pub.png
Для настройки мода откройте файл includes/pub.php и отредактируйте значения переменных в строках 9…12. Укажите время открытия и закрытия форумов и перечислите ID форумов, которые должны закрываться. Можно также выбрать способ отсчёта времени: время пользователя или время конференции. По умолчанию мод использует локальное время пользователя (часовой пояс, указанный в настройках ОС).

Версия phpBB — 3.0.7-PL1.
Стили — Prosilver, Subsilver2.
pub_1.0.0.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
amka
phpBB 2.0.0
Сообщения: 212
Стаж: 19 лет 4 месяца
Благодарил (а): 15 раз
Поблагодарили: 5 раз

Re: Закрытие форумов в определённое время суток

Сообщение amka »

Спасибо за мод. Надеюсь, что мод получит развитие. Хотелось бы, чтобы время закрытия-открытия можно было выставлять в админке, как и выбор форума который будет открыт-закрыт. Так же хотелось бы получить возможность выбора времени пользователя (локальное или время конференции)
Аватара пользователя
vubo
phpBB 1.4.1
Сообщения: 45
Стаж: 15 лет 9 месяцев
Благодарил (а): 15 раз
Поблагодарили: 1 раз

Re: Закрытие форумов в определённое время суток

Сообщение vubo »

Спасибо за мод!

А можно настроить так, что пока форумы закрыты, их не видят участники форума.

Но как только они открываются, становятся видимыми?

Добавлено спустя 9 минут 24 секунды:
Подскажите ещё, пожалуйста, вы не делали закрытие по датам? чтобы было закрыто, допустим с 13 декабря 14:00 до 25 декабря 15:30.
Аватара пользователя
vubo
phpBB 1.4.1
Сообщения: 45
Стаж: 15 лет 9 месяцев
Благодарил (а): 15 раз
Поблагодарили: 1 раз

Re: Закрытие форумов в определённое время суток

Сообщение vubo »

Пробую сделать открытие в определённую дату.

Делаю, сравнивая временные метки. Может, кому понадобится:

Код: Выделить всё

$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);
Добавлено спустя 3 минуты 24 секунды:
планирую также сделать интерфейс в меню модератора, скорее всего, где можно будет задавать даты.
Аватара пользователя
vubo
phpBB 1.4.1
Сообщения: 45
Стаж: 15 лет 9 месяцев
Благодарил (а): 15 раз
Поблагодарили: 1 раз

Re: Закрытие форумов в определённое время суток

Сообщение vubo »

Также мне необходимо настраивать открытие/закрытие форумов в разное время. Например, форум 1 открыть 25 мая, форум 2 открыть 28 мая, форум 3 открыть 7 мая.

Также было бы здорово перенести эту систему на темы. Буду пробовать.

Если у кого-то что-то есть, напишите, пожалуйста.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Закрытие форумов в определённое время суток

Сообщение Nekstati »

vubo писал(а):Например, форум 1 открыть 25 мая, форум 2 открыть 28 мая, форум 3 открыть 7 мая.
По-моему, это проще и быстрее делать руками. Есть некий логический предел любой автоматизации, дальше которого идти нерационально.
Аватара пользователя
Алг
Former team member
Сообщения: 933
Стаж: 14 лет 1 месяц
Откуда: Израиль
Благодарил (а): 85 раз
Поблагодарили: 306 раз

Re: Закрытие форумов в определённое время суток

Сообщение Алг »

Nekstati, позвольте с Вами не согласиться. В данном случае бывает, что такая автоматизация жизненно необходима.
Пример из собственного опыта: на нашем форуме проходят турниры ( интернет-чгк), в которых принимает участие несколько команд. Как правило 10-13. Каждой команде ставится пакет вопросов в её форум и ещё блиц -пакет, несколько вопросов на определённое время, скажем на час. Игра длится сутки.Каждая команда сама себе назначает удобный для неё срок начала игры и начала блица ( в течение этих суток, разумеется).
Значит на 10 команд (столько было в последнем турнире), ведущие игры должны были 20 раз вовремя открыть игру (дать доступ определённой группе в определённый форум) и 20 раз вовремя закрыть. Т.е. в течение суток двое ведуших как минимум 40 раз должны были сидеть около компьютера с будильником , чтобы не пропустить время. Им даже пришлось взять отпуск на работе на время турнира.
После чего, пришлось делать расписание, примерно так
714d1c216480.jpg
теперь ведущие свободны и не привязаны к компу ;)

Техническое решение не слишком сложно, но требует создания нескольких таблиц в БД, в частности, таблицы для игр и таблицы для команд. Время начала для каждой команды заносится через интерфейс в админке ( см рисунок) в виде дд/мм/гггг чч:мм ( 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;
}
если фунция возвращает true , то форум открывается ( даётся доступ группе в этот форум)

п.с. Если это кому-то пригодится, буду рада
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...

Т. Шаов
future
phpBB 1.4.4
Сообщения: 183
Стаж: 14 лет 6 месяцев
Благодарил (а): 39 раз
Поблагодарили: 1 раз

Re: Закрытие форумов в определённое время суток

Сообщение future »

При установке мода категория делается, как собственный форум почему-то...
Установил в 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
Ничего не пишет внизу под форумом. Подскажите, что нужно правильно сделать?
Вот как природа это все вот шурум-бурум устроила: Ртом торт есть можно, а тортом рот, - нельзя! Чудеса!

Вернуться в «Бета-версии модов для phpBB 3.0.x»