Посмотрите опытным глазом, почему не хочет работать, по идее скрипт должен поднимать объявления модуля доска объявлений
<script type="text/javascript"> timeDiff=Math.round(((new Date($YEAR$,parseInt('$MONTH$')-1,parseInt('$DAY$'),parseInt('<?substr($TIME$,0,2)?>'),parseInt('<?substr($TIME$,3)?>'))).getTime() - (new Date()).getTime())/1000)+30;
function currTime(){ var time=Math.round((new Date()).getTime()/1000); if(window.timeDiff) time+=window.timeDiff; return time;}
function n2(num){ return (num<10 ? '0' : '') + num;}
function up(id,lastModTS,addTS,oLink){ var dMod=new Date(); dMod.setTime(lastModTS*1000); var nextTS=lastModTS+7*24*60*60+50; var secLeft=nextTS - currTime();
if(secLeft > 0) { var minutes=secLeft/60; var hours=minutes/60; var days=hours/24; var nextD=new Date(); nextD.setTime(nextTS*1000); var nextDay=n2(nextD.getDate())+'.'+n2(nextD.getMonth()+1)+'.'+nextD.getFullYear(); var nextTime=nextD.toTimeString().substr(0,5); var txt='Поднимать объявление можно не чаще чем раз в неделю.\n\n'+ 'Это объявление можно будет поднять через ' + (days >= 1 ? '' + Math.round(days) + (days < 1.5 ? ' день' : (days<4.5 ? ' дня' : ' дней')) + ', ' + nextDay + ',': (hours > 0.8 ? '' + Math.round(hours) + ' час.,' : '' + (Math.round(minutes)+1) + ' мин.,')) + ' после ' + nextTime ; alert( txt ); return;}
Добавлено (18.12.2011, 16:16) --------------------------------------------- Вобщем сам скрипт допилил, вот работоспособная версия
внутри <?if($MODER_PANEL$)?> ) ставим код кнопки
<a href="javascript://" onclick="up($ID$,$LASTMOD$,$TIMESTAMP$,this);" title="Поднять в начало списка"><img src="http://s21.ucoz.net/img/fr/bt/39/p_up.gif" border=0 alt="Поднять"></a>
А на странице сам скрипт:
<script type="text/javascript"> timeDiff=Math.round(((new Date($YEAR$,parseInt('$MONTH$')-1,parseInt('$DAY$'),parseInt('<?substr($TIME$,0,2)?>'),parseInt('<?substr($TIME$,3)?>'))).getTime() - (new Date()).getTime())/1000)+30;
function currTime(){ var time=Math.round((new Date()).getTime()/1000); if(window.timeDiff) time+=window.timeDiff; return time;}
function n2(num){ return (num<10 ? '0' : '') + num;}
function up(id,lastModTS,addTS,oLink){ var dMod=new Date(); dMod.setTime(lastModTS*1000); var nextTS=lastModTS+7*24*60*60+50; var secLeft=nextTS - currTime();
if(secLeft > 0) { var minutes=secLeft/60; var hours=minutes/60; var days=hours/24; var nextD=new Date(); nextD.setTime(nextTS*1000); var nextDay=n2(nextD.getDate())+'.'+n2(nextD.getMonth()+1)+'.'+nextD.getFullYear(); var nextTime=nextD.toTimeString().substr(0,5); var txt='Поднимать объявление можно не чаще чем раз в неделю.\n\n'+ 'Это объявление можно будет поднять через ' + (days >= 1 ? '' + Math.round(days) + (days < 1.5 ? ' день' : (days<4.5 ? ' дня' : ' дней')) + ', ' + nextDay + ',': (hours > 0.8 ? '' + Math.round(hours) + ' час.,' : '' + (Math.round(minutes)+1) + ' мин.,')) + ' после ' + nextTime ; alert( txt ); return;}
var btnSrc; var oBtn; if(oLink){ oLink.onclick=''; oBtn=oLink.firstChild; btnSrc=oBtn.src; oBtn.src='/ajax-load.gif'; } $.get('/board/0-0-0-' + id + '-13', function(data){var form=$('#addEntForm', data); _uPostForm(form, {success: function(){if(oBtn) oBtn.scr=btnSrc; alert("Объявление поднято"); window.location.href='/board/0-0-$USER_ID$-0-17';}});}) } </script>
Но возникает следующая проблема, скрипт не поднимает объявление если поле "Размещено до" меньше текущей даты. Кто поможет допилить его чтобы при выполнении скрипта не только поднимало объявление, но и меняло поле "Размещен до" на текущую дату + 7 дней.
Сообщение отредактировал rekrutua - Пятница, 16.12.2011, 18:15