Небольшой скрипт, который позволяет отобразить количество дней со дня регистрации пользователя, под его аватарой, при просмотре тем.
Скрипт можно установить как дополнение к уже существующему полю "Зарегистрирован: ...", либо как замену.
Установка крайне проста.
Для prosilver и его клонов. Открываете шаблон
Добавляете после, либо меняете на:
Для subsilver2 и его клонов. Открываете шаблон
Добавляете после, либо меняете на:
Надпись
Скрипт будет использовать правильный русский язык при отображении даты: месяцев, дней, лет, года и т.д.
Также скрипт можно немного переделать чтобы использовать в качестве отчета времени со дня основания форума, либо любого другого события, достаточно удалить первые пять строк кода и установит в
Скрипт можно установить как дополнение к уже существующему полю "Зарегистрирован: ...", либо как замену.
Установка крайне проста.
Для prosilver и его клонов. Открываете шаблон
viewtopic_body.html
, находите:
Код: Выделить всё
<!-- IF postrow.POSTER_POSTS != '' --><dd><strong>{L_POSTS}:</strong> {postrow.POSTER_POSTS}</dd><!-- ENDIF -->
Код: Выделить всё
<!-- IF postrow.POSTER_POSTS != '' -->
<dd>
<script type="text/javascript">
p_j = '{postrow.POSTER_JOINED}';
ms='янвфевмарапрмайиюниюлавгсеноктноядек';
d = p_j.substr(0,2)*1;
m = ms.indexOf(p_j.substr(3,3))/3;
y = p_j.substr(7,4)*1;
d0 = new Date(y,m,d);
d1 = new Date();
dt = (d1.getTime() - d0.getTime()) / (1000*60*60*24);
cDay = Math.floor(dt);
cMon = "0";
cNear = "0";
tDay = " дней ";
tMon = " месяцев ";
tNear = " лет ";
if (cDay >= 30) cMon = Math.floor(cDay/30.4375);
if (cDay >= 365) cNear = Math.floor(cMon/12);
cDay = cDay-Math.floor(cMon*30.4375);
cMon = cMon-(cNear*12);
if (cDay >=2 && cDay <=4 || cDay >=22 && cDay <=24) tDay = " дня ";
if (cDay ==1 || cDay ==21 || cDay ==31) tDay = " день ";
if (cMon >=2 && cMon <=4) tMon = " месяца ";
if (cMon ==1) tMon = " месяц ";
if (cNear >=2 && cNear <=4 || cNear >=22 && cNear <=24) tNear = " года ";
if (cNear ==1 || cNear ==21 || cNear ==31) tNear = " год ";
document.write('<strong>На форуме:</strong> ');
if (cMon<1 && cNear<1) document.write(cDay+tDay);
else if (cMon>=1 && cNear<1) document.write(cMon+tMon+cDay+tDay);
else document.write(cNear+tNear+cMon+tMon+cDay+tDay);
</script>
</dd>
<!-- ENDIF -->
Для subsilver2 и его клонов. Открываете шаблон
viewtopic_body.html
, находите:
Код: Выделить всё
<!-- IF postrow.POSTER_JOINED --><br /><b>{L_JOINED}:</b> {postrow.POSTER_JOINED}<!-- ENDIF -->
Код: Выделить всё
<!-- IF postrow.POSTER_JOINED -->
<script type="text/javascript">
p_j = '{postrow.POSTER_JOINED}';
ms='янвфевмарапрмайиюниюлавгсеноктноядек';
d = p_j.substr(0,2)*1;
m = ms.indexOf(p_j.substr(3,3))/3;
y = p_j.substr(7,4)*1;
d0 = new Date(y,m,d);
d1 = new Date();
dt = (d1.getTime() - d0.getTime()) / (1000*60*60*24);
cDay = Math.floor(dt);
cMon = "0";
cNear = "0";
tDay = " дней ";
tMon = " месяцев ";
tNear = " лет ";
if (cDay >= 30) cMon = Math.floor(cDay/30.4375);
if (cDay >= 365) cNear = Math.floor(cMon/12);
cDay = cDay-Math.floor(cMon*30.4375);
cMon = cMon-(cNear*12);
if (cDay >=2 && cDay <=4 || cDay >=22 && cDay <=24) tDay = " дня ";
if (cDay ==1 || cDay ==21 || cDay ==31) tDay = " день ";
if (cMon >=2 && cMon <=4) tMon = " месяца ";
if (cMon ==1) tMon = " месяц ";
if (cNear >=2 && cNear <=4 || cNear >=22 && cNear <=24) tNear = " года ";
if (cNear ==1 || cNear ==21 || cNear ==31) tNear = " год ";
document.write('<br /><b>На форуме:</b> ');
if (cMon<1 && cNear<1) document.write(cDay+tDay);
else if (cMon>=1 && cNear<1) document.write(cMon+tMon+cDay+tDay);
else document.write(cNear+tNear+cMon+tMon+cDay+tDay);
</script>
<!-- ENDIF -->
На форуме:
можно поменять на Стаж:
, либо на что нибудь своё.Скрипт будет использовать правильный русский язык при отображении даты: месяцев, дней, лет, года и т.д.
Также скрипт можно немного переделать чтобы использовать в качестве отчета времени со дня основания форума, либо любого другого события, достаточно удалить первые пять строк кода и установит в
d0 = new Date
необходимую дату, следующего вида - 'September 24, 2013'
.Комментарии: 29
Я так понимаю нужно удалить переменную:
Не повредит ли это структуру кода?
Код: Выделить всё
<!-- IF postrow.POSTER_JOINED --><br /><b>{L_JOINED}:</b> {postrow.POSTER_JOINED}<!-- ENDIF -->
CabinetAdmin
Я её всю и удалил, всё отлично работает
Я её всю и удалил, всё отлично работает
Код: Выделить всё
<!-- IF postrow.POSTER_JOINED --><br /><b>{L_JOINED}:</b> {postrow.POSTER_JOINED}<!-- ENDIF -->
Большое спасибо за скрипт Всё установила, всё работает
Форум Science-Леди www.scienceclub.listbb.ru
- Георгия
- Сообщения: 165
- Зарегистрирован: 08 июн 2008, 19:56
- Настроение:
- Пол: Жен
- Откуда: Москва
Спасибо за скрипт!Очень кстати!Работает отлично!
- carik
- Сообщения: 5
- Зарегистрирован: 23 ноя 2013, 20:56
- Пол: Муж
отличный скрипт! Спасибо!
есть вопрос проблемка:
- даты в формате в сегодня и вчера скрипт не понимает.
пробовал изменить переменную вывода даты в viewtopic.php не помогла, пишет NaN дней.
есть вопрос проблемка:
- даты в формате в сегодня и вчера скрипт не понимает.
пробовал изменить переменную вывода даты в viewtopic.php не помогла, пишет NaN дней.
- carik
- Сообщения: 5
- Зарегистрирован: 23 ноя 2013, 20:56
- Пол: Муж
писал писал и не вижу поста...
спасибо за скрипт.
помогите решить вопрос с выводом скрипта NaN дней у пользователей с датой регистрации сегодня и вчера.
спасибо за скрипт.
помогите решить вопрос с выводом скрипта NaN дней у пользователей с датой регистрации сегодня и вчера.
Первое сообщение после одобрения, последующие без.carik » Сегодня, 00:01 писал(а):писал писал и не вижу поста...
Да, действительно, не понимает.carik » Вчера, 23:59 писал(а):даты в формате в сегодня и вчера скрипт не понимает
+Как оказалось - бесполезные и ненужные правки
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!
- carik
- Сообщения: 5
- Зарегистрирован: 23 ноя 2013, 20:56
- Пол: Муж
CabinetAdmin
Доброго Вам!
Проверил изменения, к сожалению где то ошибка. У пользователя с момента регистрации 2 дня - пишет 0 дней. Правда при этом не появляется ошибки нан у нового пользователя.
С Вашего позволения, приведу немного другой код скрипта, который показывает только общее кол-во дней.
этот код так же не понимает формат даты в словах, но возможно кому то будет полезным, меньше текста в минипрофиле.
Интересно, можно как то в "наглую" заменить NaN в отображение? что скрипт при результате "не число" писал какой нибудь текст, например " На форуме: первый день"
Спасибо.
Доброго Вам!
Проверил изменения, к сожалению где то ошибка. У пользователя с момента регистрации 2 дня - пишет 0 дней. Правда при этом не появляется ошибки нан у нового пользователя.
С Вашего позволения, приведу немного другой код скрипта, который показывает только общее кол-во дней.
Код: Выделить всё
<!-- IF postrow.POSTER_JOINED --><dd><script>
p_j = '{postrow.POSTER_JOINED}';
ms='янвфевмарапрмайиюниюлавгсеноктноядек';
d = p_j.substr(0,2)*1;
m = ms.indexOf(p_j.substr(3,3))/3;
y = p_j.substr(7,4)*1;
date0 = new Date();
date1 = new Date(y,m,d);
dt=Math.floor((date0-date1)/(1000 * 60 * 60 * 24));
de = dt-Math.floor(dt/10)*10;
ds='дней';
if ((dt<10)|(dt>20))
{
if (de==1) ds='день'
else if ((de<5)&(de>0)) ds='дня'
};
document.write('<strong>На форуме:</strong> '+dt+' '+ds);
</script></dd><!-- ENDIF -->
Интересно, можно как то в "наглую" заменить NaN в отображение? что скрипт при результате "не число" писал какой нибудь текст, например " На форуме: первый день"
Спасибо.
- carik
- Сообщения: 5
- Зарегистрирован: 23 ноя 2013, 20:56
- Пол: Муж
CabinetAdmin
Спасибо! Буду ждать Вашей помощи.CabinetAdmin » 37 минут назад писал(а):NaN это вроде как обозначение ошибки, когда значение не равно никакому другому числу.
Я сначала и не понял, а оно вон оно чего:)... Всё дело в самой дате регистрации, т.е. общепринятый формат даты должен быть:
это к примеру. Вводятся: число, месяц, год, у нас ещё и время. В нашем случае мы имеем такую дату:
из-за чего и получаем NaN, скрипт не может высчитать дату, что в принципе и понятно. Не сможет он её высчитать и на следующий день, когда будет -
Как-то так. Можно походить по спец сайтам, посмотреть, может и есть выходы, я к сожалению их не знаю. Если что увижу, обязательно отпишусь.
Код: Выделить всё
20 июл 2012, 17:00
Код: Выделить всё
Сегодня, 17:00
Вчера, 17:00
. И только когда дата приобретёт стандартный вид начнётся отсчёт.Как-то так. Можно походить по спец сайтам, посмотреть, может и есть выходы, я к сожалению их не знаю. Если что увижу, обязательно отпишусь.
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!
Похожие темы
-
Расширение позволяющее добавить рекламу на форум phpBB.
Расширение можно скачать на официальном сайте phpbb -
Расширение с правками от... -
Здравствуйте.
Нужен простой ббкод для вставки youtube. Искал на просторах все не рабочие может у кого есть в наличии поделитесь пожалуйста.
Версия...