|
Поделиться

Скрипт показывающий время проведенное юзером на форуме

С даты его регистрации.

Форум для решения проблем в работе движка версии 3.0.

Сообщение apollion » 14.05.18 02:09

Нашел скрипт, показывающий время проведенное юзером на форуме с даты его регистрации. В 2-х вариантах.
В итоге в минифпрофиле в темах, отображается строка (пример):
"На форуме: 456 дней"

Но, 1-й вариант показывает в строке "NaN дней".
2-й - показывает то "0 дней", то "NaN дней".
Как я понял, это потому, что у меня стоят везде даты в таком формате:
"3 Ноябрь 2013, 15:22" и скрипт ее не воспринимает.

Можно ли как-то это поправить? Или может в скриптах есть ошибки и дело не в дате?

1-й вар.

Код: Выделить всё
					<!-- IF postrow.POSTER_POSTS -->
					<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";
					oDay = " 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(oDay+tDay);
					else 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 -->


2 вар.

Код: Выделить всё
	                        <!-- 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 -->


Скрипт вставляется в viewtopic_body.html и выводит все текстовые надписи на русском. С новой строки: после строки с Аватаром postrow.POSTER_AVATARили после строки с IP. Годится для 3.0 и 3.1.

Формат даты мне бы менять не хотелось - иначе у меня на форуме внизу на Главной в Статистике надписи на русском станут грамматически некорректные. Пробовал ставить оба варианта, покрутил и так и эдак и результат - "NaN дней" .

В последнее время захотелось всякие фичи добавить на форум самому или юзеры стали чаще просить - хожу ищу по phpbb3 сайтам. :)
Аватара пользователя
apollion
 
Сообщения: 74
Зарегистрирован: 21.10.15 18:13
Откуда: Россия

Сообщение Shredder » 14.05.18 02:23

А чем не вариант - использовать мод phpBB Length of Service от rxu?
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 985
Зарегистрирован: 22.08.13 09:05

Сообщение apollion » 14.05.18 02:28

Не знал про такой. Ну, и этот чисто случайно попался и ставится за минуту.
Днем тогда зайду на Гуру я там наверно с полгода не был или больше. Как они поддержку 3.0 прекратили. И поищу этот мод.

Еще нашел пачку всяких бб-кодов для текста и скрипт красивых цифровых часов. :) Но с ними проблем нет.
Нашел subsilver2 на основе prosilver для phpbb 3.2 - выглядит супер и очень похожий на оригинальный сабсилвер2. Пускай лежит.))
Аватара пользователя
apollion
 
Сообщения: 74
Зарегистрирован: 21.10.15 18:13
Откуда: Россия

Сообщение Shredder » 14.05.18 02:29

Javascript - капризная штука, поэтому рекомендую мод ;) Ставил его, вроде проблем не было.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 985
Зарегистрирован: 22.08.13 09:05

Сообщение apollion » 14.05.18 02:36

Мод всяко лучше, конечно. Лучше тогда поставлю его.

Единственный скрипт, который мне жутко нравился и стоял у меня на форуме на движке MyBB - это скрипт, который подсчитывает время, проведенное юзером на форуме, количество тем и комментариев, созданных юзером и по формуле переводит это все в подобие форумной валюты или баллов. И пишет в минифпрофиле что-то типа: "Баллы: 380 баллов".

В общем-то единицу измерения можно любую написать. Для phpbb3 он не подходит, а хотелось бы его поставить.
Или тогда ставить мод User Reputation Points. Так как хочу поставить систему баллов с зависимостью от активности юзера - как побудительный мотив и поощрительная штука.
Аватара пользователя
apollion
 
Сообщения: 74
Зарегистрирован: 21.10.15 18:13
Откуда: Россия

Сообщение Shredder » 14.05.18 04:50

Ставил, эффекта 0 было. Но попытка - не пытка.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 985
Зарегистрирован: 22.08.13 09:05


Вернуться в Поддержка phpBB 3.0.x

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

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

cron