Перейти к контенту

[2.3.x]Время жизни форума


Рекомендуемые сообщения

index.php?app=downloads&module=display&section=screenshot&id=746

Название: Время жизни форума

Добавил: snubrik

Добавлен: 21 Янв 2008

Обновлен: 21 Янв 2008

Категория: IP.Board 2.3.x

 

Мод показывает время жизни формума.<br />Этот мод не моё изобритение, он был написан к версии 2.1.7<br />Чуток его модифицировал, а точнее убрал одну ф-цию и все.<br />Кем написан не помню, но я честно сказал, что это не моё.

 

Нажмите здесь, чтобы скачать файл

Ссылка на комментарий
Поделиться на других сайтах

На 2.3.4 не работает.

Так как там строка

<div id="ipbwrapper">

и

<% NAVIGATION %>

Находяться в разных местах.

Пробовал и туда и туда результат нулевой

Ссылка на комментарий
Поделиться на других сайтах

Путь куда надо вставляьт.

Админцентр > Управление шаблонами > Изменение общего шаблона форума IP.Board Pro

Вот мой код.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=<% CHARSET %>" />
<link rel="shortcut icon" href="favicon.ico" />
<title><% TITLE %></title>
<% GENERATOR %> 
<% CSS %>
<% JAVASCRIPT %> 
</head> 
<body>
<% BOARD HEADER %>
<% MEMBER BAR %>

<div id="ipbwrapper">
<% NAVIGATION %>

<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('January 25, 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-1)/12);if(x)_y++;
if(d0==d1&m0==m1)
 txt="Форуму <b>"+_y+"</b> "+rus(_y,"лет","год","года")+" <font color=red>РОВНО!</font>";
_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>
<!--IBF.NEWPMBOX-->
<% BOARD %>
<% BOARD FOOTER %>
<% STATS %> 
<% COPYRIGHT %>
</div>
</body> 
</html>

Ссылка на комментарий
Поделиться на других сайтах

Правильно в IP.Board Pro и идет так код

<div id="ipbwrapper">
<% NAVIGATION %>

А в стандартном и других там по другому. у меня их 5 штук стоит и не в одном не так написано,а в разных местах <% NAVIGATION %> и <div id="ipbwrapper">

Только у IP.Board Pro так идет

Ссылка на комментарий
Поделиться на других сайтах

По идеии если поставить ниже <% NAVIGATION %> то должно работать. Ну это только по идеии. Я еще не правил свои остальные скины. У меня сессия идет и времени нет.
Ссылка на комментарий
Поделиться на других сайтах

Я пробовал,ставил и <% NAVIGATION %> и после этого <div id="ipbwrapper">

Результат нулевой,что там,что там и нечего не отображаеться,можно было в другие места попробовать поставить,но не стал проводить эксперементы

Ссылка на комментарий
Поделиться на других сайтах

Вставил его перед <% NAVIGATION %> и все зароботало
Ссылка на комментарий
Поделиться на других сайтах

Поставил его после <!--IBF.NEWPMBOX--> тоже работает

 

У меня они так идут

<% MESSAGE %>

<% NAVIGATION %>

<!--IBF.NEWPMBOX-->

Ссылка на комментарий
Поделиться на других сайтах

У меня 5 скинов стоит и на всех нормально работает,только устанавливал туда где написал выши
Ссылка на комментарий
Поделиться на других сайтах

уток его модифицировал, а точнее убрал одну ф-цию и все.

Разрешите поинтересоваться, какую?

Имхо, забивать общий шаблон форума не рекомендую. Лучше в html шаблонах выбрать подходящее место и вставить.

 

Я скрипт этот выкладывал тут:

http://www.ibresource.ru/forums/index.php?showtopic=49803

 

Разницу увидел только одну. Вы поставили в 9-ой строчке false вместо true.

Хех, и этим Вы удалили функцию?

Ссылка на комментарий
Поделиться на других сайтах

Как ни странно, у меня скрипт с самого начала не заработал. Фаерфокс молчал как партизан, просто ничего не выводил. Использовал эксплорер - он мне выдаёт: 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>

Да, он занимает много места, зато в нём удобнее ориентироваться.

Ссылка на комментарий
Поделиться на других сайтах

Dvvarf, спасибо огромное, с твоим вариантом кода заработало
+1 :D

 

Клуб авиамоделистов-самодельщиков v. 2.3.3

Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...
  • 2 недели спустя...
Как ни странно, у меня скрипт с самого начала не заработал. Фаерфокс молчал как партизан, просто ничего не выводил. Использовал эксплорер - он мне выдаёт: 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>

Да, он занимает много места, зато в нём удобнее ориентироваться.

Спасибо, твой код окозался самым лучшим вариантом... все работает на ура :D

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.