Как добавить падающий снег на трекер, форум phpBB3

Небольшие моды и хаки для форума phpBB3
Правила форума
При размещении мода/статьи взятой с другого форума/сайта обязательно необходимо указывать первоисточник сообщения.
 • Просмотры: 6251
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Как добавить падающий снег на трекер, форум phpBB3

21 дек 2010, 12:55

Исходный скрипт взят отсюда: http://www.schillmania.com/projects/snowstorm/

Скачиваем файл
snowstorm.js.tar.gz
(для скачивания необходимо зарегистрироваться) (или берём этот же файл из вышеуказанной ссылки), распаковываем, загружаем файл в директорию /tracker/addons/js/
Для стиля prosilver в файле
/styles/prosilver/template/overall_header.html, после

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

<script src="{PPKBB3CKER_ADDONS}js/ppkBB3cker.js" type="text/javascript"></script>
добавляем

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

<script src="{PPKBB3CKER_ADDONS}js/snowstorm.js" type="text/javascript"></script>
для стиля subsilver2 делаем всё абсолютно то же самое в файле /styles/subsilver2/template/overall_header.html

Обновляем стиль, очищаем кеш шаблонов, перезагружаем страницу, всё, демонстрация работы: {LANG_GET_SNOW} (для IE отключено + работает только если в личном разделе у вас выбран стиль bespin)

Чтобы отключить скрипт для не самого быстрого браузера (IE), нужно в файле /tracker/addons/js/snowstorm.js заменить

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

  // hooks for starting the snow
  s.events.add(window, 'load', doStart, false);
на

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

if(!jQuery.browser.msie)
{
  // hooks for starting the snow
  s.events.add(window, 'load', doStart, false);
}
Для чистого форума phpBB3 возможно потребуется предварительное подключение библиотеки JQuery и изменение путей подключаемого JS файла, указанную строку нужно будет добавлять перед
У вас нет необходимых прав для просмотра вложений в этом сообщении.
vi
viktor6
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Сообщения: 112
Зарегистрирован: 11 окт 2010, 23:13
Сообщение

Как добавить падающий снег на трекер, форум phpBB3

21 дек 2010, 20:00

а можно этот код както адаптировать под трекер ато мой проц не выдержкет такую нагрузку

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

<script> 
// CREDITS:
// Snowmaker Copyright (c) 2003 Peter Gehrig. All rights reserved.
// Modified (c) 2005, Igor Svetlov, Nickname: 12345c
// Permission given to use the script provided that this notice remains as is.
var snowmax=25 // Set the number of snowflakes (more than 30 - 40 not recommended)
var snowcolor=["#c4bbcc","#ccddFF","#ccd6DD"]
// Set the colors for the snow. Add as many colors as you like
var snowtype=["Arial Black","Arial Narrow","Times","Comic Sans MS"]
// Set the fonts, that create the snowflakes. Add as many fonts as you like
var snowletter=["*","$","€","&#8356;","<img src=/sneg.gif>","<img src=/sneg1.gif>"];
// Set the letter that creates your snowflake (recommended:*)
var sinkspeed=0.6 // Set the speed of sinking (recommended values range from 0.3 to 2)
var snowmaxsize=45 // Set the maximal-size of your snowflaxes
var snowminsize=18 // Set the minimal-size of your snowflaxes
var snowsizerange=snowmaxsize-snowminsize
// Set the snowing-zone
// Set 1 for all-over-snowing, set 2 for left-side-snowing 
// Set 3 for center-snowing, set 4 for right-side-snowing
var snowingleft=0.0 //левая граница присутствия снега
var snowingwidth=1 //ширина присутствия снега в окне
var opac=0.35 //непрозрачность снега (0.0-1.0), при 1.0 в 2 раза быстрее работает.
var stepTime=120 //шаг покадровой анимации (мсек). При менее 100 сильно нагружает процессор
var snow=new Array()
var marginbottom
var marginright
var timer
var x_mv=new Array(); var crds=new Array(); var lftrght=new Array();
var browserinfos=navigator.userAgent 
d=document
var isOpera=self.opera 
var ie5=d.all&&d.getElementById&&!isOpera
var ns6=d.getElementById&&!d.all
var browserok=ie5||ns6||isOpera

function randommaker(range){return Math.floor(range*Math.random())}

function botRight()
{
if(ie5||isOpera)
{
marginbottom=d.body.clientHeight; 
marginright=d.body.clientWidth;
}
else
if(ns6)
{
marginbottom=innerHeight; marginright=innerWidth;
}
}

function checkPgDn()
{
scrltop=ns6?pageYOffset:document.body.scrollTop;
}

function initsnow() 
{
checkPgDn();if(ns6)setInterval("checkPgDn()",999);
botRight();
for (i=0;i<=snowmax;i++)
{
crds[i] = 0; 
lftrght[i] = Math.random()*20; 
x_mv[i] = 0.03 + Math.random()/10;
snow[i]=d.getElementById("s"+i)
snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)]
snow[i].style.fontSize=snow[i].size=randommaker(snowsizerange)+snowminsize
snow[i].style.color=snowcolor[randommaker(snowcolor.length)]
snow[i].sink=sinkspeed*snow[i].size/5
newPosSnow(randommaker(marginbottom-3*snow[i].size));
}
movesnow();
}

function newPosSnow(y)
{
var o;
snow[i].posx=randommaker(marginright*snowingwidth-2*snow[i].size)+marginright*snowingleft
snow[i].posy=y+(ns6?pageYOffset:d.body.scrollTop);
snow[i].size=randommaker(snowsizerange)+snowminsize;
if(snow[i].hasChildNodes()&&(o=snow[i].childNodes[0]).tagName=='IMG') o.width=o.height=randommaker(snowsizerange/1.6)+snowminsize;
}

function movesnow() 
{
for (i=0;i<=snowmax;i++) 
{
snow[i].style.top=snow[i].posy+=snow[i].sink+lftrght[i]*Math.sin(crds[i])/3;
crds[i] += x_mv[i];
snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i]);
if(snow[i].posy>=marginbottom-3*snow[i].size+scrltop || parseInt(snow[i].style.left)>(marginright-3*lftrght[i]))newPosSnow(0);
}
var timer=setTimeout("movesnow()",stepTime)
}

for (i=0;i<=snowmax;i++)
{
d.write("<span id='s"+i+"' style='position:absolute;"+(opac<1?"-moz-opacity:"+opac+";filter:alpha(opacity="+(opac*100)+")":"")+";top:-"+snowmaxsize+"'>"
+snowletter[Math.floor(snowletter.length*Math.random())]+"</span>")
} //-moz-opacity:0.5;filter:alpha(opacity=50);

onload=function()
{
if(browserok)setTimeout("initsnow()",99);
}

onmousewheel = onscroll = function(){checkPgDn()}
onresize = function(){botRight();}
</script>
Un
Universal_gr
Откуда: Урал
Благодарил (а): 1 раз
Сообщения: 91
Зарегистрирован: 16 апр 2010, 20:01
Сообщение

Как добавить падающий снег на трекер, форум phpBB3

21 дек 2010, 20:13

А ссылочку "Хочу/Не хочу снег" как сделать?
le
levik
Откуда: Город - Герой Киев
Благодарил (а): 1 раз
Поблагодарили: 14 раз
Сообщения: 321
Зарегистрирован: 07 янв 2010, 15:45
Сообщение

Как добавить падающий снег на трекер, форум phpBB3

21 дек 2010, 20:56

А как вообще выводить в админке пункт меню дето...
К примеру снег вкл / выкл... ??
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Как добавить падающий снег на трекер, форум phpBB3

22 дек 2010, 11:38

/language/ru/common.php перед добавить

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

	'EXCLUDE_IE' => 'Извините, для Intenet Explorer данная функция отключена.',
	'GET_SNOW' => '<a href="javascript;" class="get_snow">Хочу снег!</a>',
	'OFF_SNOW' => '<a href="javascript;" class="get_snow">Не хочу снег!</a>',
	'WANT_SNOW' => 'Хочу снег!',
	'DONTWANT_SNOW' => 'Не хочу снег!',
/includes/functions.php перед

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

'SITENAME'						=> $config['sitename'],
добавить

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

'I_SNOW' => isset($_COOKIE['i_snow']) && $_COOKIE['i_snow'] ? true : false,
/styles/prosilver/template/overall_header.html
после

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

<script src="{PPKBB3CKER_ADDONS}js/snowstorm.js" type="text/javascript"></script>
добавить

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

<script type="text/javascript">
// <![CDATA[

	 jQuery(document).ready(
		function($)
		{
			<!-- IF not I_SNOW -->
			if(!jQuery.browser.msie)
			{
				snowStorm.start();
				snowStorm.toggleSnow();
			}
			<!-- ENDIF -->
			$(".get_snow").click(function () {
			if(!jQuery.browser.msie)
			{
				    if (!snowStorm.flakes.length) {
				      // first run
				      snowStorm.start();
				      $('.get_snow').html('{L_DONTWANT_SNOW}');
				      setCookie('i_snow', 1, 7);
				    } else {
				      snowStorm.active = !snowStorm.active;
				      if (snowStorm.active) {
					snowStorm.show();
					snowStorm.resume();
					$('.get_snow').html('{L_DONTWANT_SNOW}');
					setCookie('i_snow', 1, 7);
				      } else {
					snowStorm.stop();
					snowStorm.freeze();
					$('.get_snow').html('{L_WANT_SNOW}');
					setCookie('i_snow', 0, 7);
				      }
				}
			}
			else
			{
				alert('{L_EXCLUDE_IE}');
			}
			});
		}
	);			
	function getCookie(name)
	{
		var start = document.cookie.indexOf( name + "=" );
		var len = start + name.length + 1;
		if ((!start) && (name != document.cookie.substring( 0, name.length)))
		{
			return null;
		}
		if (start == -1) return null;
		var end = document.cookie.indexOf(';', len);
		if (end == -1) end = document.cookie.length;
		return unescape(document.cookie.substring(len, end));
	}

	function setCookie (name, value, expires, path, domain, secure)
	{
		var today = new Date();
		today.setTime(today.getTime());
		if (expires)
		{
			expires = expires * 1000 * 60 * 60 * 24;
		}
		var expires_date = new Date( today.getTime() + (expires));
		document.cookie = name+'='+escape( value ) +
		((expires) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
		((path) ? ';path=' + path : '' ) +
		((domain) ? ';domain=' + domain : '' ) +
		((secure) ? ';secure' : '' );
	}

	function deleteCookie (name, path, domain)
	{
		if (getCookie(name)) document.cookie = name + '=' +
		((path) ? ';path=' + path : '') +
		((domain) ? ';domain=' + domain : '' ) +
		';expires=Thu, 01-Jan-1970 00:00:01 GMT';
	}
// ]]>
</script>
для стиля subsilver2 делаем всё абсолютно то же самое в файле /styles/subsilver2/template/overall_header.html
если нужно включить возможность использовать снег и в IE - в приведённом выше коде удалить:

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

			else
			{
				alert('{L_EXCLUDE_IE}');
			}
и

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

			if(!jQuery.browser.msie)
			{
				snowStorm.start();
				snowStorm.toggleSnow();
			}
заменить на

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

				snowStorm.start();
				snowStorm.toggleSnow();
для вывода ссылки Хочу снег!/Не хочу снег! в нужный файла шаблона, в нужное место вставить:

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

<!-- IF I_SNOW -->{L_OFF_SNOW}<!-- ELSE -->{L_GET_SNOW}<!-- ENDIF -->
ru
ru3qx
Откуда: USSR
Поблагодарили: 4 раза
Сообщения: 315
Зарегистрирован: 25 мар 2010, 22:07
Сообщение

Как добавить падающий снег на трекер, форум phpBB3

22 дек 2010, 20:32

В Мозиле идёт подёргивание страницы.
Во всех остальных браузерах нормально, даже в Иешке.
Что у меня проблема с Мозилой или скрипт неправильно работает?
Sw
Swd
Сообщения: 77
Зарегистрирован: 20 июл 2009, 01:57
Сообщение

Как добавить падающий снег на трекер, форум phpBB3

23 дек 2010, 11:08

у меня в мозиле вообще не идет ! может из за то го что у меня убунту
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Как добавить падающий снег на трекер, форум phpBB3

23 дек 2010, 11:19

Не нашёл кода на сайте. :?:
Sw
Swd
Сообщения: 77
Зарегистрирован: 20 июл 2009, 01:57
Сообщение

Как добавить падающий снег на трекер, форум phpBB3

23 дек 2010, 14:10

все разобрался !
Аватара пользователя
PPK
Администратор
Благодарил (а): 82 раза
Поблагодарили: 1621 раз
Сообщения: 10284
Зарегистрирован: 21 мар 2009, 17:13
Сообщение

Как добавить падающий снег на трекер, форум phpBB3

23 дек 2010, 20:29

viktor6 писал(а):а можно этот код както адаптировать под трекер ато мой проц не выдержкет такую нагрузку
как минимум (это и в этом и в том скрипте есть) нужно попробовать разные настройки/опции - уменьшить количество снега, интенсивность и т.д.

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