В общем я думаю практически каждый, кто хоть раз занимался форумом понимает, что со временем (Через месяц, год, два) некоторые темы устаревают и теряют свою актуальность, но в них по прежнему отписываются пользователи, но они не замечают, что тема не работает, устарела и тд.
Если тему удалить, то это минус для сайта, если закрыть - поняв что тема не работает, пользователь уйдет.
Смысл скрипта в следующем:
Скрипт проверяет дату создания темы и если ей больше месяца / года / да хоть один день (дать возможность выбора), то он выводит сообщение в правом верхнем углу форума с звуковым уведомлением о том, что тема устарела и не работает...
Установка: 1) Панель управления ---> Управление дизайном --->
Форум ---> Общий вид страницы форума и после
$BODY$ вставляем:
Код
<?if($PAGE_ID$='threadpage')?>
<div id="wDataTeky" style="display:none;"></div>
<script type="text/javascript">
var wURL = location.href.split('/')[4].split('?')[0].split('#')[0].split('-')[0];
var wURL2 = location.href.split('/')[4].split('?')[0].split('#')[0].split('-')[1];
$.get("/forum/'+wURL+'-'+wURL2+'-1",function(data){
// Получаем дату темы
var wDataTemi = $('.wDATA:first').text();
if(wDataTemi=='Сегодня' || wDataTemi=='Вчера') {var wDataTemi = '$DATE$';}
var wDataTemi = wDataTemi.replace(/^(\d+)\.(\d{2})\.(\d{4})/,'$3,$2,$1');
var wDataTemi = new Date(wDataTemi).getTime();
// Получаем текущую дату
var wD = new Date();
var wDen = wD.getDate(); if(wDen < 10) {var wDen = '0'+wD.getDate();} else {var wDen = wD.getDate();}
var wMechic = (wD.getMonth() + 1); if(wMechic < 10) {var wMechic = '0'+(wD.getMonth() + 1);} else {var wMechic = (wD.getMonth() + 1);}
var wGod = wD.getFullYear();
$('#wDataTeky').html(wDen + '.' + wMechic + '.' + wGod);
wDataTeky = $("#wDataTeky").html();
var wDataTeky = wDataTeky.replace(/^(\d+)\.(\d{2})\.(\d{4})/,'$3,$2,$1');
var wDataTeky = new Date(wDataTeky).getTime();
// Получаем обе даты в милисикундах
wData = wDataTeky - wDataTemi;
wDays = 30*86400*1000;
// Делаем условие
if (wData > wDays) {setTimeout(function(){$('.wTemaUstarela').animate({top:'+=120'},1000);},1000); setTimeout(function(){$('.wTemaUstarela').animate({top:'-=120'},1000);},10000); $('body').append('<embed type="application/x-shockwave-flash" src="http://webo4ka.ru/Ucoz5/zvuk_ochenki_kommentovplayer.swf?song_url=http://webo4ka.ru/Ucoz5/zvuk_ochenki_kommentovmsg_in.mp3&autoplay=1&loop=0" width="0" height="0"/>');} // by webo4ka.ru
});
</script>
<div class="wTemaUstarela">Здравствуйте, <b>$USERNAME$</b>! Данная тема устарела, в ней нет смысла отписываться!</div> <style>.wTemaUstarela {background: rgba(255, 204, 204, 0.9); border:1px solid #ad7676; -moz-box-shadow:inset 0 0 2px rgba(255, 255, 255, 0.5); -webkit-box-shadow:inset 0 0 2px rgba(255, 255, 255, 0.5); box-shadow:inset 0 0 2px rgba(255, 255, 255, 0.5); color:#ad7676; padding:10px; position:fixed; top:-100px; right:20px; z-index:999}</style>
<?endif?>
В описании просилась сделать скрипт, который будет определять:
месяца / года / да хоть один день В данном варианте я сделал устаревание темы через месяц, если кто захочет изменит дату под себя...
2) Панель управления ---> Управление дизайном --->
Форум ---> Вид материалов и в самый верх вставляем:
Код
<div class="wDATA" style="display:none;">$DATE$</div>
на этом всё...