Магазин
Правила Ответы на вопросы Конфиденциальность
Магазин
Правила Ответы на вопросы Конфиденциальность
  • Быстрые действия Ярлыки
    Общие действия
    Связаться с администрацией
    • Бот

       

Минимоды и хаки для phpBB3

  • Список форумов
  • phpBB 3.0
  • Другие моды для phpBB3
  • Минимоды и хаки для phpBB3

BB3CountDown - добавление счётчика до какого-то события

Как добавить счётчик до "Нового года осталось", счётчик дней, отсчёт до события, праздника и т.д.

Небольшие моды и хаки для форума phpBB3
Правила форума
При размещении мода/статьи взятой с другого форума/сайта обязательно необходимо указывать первоисточник сообщения.

32 сообщения
  • 1
  • 2
  • 3
  • 4
  • След.
Просмотры: 4903 • 
Аватара пользователя
PPK
Администратор
Сообщения: 10513
Зарегистрирован: 21 мар 2009, 17:13
Сообщение 14 фев 2011, 16:49
Мод позволяет добавить счётчик обратного отсчёта на станицу форума phpBB3, отображать время до наступления указанного события (с точностью от секунд до дней), отображать сообщение после наступления события, скриншоты:
адм. раздел

отображение счётчика до наступления события

отображение счётчика после наступления события

BB3CountDown.zip
Скачать архив, распаковать, заменить файлы трекера файлами из архива, JS код мода основан на скрипте jQuery - countdown (http://www.texotela.co.uk/code/jquery/countdown/).
Для работы мода так же необходимо подключение библиотеки jQuery.

В phpmyadmin выполнить:

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

INSERT INTO `phpbb_config` (`config_name`, `config_value`, `is_dynamic`) VALUES ('ppkbb_countdown_precision', 's', '0'); 
INSERT INTO `phpbb_config` (`config_name`, `config_value`, `is_dynamic`) VALUES ('ppkbb_countdown_prefix', '', '0');
INSERT INTO `phpbb_config` (`config_name`, `config_value`, `is_dynamic`) VALUES ('ppkbb_countdown_suffix', '', '0'); 
INSERT INTO `phpbb_config` (`config_name`, `config_value`, `is_dynamic`) VALUES ('ppkbb_countdown_passed', '', '0');
INSERT INTO `phpbb_config` (`config_name`, `config_value`, `is_dynamic`) VALUES ('ppkbb_countdown_start', '', '0');
INSERT INTO `phpbb_config` (`config_name`, `config_value`, `is_dynamic`) VALUES ('ppkbb_countdown_end', '', '0');
/language/ru/acp/board.php перед

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

));

?>
добавить

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

	//PPK CD
	'ACP_PPKBB_COUNTDOWN' => 'Обратный отсчёт',
	'ACP_PPKBB_COUNTDOWN_EXPLAIN' => '',
	'PPKBB_COUNTDOWN_PRECISION' => 'Точность измерения',
	'PPKBB_COUNTDOWN_PRECISION_EXPLAIN' => 'Точность обратного отсчёта, s - до секунд, m - до минут, h - до часов, d - до дней',
	'PPKBB_COUNTDOWN_END' => 'Дата окончания показа сообщения о наступившем событии',
	'PPKBB_COUNTDOWN_END_EXPLAIN' => '(в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС, 0 или пустая строка - отображать всегда)',
	'PPKBB_COUNTDOWN_START' => 'Дата события',
	'PPKBB_COUNTDOWN_START_EXPLAIN' => '(в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС)',
	'PPKBB_COUNTDOWN_PREFIX' => 'Префикс сообщения в счётчике обратного отсчёта',
	'PPKBB_COUNTDOWN_PREFIX_EXPLAIN' => '(до 255 символов, можно использовать html код)',
	'PPKBB_COUNTDOWN_SUFFIX' => 'Суффикс сообщения в счётчике обратного отсчёта',
	'PPKBB_COUNTDOWN_SUFFIX_EXPLAIN' => '(до 255 символов, можно использовать html код)',
	'PPKBB_COUNTDOWN_PASSED' => 'Сообщение отображаемое при наступлении события',
	'PPKBB_COUNTDOWN_PASSED_EXPLAIN' => '(до 255 символов, можно использовать html код)',
	//PPK CD
/includes/functions.php перед

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

	// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
добавить

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

	//PPK CD
	$dt=time();
	$ppkbb_countdown_passed=$ppkbb_countdown_prefix=$ppkbb_countdown_suffix=$ppkbb_countdown_start=$ppkbb_countdown_end='';
	$ppkbb_countdown_precision=in_array($config['ppkbb_countdown_precision'], array('s', 'm', 'h', 'd')) ? $config['ppkbb_countdown_precision'] : 's';
	if($config['ppkbb_countdown_start'])
	{
		$ppkbb_countdown_start_dt=my_split_config($config['ppkbb_countdown_start'], 2, 'strval', ' ');
		$ppkbb_countdown_start_date=my_split_config($ppkbb_countdown_start_dt[0], 3, 'my_int_val', '-');
		$ppkbb_countdown_start_time=my_split_config($ppkbb_countdown_start_dt[1], 3, 'my_int_val', ':');
		if(checkdate($ppkbb_countdown_start_date[1], $ppkbb_countdown_start_date[2], $ppkbb_countdown_start_date[0]) && my_checktime($ppkbb_countdown_start_time[0], $ppkbb_countdown_start_time[1], $ppkbb_countdown_start_time[2]))
		{
			if(mktime(intval($ppkbb_countdown_start_time[0]), intval($ppkbb_countdown_start_time[1]), intval($ppkbb_countdown_start_time[2]), intval($ppkbb_countdown_start_date[1]), intval($ppkbb_countdown_start_date[2]), intval($ppkbb_countdown_start_date[0])) < $dt)
			{
				$ppkbb_countdown_passed=htmlspecialchars_decode($config['ppkbb_countdown_passed']);
			}
			else
			{
				$ppkbb_countdown_prefix=htmlspecialchars_decode($config['ppkbb_countdown_prefix']);
				$ppkbb_countdown_suffix=htmlspecialchars_decode($config['ppkbb_countdown_suffix']);
				$ppkbb_countdown_start="{$ppkbb_countdown_start_date[0]}, ".($ppkbb_countdown_start_date[1]-1).", {$ppkbb_countdown_start_date[2]}, {$ppkbb_countdown_start_time[0]}, {$ppkbb_countdown_start_time[1]}, {$ppkbb_countdown_start_time[2]}";
			}
			if($config['ppkbb_countdown_end'])
			{
				$ppkbb_countdown_end_dt=my_split_config($config['ppkbb_countdown_end'], 2, 'strval', ' ');
				$ppkbb_countdown_end_date=my_split_config($ppkbb_countdown_end_dt[0], 3, 'my_int_val', '-');
				$ppkbb_countdown_end_time=my_split_config($ppkbb_countdown_end_dt[1], 3, 'my_int_val', ':');
				if(checkdate($ppkbb_countdown_end_date[1], $ppkbb_countdown_end_date[2], $ppkbb_countdown_end_date[0]) && my_checktime($ppkbb_countdown_end_time[0], $ppkbb_countdown_end_time[1], $ppkbb_countdown_end_time[2]))
				{
					if(mktime(intval($ppkbb_countdown_end_time[0]), intval($ppkbb_countdown_end_time[1]), intval($ppkbb_countdown_end_time[2]), intval($ppkbb_countdown_end_date[1]), intval($ppkbb_countdown_end_date[2]), intval($ppkbb_countdown_end_date[0])) < $dt)
					{
						$ppkbb_countdown_passed=$ppkbb_countdown_start='';
					}
					else
					{
						$ppkbb_countdown_passed=htmlspecialchars_decode($config['ppkbb_countdown_passed']);
						$ppkbb_countdown_start="{$ppkbb_countdown_start_date[0]}, ".($ppkbb_countdown_start_date[1]-1).", {$ppkbb_countdown_start_date[2]}, {$ppkbb_countdown_start_time[0]}, {$ppkbb_countdown_start_time[1]}, {$ppkbb_countdown_start_time[2]}";
					}
				}
			}
			else
			{
				$ppkbb_countdown_passed=htmlspecialchars_decode($config['ppkbb_countdown_passed']);
				$ppkbb_countdown_start="{$ppkbb_countdown_start_date[0]}, ".($ppkbb_countdown_start_date[1]-1).", {$ppkbb_countdown_start_date[2]}, {$ppkbb_countdown_start_time[0]}, {$ppkbb_countdown_start_time[1]}, {$ppkbb_countdown_start_time[2]}";
			}
		}
	}
	//PPK CD
после

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

	// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
добавить

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

		//PPK CD
		'S_COUNTDOWN_PASSED' => str_replace("'", '"', $ppkbb_countdown_passed),
		'S_COUNTDOWN_PREFIX' => str_replace("'", '"', $ppkbb_countdown_prefix),
		'S_COUNTDOWN_SUFFIX' => str_replace("'", '"', $ppkbb_countdown_suffix),
		'S_COUNTDOWN_PRECISION' => $ppkbb_countdown_precision,
		'S_COUNTDOWN_START' => $ppkbb_countdown_start,
		'S_COUNTDOWN_END' => $ppkbb_countdown_end,
		//PPK CD
найти

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

function my_split_config($config, $count=0, $type=false, $split='')
если указанная строка не найдена, перед

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

/**
* Set dynamic config value with arithmetic operation.
*/
добавить

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

function my_split_config($config, $count=0, $type=false, $split='')
{
	$count=intval($count);
	$s_config=$count > 0 ? @explode($split ? $split : ' ', $config, $count) : @explode($split ? $split : ' ', $config);
	$count=$count > 0 ? $count : sizeof($s_config);
	if($count)
	{
		for($i=0;$i<$count;$i++)
		{
			if($type)
			{
				if(is_array($type) && @function_exists(@$type[$i]))
				{
					$s_config[$i]=call_user_func($type[$i], @$s_config[$i]);
				}
				else if(@function_exists($type))
				{
					$s_config[$i]=call_user_func($type, @$s_config[$i]);
				}
				else
				{
					$s_config[$i]=@$s_config[$i];
				}
			}
			else
			{
				$s_config[$i]=@$s_config[$i];
			}
		}
	}

	return $s_config;
}
найти

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

function my_int_val($v=0)
если указанная строка не найдена, перед

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

/**
* Set dynamic config value with arithmetic operation.
*/
добавить

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

function my_int_val($v=0)
{
	if(!$v || $v < 0)
	{
		return 0;
	}

	return @number_format($v, 0, '', '');
}
перед

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

/**
* Set dynamic config value with arithmetic operation.
*/
добавить

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

function my_checktime($h, $m, $s)
{

	if(!is_numeric($h) || !is_numeric($m) || !is_numeric($s))
	{
		return false;
	}

	if($h > -1 && $h < 24 && $m > -1 && $m < 60 && $s > -1 && $s < 60)
	{
		return true;
	}

	return false;
}
/includes/acp/acp_board.php после

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

'load_cpf_viewtopic'	=> array('lang' => 'LOAD_CPF_VIEWTOPIC',	'validate' => 'bool',	'type' => 'radio:yes_no', 'explain' => false),
добавить

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

						//PPK CD
						'legend4'					=> 'ACP_PPKBB_COUNTDOWN',
						'ppkbb_countdown_start'		=> array('lang' => 'PPKBB_COUNTDOWN_START',		'validate' => 'string',	'type' => 'text:19:19', 'explain' => true),
						'ppkbb_countdown_end'		=> array('lang' => 'PPKBB_COUNTDOWN_END',		'validate' => 'string',	'type' => 'text:19:19', 'explain' => true),
						'ppkbb_countdown_prefix'		=> array('lang' => 'PPKBB_COUNTDOWN_PREFIX',		'validate' => 'string',	'type' => 'text:48:255', 'explain' => true),
						'ppkbb_countdown_suffix'		=> array('lang' => 'PPKBB_COUNTDOWN_SUFFIX',		'validate' => 'string',	'type' => 'text:48:255', 'explain' => true),
						'ppkbb_countdown_passed'		=> array('lang' => 'PPKBB_COUNTDOWN_PASSED',		'validate' => 'string',	'type' => 'text:48:255', 'explain' => true),
						'ppkbb_countdown_precision'		=> array('lang' => 'PPKBB_COUNTDOWN_PRECISION',		'validate' => 'string',	'type' => 'text:1:1', 'explain' => true),
						//PPCD
/styles/prosilver/template/overall_header.html перед

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

</head>
добавить

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

<!-- PPK CD -->
<!-- IF S_COUNTDOWN_START -->
<script src="{ROOT_PATH}tracker/addons/js/jquery.countdown.js" type="text/javascript"></script>
<script type="text/javascript">
// <![CDATA[
	 jQuery(document).ready(
		function($)
		{
			var now = new Date();
			var endingSoon = new Date({S_COUNTDOWN_START});
			$("#ppkbb_countdown").countdown(endingSoon,
				{
					precision: '{S_COUNTDOWN_PRECISION}',
					prefix: '{S_COUNTDOWN_PREFIX}',
					suffix: '{S_COUNTDOWN_SUFFIX}',
					passed: '{S_COUNTDOWN_PASSED}'
				}
			);
		}
	);
// ]]>
</script>		
<!-- ENDIF -->
<!-- PPK CD -->
после

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

		<!-- IF S_BOARD_DISABLED and S_USER_LOGGED_IN and (U_MCP or U_ACP) -->
		<div id="information" class="rules">
			<div class="inner"><span class="corners-top"><span></span></span>
				<strong>{L_INFORMATION}:</strong> {L_BOARD_DISABLED}
			<span class="corners-bottom"><span></span></span></div>
		</div>
		<!-- ENDIF -->
добавить

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

<!-- PPK CD -->
<!-- IF S_COUNTDOWN_START -->
	<div class="panel">
		<div class="inner"><span class="corners-top"><span></span></span>
			<div id="ppkbb_countdown" style="text-align:center;"></div>
		<span class="corners-bottom"><span></span></span></div>
	</div>
<!-- ENDIF -->
<!-- PPK CD -->
/styles/subsilver2/template/overall_header.html перед

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

</head>
добавить

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

<!-- PPK CD -->
<!-- IF S_COUNTDOWN_START -->
<script src="{ROOT_PATH}tracker/addons/js/jquery.countdown.js" type="text/javascript"></script>
<script type="text/javascript">
// <![CDATA[
	 jQuery(document).ready(
		function($)
		{
			var now = new Date();
			var endingSoon = new Date({S_COUNTDOWN_START});
			$("#ppkbb_countdown").countdown(endingSoon,
				{
					precision: '{S_COUNTDOWN_PRECISION}',
					prefix: '{S_COUNTDOWN_PREFIX}',
					suffix: '{S_COUNTDOWN_SUFFIX}',
					passed: '{S_COUNTDOWN_PASSED}'
				}
			);
		}
	);
// ]]>
</script>		
<!-- ENDIF -->
<!-- PPK CD -->
перед

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

	<br style="clear: both;" />

	<!-- INCLUDE breadcrumbs.html -->
добавить

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

<!-- PPK CD -->
<!-- IF S_COUNTDOWN_START -->
	<table class="tablebg" width="100%" cellspacing="1" cellpadding="0" style="margin-top: 5px;">
	<tr>
		<td class="row1">
			<div id="ppkbb_countdown" style="text-align:center;"></div>
		</td>
	</tr>
	</table>
<!-- ENDIF -->
<!-- PPK CD -->
Обновить переделанные стили, очистить кеш.

Адм. раздел - функции конферениции - Обратный отсчёт - настроить опции.
У вас нет необходимых прав для просмотра вложений в этом сообщении. Попробуйте зарегистрироваться или войти на форум.
PPK
vulkan3
VIP
Сообщения: 1801
Зарегистрирован: 28 сен 2009, 03:36
Сообщение 25 дек 2011, 16:06
установил и форум перестал пахать , может для 44 версии исправить нужно ?
Pritoc.org Свободный торрент трекер
vulkan3
Аватара пользователя
PPK
Администратор
Сообщения: 10513
Зарегистрирован: 21 мар 2009, 17:13
Сообщение 27 дек 2011, 22:29
нет, никак от версии не должен зависеть.
PPK
vulkan3
VIP
Сообщения: 1801
Зарегистрирован: 28 сен 2009, 03:36
Сообщение 28 дек 2011, 00:02

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

includes/functions.php перед
после этого добавляю все в файл includes/functions.php сайт падает нотис вылезает и не загружается
Pritoc.org Свободный торрент трекер
vulkan3
Аватара пользователя
PPK
Администратор
Сообщения: 10513
Зарегистрирован: 21 мар 2009, 17:13
Сообщение 28 дек 2011, 10:42
PPK писал(а):найти
PPK писал(а):если указанная строка не найдена, перед
вот эти части внимательно выполнены?
PPK
vulkan3
VIP
Сообщения: 1801
Зарегистрирован: 28 сен 2009, 03:36
Сообщение 29 дек 2011, 10:06
все сделал все выводится но почему то не сохраняются даты в админке , меняю , захожу опять тоже самое , как сменить чтоб сохранилось, в базу запрос сделал но меняться дата не хочет

Добавлено спустя 7 часов 28 минут 38 секунд:
блин где копать не пойму , реально дата не хочет меняться

Добавлено спустя 23 минуты 13 секунд:
все сделал или не сделал но надо кешь постоянно очищать после смены даты !!! странно конечно но делаю и все меняется
Последний раз редактировалось vulkan3 29 дек 2011, 18:38, всего редактировалось 3 раза.
Pritoc.org Свободный торрент трекер
vulkan3
Аватара пользователя
PPK
Администратор
Сообщения: 10513
Зарегистрирован: 21 мар 2009, 17:13
Сообщение 30 дек 2011, 10:31
/includes/acp/acp_board.php заменить

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

if(preg_match('/^ppkbb_/', $config_name))
на

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

if(preg_match('/^ppkbb_/', $config_name) && !preg_match('/^ppkbb_countdown/', $config_name))
PPK
vulkan3
VIP
Сообщения: 1801
Зарегистрирован: 28 сен 2009, 03:36
Сообщение 12 янв 2012, 14:46
PPK писал(а):/includes/acp/acp_board.php заменить

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

if(preg_match('/^ppkbb_/', $config_name))
на

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

if(preg_match('/^ppkbb_/', $config_name) && !preg_match('/^ppkbb_countdown/', $config_name))
Заменил и при нажатии кнопки Отправить
не заменяется даже при очистке кеша
Pritoc.org Свободный торрент трекер
vulkan3
vulkan3
VIP
Сообщения: 1801
Зарегистрирован: 28 сен 2009, 03:36
Сообщение 08 мар 2012, 20:22
странно у меня почему-то теперь не отображается ничего

Pritoc.org Свободный торрент трекер
vulkan3
Аватара пользователя
stepan83
VIP
Сообщения: 248
Зарегистрирован: 02 ноя 2011, 21:18
Сообщение 20 июн 2012, 16:55
vulkan3 писал(а):все сделал все выводится но почему то не сохраняются даты в админке , меняю , захожу опять тоже самое , как сменить чтоб сохранилось, в базу запрос сделал но меняться дата не хочет
тоже самое
PPK писал(а):/includes/acp/acp_board.php заменить
код заменил, требуемого результата нет
stepan83
32 сообщения
  • 1
  • 2
  • 3
  • 4
  • След.

Вернуться в «Минимоды и хаки для phpBB3»

Time: 0.000s | Queries: 0 | Peak Memory Usage: 0.00 МБ | GZIP: Unknown | SQL Explain
  • Список форумов
2018, made with by ThemeKita Создано на основе phpBB® Forum Software © phpBB Limited Русская поддержка phpBB (C) 2009-2025 @ PPK
  • Часовой пояс: UTC+04:00
Участники темы
Список форумов Участники темы
Перейти
Сайт ↳   Новости по сайту ↳   Новости обновлений ↳   Вопросы по сайту ↳   Non-russian speakers forum phpBB 3.1-3.3 ↳   Вопросы по phpBB 3.1-3.3 ↳   Расширения для phpBB 3.1-3.3 ↳   Условно-бесплатные расширения ↳   Платные расширения ↳   Расширения для подписчиков ↳   Расширения в разработке ↳   База расширений ↳   Стили для phpBB 3.1-3.3 ↳   Переводы расширений для phpBB3.1-3.3 ↳   Поиск и запросы расширений ↳   Запросы расширений, функционала и переводов для подписчиков ppkBB3cker ↳   Новости по трекеру и обновлениям ↳   Ошибки, проблемы, недочёты ↳   Предложения по новым функциям и возможностям ↳   Вопросы, ответы и примеры решений ↳   Моды и стили для трекера ↳   Готовые стили для трекера ↳   Запросы стилей для трекера ↳   Стили в разработке ↳   Готовые моды для трекера ↳   Запросы модов для трекера ↳   Моды в разработке ↳   Остальное ↳   F.A.Q. ↳   Ваши трекеры ↳   Оффтопик xbtBB3cker ↳   Новости по трекеру и обновлениям ↳   Вопросы, ответы, ошибки и обсуждение phpBB 3.0 ↳   Другие моды для phpBB3 ↳   Минимоды и хаки для phpBB3 ↳   Вопросы по phpBB3 ↳   phpBB3 ppkBB3cker Edition ↳   Платные услуги, моды, стили ↳   BB2Spoiler/BB3Spoiler ↳   BB3Topics ↳   BB3Sape ↳   BB3UserAgentInfo