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

       

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

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

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

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

26 сообщений
  • 1
  • 2
  • 3
  • След.
Просмотры: 6438 • 
  • Аватара пользователя
    PPK Сообщение 21.12.2010
    Исходный скрипт взят отсюда: 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 файла, указанную строку нужно будет добавлять перед

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

    </head>
    У вас нет необходимых прав для просмотра вложений в этом сообщении. Попробуйте зарегистрироваться или войти на форум.
PPK
  • viktor6 Сообщение 21.12.2010
    а можно этот код както адаптировать под трекер ато мой проц не выдержкет такую нагрузку

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

    <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>
viktor6
  • Universal_gr Сообщение 21.12.2010
    А ссылочку "Хочу/Не хочу снег" как сделать?
Universal_gr
  • levik Сообщение 21.12.2010
    А как вообще выводить в админке пункт меню дето...
    К примеру снег вкл / выкл... ??
levik
  • Аватара пользователя
    PPK Сообщение 22.12.2010
    /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 -->
PPK
  • ru3qx Сообщение 22.12.2010
    В Мозиле идёт подёргивание страницы.
    Во всех остальных браузерах нормально, даже в Иешке.
    Что у меня проблема с Мозилой или скрипт неправильно работает?
ru3qx
  • Swd Сообщение 23.12.2010
    у меня в мозиле вообще не идет ! может из за то го что у меня убунту
Swd
  • Аватара пользователя
    PPK Сообщение 23.12.2010
    Не нашёл кода на сайте. :?:
PPK
  • Swd Сообщение 23.12.2010
    все разобрался !
Swd
  • Аватара пользователя
    PPK Сообщение 23.12.2010
    viktor6 писал(а):а можно этот код както адаптировать под трекер ато мой проц не выдержкет такую нагрузку
    как минимум (это и в этом и в том скрипте есть) нужно попробовать разные настройки/опции - уменьшить количество снега, интенсивность и т.д.
PPK
26 сообщений
  • 1
  • 2
  • 3
  • След.

Вернуться в «Минимоды и хаки для 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 ↳   Вне тематики форума