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

       

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

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

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

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

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

32 сообщения
  • 1
  • 2
  • 3
  • 4
  • След.
Просмотры: 5134 • 
  • Аватара пользователя
    PPK Сообщение 14.02.2011
    Мод позволяет добавить счётчик обратного отсчёта на станицу форума 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 Сообщение 25.12.2011
    установил и форум перестал пахать , может для 44 версии исправить нужно ?
    Pritoc.org Свободный торрент трекер
vulkan3
  • Аватара пользователя
    PPK Сообщение 27.12.2011
    нет, никак от версии не должен зависеть.
PPK
  • vulkan3 Сообщение 28.12.2011

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

    includes/functions.php перед
    после этого добавляю все в файл includes/functions.php сайт падает нотис вылезает и не загружается
    Pritoc.org Свободный торрент трекер
vulkan3
  • Аватара пользователя
    PPK Сообщение 28.12.2011
    PPK писал(а):найти
    PPK писал(а):если указанная строка не найдена, перед
    вот эти части внимательно выполнены?
PPK
  • vulkan3 Сообщение 29.12.2011
    все сделал все выводится но почему то не сохраняются даты в админке , меняю , захожу опять тоже самое , как сменить чтоб сохранилось, в базу запрос сделал но меняться дата не хочет

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

    Добавлено спустя 23 минуты 13 секунд:
    все сделал или не сделал но надо кешь постоянно очищать после смены даты !!! странно конечно но делаю и все меняется
    Последний раз редактировалось vulkan3 29 дек 2011, 18:38, всего редактировалось 3 раза.
    Pritoc.org Свободный торрент трекер
vulkan3
  • Аватара пользователя
    PPK Сообщение 30.12.2011
    /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 Сообщение 12.01.2012
    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 Сообщение 08.03.2012
    странно у меня почему-то теперь не отображается ничего

    Pritoc.org Свободный торрент трекер
vulkan3
  • Аватара пользователя
    stepan83 Сообщение 20.06.2012
    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-2026 @ PPK
  • Часовой пояс: UTC+04:00
Участники темы
Список форумов Участники темы
Перейти
Сайт ↳   Новости по сайту ↳   Новости обновлений ↳   Вопросы по сайту ↳   Non-russian speakers forum Форумы по phpBB 3.1-3.3 ↳   Расширения для phpBB 3.1-3.3 ↳   Бета-версии и расширения в разработке ↳   База расширений ↳   Поиск и запросы расширений ↳   Расширения для phpBB 3.1-3.3 для донаторов ↳   Условно-бесплатные расширения ↳   Платные расширения ↳   Расширения для подписчиков ↳   Запросы расширений, функционала и переводов для подписчиков ↳   Переводы расширений для phpBB3.1-3.3 ↳   Стили для phpBB 3.1-3.3 ↳   Вопросы по phpBB 3.1-3.3 Форумы по phpBB 3.0 ↳   Мод трекера ppkBB3cker ↳   Новости по трекеру и обновлениям ↳   Ошибки, проблемы, недочёты ↳   Предложения по новым функциям и возможностям ↳   Вопросы, ответы и примеры решений ↳   Моды и стили для трекера ↳   Готовые стили для трекера ↳   Запросы стилей для трекера ↳   Стили в разработке ↳   Готовые моды для трекера ↳   Запросы модов для трекера ↳   Моды в разработке ↳   Остальное ↳   Часто задаваемые вопросы ↳   Ваши трекеры ↳   Мод трекера xbtBB3cker ↳   Новости по трекеру и обновлениям ↳   Вопросы, ответы, ошибки и обсуждение ↳   Другие моды для phpBB 3.0 ↳   Минимоды и хаки для phpBB3 ↳   phpBB 3.0 ppkBB3cker Edition ↳   Платные услуги, моды, стили для phpBB 3.0 ↳   BB2Spoiler/BB3Spoiler ↳   BB3Topics ↳   BB3Sape ↳   BB3UserAgentInfo ↳   Вопросы по phpBB 3.0 ↳   Вне тематики форума