Nutsyy Опубликовано 27 Июня 2008 Жалоба Поделиться Опубликовано 27 Июня 2008 Не заработал вообще, кудабы не ставил. IPB 2.3.5 Ссылка на комментарий Поделиться на других сайтах Прочее
ModernTalking Опубликовано 21 Июля 2008 Жалоба Поделиться Опубликовано 21 Июля 2008 Dvvarf,спасибо! Работает! Ссылка на комментарий Поделиться на других сайтах Прочее
Док Опубликовано 28 Сентября 2008 Жалоба Поделиться Опубликовано 28 Сентября 2008 Как ни странно, у меня скрипт с самого начала не заработал. Фаерфокс молчал как партизан, просто ничего не выводил. Использовал эксплорер - он мне выдаёт: Expected '}' Т.е. где-то условие не закрыто. Нашёл, закрыл (кстати, видимо я ещё раз после этого где-то ошибся и удалил одну скобку...) Лан, это мелочи, думаю, я один такой. А вот в одном месте промашка..._y = Math.floor((_m-1)/12);if(x)_y++;Т.е. сначала от месяца отнимается единичка, а потом уже он делится для получения кол-ва лет.Вообщем, вот мой код, если у вас не работает - попробуйте его:<script language="javascript"> function rus(n,a1,a2,a3){ var s=new String(n); if(s.length>=2&s.substr(-2,1)=="1") return a1; switch(s.charAt(s.length-1)){case"1":return a2;case"2":case"3":case"4":return a3;} return a1;} x=false; showYear=true; start=new Date('May 22, 2007'); dd=new Date(); d0=dd.getDate(); d1=start.getDate(); m0=dd.getMonth(); m1=start.getMonth(); y0=dd.getFullYear(); y1=start.getFullYear(); var _m=(y0-y1)*12+(m0-m1);var _d=0;txt=""; if(d0>d1){_d=d0-d1; if(x){_m++;_d++;}} if(d0<d1){__y=(m0==0)?y0-1:y0;__m=(m0==0)?11:m0-1; _d=(new Date(y0,m0,d0,0,0,0)-new Date(__y,__m,d1,0,0,0))/(1000*24*60*60); if(!x){_m--;_d--;}} if(d0==d1) txt="Форуму <b>"+_m+"</b> "+rus(_m,"месяцев","месяц","месяца")+" <font color=red>РОВНО!</font>"; _y = Math.floor((_m)/12);if(x)_y++; if(d0==d1&m0==m1) txt="Форуму <b>"+_y+"</b> "+rus(_y,"лет","год","года")+" <b><font color=red>ДР форума!</font></b>"; _m=(_y>0&showYear)?_m%12:_m; ty=(showYear&_y>0)?"<b>"+_y+"</b> "+rus(_y,"лет","год","года"):""; tm=(_m>0)?"<b>"+_m+"</b> "+rus(_m,"месяцев","месяц","месяца"):""; _d=Math.ceil(_d); td="<b>"+_d+"</b> "+rus(_d,"дней","день","дня"); if(x){ ty=(showYear)?"<b>"+_y+"</b>-й год":""; tm="<b>"+_m+"</b>-й месяц"; td="<b>"+_d+"</b>-й день"; if(txt=="")txt="Форум в сети: "+ty+" "+tm+" "+td+"."; }else if(txt=="")txt="Форуму уже: "+ty+" "+tm+" и "+td+"."; document.write(txt); </script> Да, он занимает много места, зато в нём удобнее ориентироваться. Родной код работол нормально пока не исполнился год форуму и он мне показал Форуму 0 лет Поставил этот код и теперь все нормально показываетСпасибо Dvvarf Ссылка на комментарий Поделиться на других сайтах Прочее
Aleksandriiskii Опубликовано 6 Июня 2009 Жалоба Поделиться Опубликовано 6 Июня 2009 ребят а кто-нибуть может подсказать в какой шаблон и куда надо вставить этот код чтоб он был только на главной странице внизу статистики? Ссылка на комментарий Поделиться на других сайтах Прочее
mylipetsk Опубликовано 18 Июня 2009 Жалоба Поделиться Опубликовано 18 Июня 2009 А никото не задумывался о том, что этот код дает много ошибок валидности? Как исправить валидные ошибки? Ссылка на комментарий Поделиться на других сайтах Прочее
Dvvarf Опубликовано 25 Июля 2009 Жалоба Поделиться Опубликовано 25 Июля 2009 mylipetsk, по какому стандарту валидация?Aleksandriiskii, это очень просто. Внешний вид -> Изменение HTML-шаблонов -> skin_boards (главная страница) -> ShowStats.Там, после<td class="row1" width="1%"><{F_STATS}></td>добавляем<td class="row2">тут.код</td>где, соответственно вместо тут.код надо вписать код. =)З.Ы. Ох, давно меня тут не было... Отдалился я от ипб.З.З.Ы. Код счётчика, скажем так, не до конца совершенен. Но после нескольких изменений он точно стал лучше + одна полноценная настройка<script language="javascript"> function rus(n,a1,a2,a3){ var s=new String(n); if(s.length>=2&s.substr(-2,1)=="1") return a1; switch(s.charAt(s.length-1)){case"1":return a2;case"2":case"3":case"4":return a3;} return a1; } start=new Date('July 10, 2010'); showYear=true; x=false; // эти параметры, если вы поставите x в true showDay=false; showMonth=false; // всё, дальше код dd=new Date(); d0=dd.getDate(); d1=start.getDate(); m0=dd.getMonth(); m1=start.getMonth(); y0=dd.getFullYear(); y1=start.getFullYear(); var _m=(y0-y1)*12+(m0-m1); var _d=0; var txt=""; if(d0>d1){_d=d0-d1;if(x){_m++;_d++;}} if(d0<d1){ __y=(m0==0)?y0-1:y0;__m=(m0==0)?11:m0-1; _d=(new Date(y0,m0,d0,0,0,0)-new Date(__y,__m,d1,0,0,0))/(1000*24*60*60); if(!x){_m--;_d--;} } if(d0==d1&txt=="") txt="Форуму <b>"+_m+"</b> "+rus(_m,"месяцев","месяц","месяца")+" <font color=red>ровно!</font>"; _y = Math.floor((_m)/12); if(d0==d1&m0==m1&txt=="") txt="Форуму <b>"+_y+"</b> "+rus(_y,"лет","год","года")+" <b><font color=red>Юбилей!</font></b>"; _m=(_y>0&showYear)?_m%12:_m; _d=Math.ceil(_d); if(txt==""){ if(x){ _y++;ty=(showYear)?" <b>"+_y+"</b>-й год":""; tm=(showMonth)?" <b>"+_m+"</b>-й месяц":""; td=(showDay)?"<b> "+_d+"</b>-й день":""; txt="Форум в сети уже"+ty+tm+td+"."; } else { ty=(showYear&_y>0)?" <b>"+_y+"</b> "+rus(_y,"лет","год","года"):""; tm=(_m>0)?" <b>"+_m+"</b> "+rus(_m,"месяцев","месяц","месяца"):""; td=(_m>0)?" и ":" ";td+="<b>"+_d+"</b> "+rus(_d,"дней","день","дня"); txt="Форуму уже:"+ty+tm+td+"."; } } if(_y<0|_m<0|_d<0) txt="Если верить звёздам, то форум ещё не появился..."; document.write(txt); </script>Если поставите x=true, то вывод будет "Форум в сети уже 3-й год". С помощью параметров ShowMonth и ShowDay можно соответственно добавить в вывод месяц и день, а с помощью параметра ShowYear убрать год (чтобы сделать вывод "Форум в сети уже 8-й месяц" или даже "Форум в сети уже 5й день"). Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения