Стаж или количество дней на форуме под аватарой на phpbb.

Модификации основанные на языке JavaScript.

Скрипты(Огромная галерея скриптов, на любой вкус и цвет)
Аватара пользователя
CabinetAdmin

Стаж или количество дней на форуме под аватарой на phpbb.

CabinetAdmin 24 сен 2013, 18:16 Сообщение

Небольшой скрипт, который позволяет отобразить количество дней со дня регистрации пользователя, под его аватарой, при просмотре тем.

Скрипт можно установить как дополнение к уже существующему полю "Зарегистрирован: ...", либо как замену.

Установка крайне проста.
Для 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'.
Создать форум бесплатно на http://luckbb.ru/
Хочешь поблагодарить? Есть способы Поддержать проект

Аватара пользователя
eska

Re: Стаж или количество дней на форуме под аватарой на phpbb.

eska 25 сен 2013, 13:55 Сообщение

Скрипт отлично работает, только теперь Первая строчка "Зарегистрирован такого-то числа" лишняя, можно её убрать?

Аватара пользователя
CabinetAdmin

Re: Стаж или количество дней на форуме под аватарой на phpbb.

CabinetAdmin 25 сен 2013, 14:14 Сообщение

Можно.
Создать форум бесплатно на http://luckbb.ru/
Хочешь поблагодарить? Есть способы Поддержать проект

Аватара пользователя
eska

Re: Стаж или количество дней на форуме под аватарой на phpbb.

eska 25 сен 2013, 14:33 Сообщение

Я так понимаю нужно удалить переменную:

Код: Выделить всё

<!-- IF postrow.POSTER_JOINED --><br /><b>{L_JOINED}:</b> {postrow.POSTER_JOINED}<!-- ENDIF -->

Не повредит ли это структуру кода?

Аватара пользователя
CabinetAdmin

Re: Стаж или количество дней на форуме под аватарой на phpbb.

CabinetAdmin 25 сен 2013, 15:41 Сообщение

Да, именно её. Нет, не повредит, если только чего лишнего не удалите:)
Создать форум бесплатно на http://luckbb.ru/
Хочешь поблагодарить? Есть способы Поддержать проект

Аватара пользователя
eska

Re: Стаж или количество дней на форуме под аватарой на phpbb.

eska 25 сен 2013, 15:50 Сообщение

CabinetAdmin
Я её всю и удалил, всё отлично работает

Код: Выделить всё

<!-- IF postrow.POSTER_JOINED --><br /><b>{L_JOINED}:</b> {postrow.POSTER_JOINED}<!-- ENDIF -->

Аватара пользователя
Uzanka

Re: Стаж или количество дней на форуме под аватарой на phpbb.

Uzanka 26 сен 2013, 13:01 Сообщение

Большое спасибо за скрипт :Rose: Всё установила, всё работает :Yahoo!:
Форум Science-Леди www.scienceclub.listbb.ru


carik

Re: Стаж или количество дней на форуме под аватарой на phpbb.

carik 23 ноя 2013, 20:59 Сообщение

отличный скрипт! Спасибо!
есть вопрос проблемка:
- даты в формате в сегодня и вчера скрипт не понимает.
пробовал изменить переменную вывода даты в viewtopic.php не помогла, пишет NaN дней.

carik

Re: Стаж или количество дней на форуме под аватарой на phpbb.

carik 23 ноя 2013, 21:01 Сообщение

писал писал и не вижу поста...
спасибо за скрипт.
помогите решить вопрос с выводом скрипта NaN дней у пользователей с датой регистрации сегодня и вчера.

Аватара пользователя
CabinetAdmin

Re: Стаж или количество дней на форуме под аватарой на phpbb.

CabinetAdmin 24 ноя 2013, 07:52 Сообщение

carik » Сегодня, 00:01 писал(а):писал писал и не вижу поста...

Первое сообщение после одобрения, последующие без.

carik » Вчера, 23:59 писал(а):даты в формате в сегодня и вчера скрипт не понимает

Да, действительно, не понимает.

Развернуть Как оказалось - бесполезные и ненужные правки
Создать форум бесплатно на http://luckbb.ru/
Хочешь поблагодарить? Есть способы Поддержать проект

carik

Re: Стаж или количество дней на форуме под аватарой на phpbb.

carik 24 ноя 2013, 18:00 Сообщение

CabinetAdmin
Доброго Вам!
Проверил изменения, к сожалению где то ошибка. У пользователя с момента регистрации 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 в отображение? что скрипт при результате "не число" писал какой нибудь текст, например " На форуме: первый день"
Спасибо.

Аватара пользователя
CabinetAdmin

Re: Стаж или количество дней на форуме под аватарой на phpbb.

CabinetAdmin 24 ноя 2013, 19:27 Сообщение

carik писал(а):заменить NaN в отображение?

NaN это вроде как обозначение ошибки, когда значение не равно никакому другому числу.

Завтра, если время позволит, посмотрю.
Создать форум бесплатно на http://luckbb.ru/
Хочешь поблагодарить? Есть способы Поддержать проект

carik

Re: Стаж или количество дней на форуме под аватарой на phpbb.

carik 24 ноя 2013, 20:12 Сообщение

CabinetAdmin
CabinetAdmin » 37 минут назад писал(а):NaN это вроде как обозначение ошибки, когда значение не равно никакому другому числу.

Спасибо! Буду ждать Вашей помощи.

Аватара пользователя
CabinetAdmin

Re: Стаж или количество дней на форуме под аватарой на phpbb.

CabinetAdmin 25 ноя 2013, 17:16 Сообщение

Я сначала и не понял, а оно вон оно чего:)... Всё дело в самой дате регистрации, т.е. общепринятый формат даты должен быть:

Код: Выделить всё

20 июл 2012, 17:00

это к примеру. Вводятся: число, месяц, год, у нас ещё и время. В нашем случае мы имеем такую дату:

Код: Выделить всё

Сегодня, 17:00

из-за чего и получаем NaN, скрипт не может высчитать дату, что в принципе и понятно. Не сможет он её высчитать и на следующий день, когда будет - Вчера, 17:00. И только когда дата приобретёт стандартный вид начнётся отсчёт.

Как-то так. Можно походить по спец сайтам, посмотреть, может и есть выходы, я к сожалению их не знаю. :( Если что увижу, обязательно отпишусь.
Создать форум бесплатно на http://luckbb.ru/
Хочешь поблагодарить? Есть способы Поддержать проект


Похожие темы

Вернуться в «JavaScript / jQuery»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость