Автор |
Сообщение |
|
|
Администратор |
 |
Стаж: 9 лет 6 месяцев 28 дней Сообщения: 1235 Откуда: здешние мы
Стиль: subsilver2
Репутация: 11
перейти на сайт пользователя
Найти темы пользователя
|
Новогодний мод (три составляющих)появилось время и решил сотворить "Новогодний мод" для сайта. из тех тем, что есть здесь на форуме. Описание: Мод позволяет управлять из администраторского раздела тремя "украшениями": снег на форуме, новогодняя гирлянда и таймер отсчёта до наступления Нового года. возможна работа как всех вместе, так и по отдельности. Я расположил гирлянду и таймер над шапкой форума, то есть сам сайт немного сдвинулся вниз. сделал это потому, что у многих в шапке располагается различная информация, которую эти "украшения" могут скрыть. разумеется вы сами можете подогнать сие под свои вкусы. p.s. новогодняя гирлянда - это творение Яндекса, как говорят. при качании шаров должна звучать мелодия, но я несколько раз экспериментировал и на поддоменах звук работать не желал. на "чистых" сайтах работал. Выглядеть будет так: Выключатели в админке. По умолчанию всё отключено: Вложение:
Комментарий к файлу: администраторский раздел
adminka.png [ 65.85 КБ | Просмотров: 7133 ]
adminka.png
Вывод украшений все вместе и поочерёдно на "чистом" prosilver'e: Вложение:
Комментарий к файлу: все вместе
prosilver_full.png [ 100.83 КБ | Просмотров: 7133 ]
prosilver_full.png
Вложение:
Комментарий к файлу: только гирлянда
prosilver_mot.png [ 98.09 КБ | Просмотров: 7133 ]
prosilver_mot.png
Вложение:
Комментарий к файлу: только снег
prosilver_snow.png [ 16.34 КБ | Просмотров: 7133 ]
prosilver_snow.png
Вложение:
Комментарий к файлу: только таймер
prosilver_time.png [ 18.34 КБ | Просмотров: 7133 ]
prosilver_time.png
Вступление закончено. Теперь как это всё установить: Скачать мод из архива сайта: Скачать из файлового архива сайтаРаспаковать и скопировать содержимое папки root в корень сайта (где файл config.php). запустить через браузер файл db_update.php (для создания таблиц в базе) после отработки запроса удалить файл с сервера. После этого сделать правки файлов: Открыть includes/functions.phpНайти Код: Выделить всё // The following assigns all _common_ variables that may be used at any point in a template. $template->assign_vars(array( Вставить после найденного Код: Выделить всё 'S_ENABLE_DOPP1' => ($config['enable_dopp1']) ? true : false , 'S_ENABLE_DOPP2' => ($config['enable_dopp2']) ? true : false , 'S_ENABLE_DOPP3' => ($config['enable_dopp3']) ? true : false ,
Открыть includes/acp/acp_board.phpНайти Код: Выделить всё legend2' => 'WARNINGS', 'warnings_expire_days' => array('lang' => 'WARNINGS_EXPIRE', 'validate' => 'int', 'type' => 'text:3:4', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']), Вставить после найденного Код: Выделить всё 'legend4' => 'ENABLE_ELEMENTS', 'enable_dopp1' => array('lang' => 'ENABLE_DOPP1', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true), 'enable_dopp2' => array('lang' => 'ENABLE_DOPP2', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true), 'enable_dopp3' => array('lang' => 'ENABLE_DOPP3', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
Открыть language/ru/acp/board.phpНайти Вставить перед найденным Код: Выделить всё 'ENABLE_DOPP1' => 'Включить <span style="color:green;">снег на форуме</span>', 'ENABLE_DOPP1_EXPLAIN' => 'Выберите Да для отображения данного элемента либо Нет для его скрытия', 'ENABLE_DOPP2' => 'Включить <span style="color:green;">отсчёт до Нового года</span>', 'ENABLE_DOPP2_EXPLAIN' => 'Выберите Да для отображения данного элемента либо Нет для его скрытия', 'ENABLE_DOPP3' => 'Включить <span style="color:green;">новогоднюю гирлянду</span>', 'ENABLE_DOPP3_EXPLAIN' => 'Выберите Да для отображения данного элемента либо Нет для его скрытия', Найти Вставить перед найденным Код: Выделить всё 'ENABLE_ELEMENTS' => 'Новогодние украшения на сайте', Правки в шаблонах стиля. не важно какой стиль: Открыть overall_header.htmlНайти Вставить перед найденным Открыть overall_footer.htmlНайти Вставить перед найденным Всё. чистим кэш и пользуемся. Пояснения по коду:

по снегу
в ходе тестов и использования никаких проблем не наблюдалось

по гирлянде
как я уже писал выше - мне не удалось добиться появления звучания при колебаниях шаров указателем мыши на поддоменах. но на чистых (прямых) сайтах работает. бывает помогает прописка абсолютного пути подключения в файле newyear/js/newyear.jsстрока заменить на Код: Выделить всё var i = "http://ваш сайт/newyear/js/newyear.swf";

по таймеру
для нормальной работы необходимо указать реальный год: Открыть styles/ваш стиль/template/new_year_overall.htmlНайти пропишите в этой строке вместо 2019 реально будущий новый год Найти Код: Выделить всё <b><font color=red>Поздравляем всех с Новым, 2019 годом!! Ура!</font></b> и здесь поправьте поздравление.

перевод настроек "падения" снега
файл snowstorm.js
// Настройки: // ------------------
var imagePath = 'images/snow/'; // относительный путь к изображениям снежинок (включая косую черту) var flakesMax = 128; // Устанавливает максимальное количество снежинок, которые могут существовать на экране в любой момент времени. var flakesMaxActive = 64; // Устанавливает предел количества "падения" снежинок (т.е. тех, которые находятся в движении, таким образом считаются "активными".) var vMaxX = 8; // Определяет максимальные скорости X для перемещения. Диапазон до этого значения выбирается случайным образом. var vMaxY = 4; // Определяет максимальные скорости Y для перемещения. Диапазон до этого значения выбирается случайным образом. var usePNG = true; // Включает PNG изображения, если поддерживается ("false" возвращается к GIF) var flakeBottom = null; // Ограничивает" нижнюю " координату снега. Выберите 0 или null, чтобы зафиксировать "низ экрана" // Integer for fixed bottom, 0 or null for "full-screen" snow effect var snowStick = false; // Позволяет снегу "прилипать" к нижней части окна. Когда он выключен, снег никогда не будет "сидеть" на дне. var snowCollect = false; // Позволяет снегу накапливаться (медленно) в нижней части окна. (Может быть очень ЦП / ресурсоемким с течением времени.) Также требуется snowStick = true. var targetElement = null; // элемент, к которому будет добавлен снег ("body", если не определено) var followMouse = true; // Позвольте мыши влиять на "ветер", слева направо. var flakeTypes = 6; // Устанавливает диапазон используемых изображений хлопьев (например. значение 5 будет использовать изображения в диапазоне от 0.png до 4.формат PNG.), в данном случае 6 разных размеров снежинок. var flakeWidth = 5; // Ширина (в пикселях) каждого изображения снежинки. var flakeHeight = 5; // Высота (в пикселях) каждого изображения снежинки.
// ------------------
Вроде всё. успешного применения. 
|
|
трёхголовый белк семейства рептилоидов: "три головы - хорошо, на как же трудно придти к согласию..."
|
|
mod,phpbb3.0.x,new year,новогодний мод,снег на форуме,гирлянда новогодняя для сайта
|
 |
|
|
Стаж: 8 лет 3 месяца 6 дней Сообщения: 741
Стиль: prosilver
Репутация: 15
перейти на сайт пользователя
Найти темы пользователя
|
Спасибо, Андрей! А сам код отображения можно править в этом моде? После моих тестов, я несколько изменил отображение текста: Код: Выделить всё <center><span style="font-size:10pt"><script LANGUAGE="javascript"> document.write('<span id="ny_date">До Нового Года</span>') function ojidanieNG() { var today = new Date();
var BigDay = new Date("January 1, 2018"); var timeLeft = (BigDay.getTime() - today.getTime());
var e_daysLeft = timeLeft / 86400000; var daysLeft = Math.floor(e_daysLeft);
var e_hrsLeft = (e_daysLeft - daysLeft)*24; var hrsLeft = Math.floor(e_hrsLeft);
var e_minsLeft = (e_hrsLeft - hrsLeft)*60; var minsLeft = Math.floor(e_minsLeft);
var seksLeft = Math.floor((e_minsLeft - minsLeft)*60);
if (BigDay.getTime() > today.getTime() ) document.getElementById("ny_date").innerHTML = '<font color=blue><b>До Нового года</b>: <b>'+daysLeft+'</b> дней, <b>'+hrsLeft+'</b> часов, <b>'+minsLeft+'</b> минут, <b>'+seksLeft+'</b> секунд</font>' else document.getElementById("ny_date").innerHTML = '<font color=blue><b>Поздравляем с Новым 2018 годом!!!</b></font>' } setInterval("ojidanieNG()", 50) </SCRIPT></span> </center> Обязательно воспользуюсь данным модом ближе к праздникам. А к 8 марта ничего нет? 
|
|
|
|
|
 |
|
|
Стаж: 8 лет 3 месяца 6 дней Сообщения: 741
Стиль: prosilver
Репутация: 15
перейти на сайт пользователя
Найти темы пользователя
|
Замечательный мод! Поставил, все работает! Теперь буду пользоваться каждый год. Я уже включил. Андрей, а ты собираешь включать его включать? НГ уже близко Пока правки делал обратил внимание, что в моем overall_footer.html в самом начале идет закрытый тэг </div> Это не ошибка? Код: Выделить всё </div>
<div id="page-footer">
<div class="navbar"> <div class="inner"><span class="corners-top"><span></span></span>
<ul class="linklist"> <li class="icon-home"><a href="{U_INDEX}" accesskey="h">{L_INDEX}</a></li> <!-- IF not S_IS_BOT --> <!-- IF S_WATCH_FORUM_LINK --><li <!-- IF S_WATCHING_FORUM -->class="icon-unsubscribe"<!-- ELSE -->class="icon-subscribe"<!-- ENDIF -->><a href="{S_WATCH_FORUM_LINK}" title="{S_WATCH_FORUM_TITLE}">{S_WATCH_FORUM_TITLE}</a></li><!-- ENDIF --> <!-- IF U_WATCH_TOPIC --><li <!-- IF S_WATCHING_TOPIC -->class="icon-unsubscribe"<!-- ELSE -->class="icon-subscribe"<!-- ENDIF -->><a href="{U_WATCH_TOPIC}" title="{L_WATCH_TOPIC}">{L_WATCH_TOPIC}</a></li><!-- ENDIF --> <!-- IF U_BOOKMARK_TOPIC --><li class="icon-bookmark"><a href="{U_BOOKMARK_TOPIC}" title="{L_BOOKMARK_TOPIC}">{L_BOOKMARK_TOPIC}</a></li><!-- ENDIF --> <!-- IF U_BUMP_TOPIC --><li class="icon-bump"><a href="{U_BUMP_TOPIC}" title="{L_BUMP_TOPIC}">{L_BUMP_TOPIC}</a></li><!-- ENDIF --> <!-- ENDIF --> <li class="rightside"><!-- IF U_TEAM --><a href="{U_TEAM}">{L_THE_TEAM}</a> • <!-- ENDIF --><!-- IF not S_IS_BOT --><a href="{U_DELETE_COOKIES}">{L_DELETE_COOKIES}</a> • <!-- ENDIF -->{S_TIMEZONE}</li> </ul>
<span class="corners-bottom"><span></span></span></div> </div> <!-- IF SCRIPT_NAME == "index" && SEO_KEY --> <br /> <div class="panel bg2"> <div class="inner"><span class="corners-top"><span></span></span> <img src="{ROOT_PATH}images/can.png" alt="{L_CAN}" /><span><em>{SEO_KEY}</em></span> <span class="corners-bottom"><span></span></span></div> </div> <!-- ENDIF --> <div class="copyright"> © www.crimea-your.ru. Все права защищены. При использовании материалов www.crimea-your.ru/forum, гиперсылка на сайт, или форум обязательна!<br /> <!-- Yandex.Metrika informer --> <a href="https://metrika.yandex.ru/stat/?id=26865003&from=informer" target="_blank" rel="nofollow"><img src="//bs.yandex.ru/informer/26865003/3_1_FFFFFFFF_EFEFEFFF_0_pageviews" style="width:88px; height:31px; border:0;" alt="Яндекс.Метрика" title="Яндекс.Метрика: данные за сегодня (просмотры, визиты и уникальные посетители)" onclick="try{Ya.Metrika.informer({i:this,id:26865003,lang:'ru'});return false}catch(e){}"/></a> <!-- /Yandex.Metrika informer -->
<!-- Yandex.Metrika counter --> <script type="text/javascript"> (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter26865003 = new Ya.Metrika({id:26865003, clickmap:true, trackLinks:true, accurateTrackBounce:true}); } catch(e) { } });
var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks"); </script> <noscript><div><img src="//mc.yandex.ru/watch/26865003" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> <!-- IF DEBUG_OUTPUT --><br />{DEBUG_OUTPUT}<!-- ENDIF --> <!-- IF U_ACP --><br /><strong><a href="{U_ACP}">{L_ACP}</a></strong><!-- ENDIF --> <p align="center"><!-- Яндекс.Директ --> <div id="yandex_ad"></div> <script type="text/javascript"> (function(w, d, n, s, t) { w[n] = w[n] || []; w[n].push(function() { Ya.Direct.insertInto(171027, "yandex_ad", { ad_format: "direct", font_size: 1, type: "horizontal", border_type: "collapse", limit: 4, title_font_size: 3, border_radius: true, links_underline: true, site_bg_color: "FFFFFF", header_bg_color: "FEEAC7", border_color: "3399FF", title_color: "0000CC", url_color: "006600", text_color: "000000", hover_color: "0066FF", sitelinks_color: "0000CC", favicon: true, no_sitelinks: false }); }); t = d.getElementsByTagName("script")[0]; s = d.createElement("script"); s.src = "//an.yandex.ru/system/context.js"; s.type = "text/javascript"; s.async = true; t.parentNode.insertBefore(s, t); })(window, document, "yandex_context_callbacks"); </script></p> </div> </div>
</div>
<div> <a id="bottom" name="bottom" accesskey="z"></a> <!-- IF not S_IS_BOT -->{RUN_CRON_TASK}<!-- ENDIF --> </div>
</div>
<!-- IF S_USER_PM_POPUP and S_NEW_PM --> <script type="text/javascript"> setOpacity('main-block', 0.3); </script> <!--[if lt IE 7]> <script type="text/javascript"> var pmPopupDiv = document.getElementById('pm-popup'); function pmPopup() { if (pmPopupDiv.style.display != 'none') { pmPopupDiv.style.top = (document.documentElement.scrollTop + parseInt(document.documentElement.clientHeight / 2)) + 'px'; } } window.onscroll = pmPopup; </script> <![endif]--> <!-- ENDIF -->
<!-- INCLUDE new_year_footer.html --> </body> </html> Помоему там вообще какая то лажа с этими div-ами 
|
|
|
|
|
 |
|
|
Администратор |
 |
Стаж: 9 лет 6 месяцев 28 дней Сообщения: 1235 Откуда: здешние мы
Стиль: subsilver2
Репутация: 11
перейти на сайт пользователя
Найти темы пользователя
|
да нет, всё правильно. </div> в футере закрывает блок "тела" страницы. ведь в стандартном варианте хеадер заканчивается Код: Выделить всё <a name="start_here"></a> <div id="page-body"> то есть как раз "тело" и открывается. оно же должно где-то заканчиваться? 
|
|
трёхголовый белк семейства рептилоидов: "три головы - хорошо, на как же трудно придти к согласию..."
|
|
|
 |
|
|
Стаж: 8 лет 3 месяца 6 дней Сообщения: 741
Стиль: prosilver
Репутация: 15
перейти на сайт пользователя
Найти темы пользователя
|
аа, ну хорошо  спс Эта большая гирлянда красивая, но доставляет неудобства когда отвечаешь на форуме, пишешь пост. Отключил ее Заметил красивые колокольчики, они очень даже в тему и не мешают.  Они, видимо не из этого мода. А просто добавлены картинкой, верно?
|
|
|
|
|
 |
|
|
Администратор |
 |
Стаж: 9 лет 6 месяцев 28 дней Сообщения: 1235 Откуда: здешние мы
Стиль: subsilver2
Репутация: 11
перейти на сайт пользователя
Найти темы пользователя
|
за время движения отвечает эта строчка: Код: Выделить всё s.timers = (!isWin9X?[setInterval(s.snow,20)]:[setInterval(s.snow,75),setInterval(s.snow,25)]); в файле snowstorm.jsкакой именно параметр за какое движение отвечает - шут его знает. лучше увеличивайте все на определённую цифру. поэкспериментрируйте. я изменил эти параметры на +50, строчка стала Код: Выделить всё s.timers = (!isWin9X?[setInterval(s.snow,70)]:[setInterval(s.snow,125),setInterval(s.snow,75)]); видите, что получилось?
|
|
трёхголовый белк семейства рептилоидов: "три головы - хорошо, на как же трудно придти к согласию..."
|
|
|
 |
|