|
Публикация и обсуждение идей о расширении функциональности phpBB3
12 окт 2012, 21:35
В index_body.html имеется вот такой кусок (нашёл в интернете): - Код: выделить все
<SCRIPT language=JavaScript> <!-- firstDay = new Date('August 25, 2012'); todayDate = new Date(); daysQty = (todayDate.getTime() - firstDay.getTime()) / (1000*60*60*24); document.write('Форум живет ' + Math.round(daysQty) + '-й день.'); --> </SCRIPT>
Он высвечивает следующее сообщение: "Форум живет 49-й день." Пока форум молод, это ещё терпимо, но если он не сдохнет  и пройдут годы, то хотелось бы видеть сообщение типа "Форуму 3 года 11 месяцев 18 дней." (вместо непонятных тысяч дней). Господа специалисты, может, кто имеет готовый алгоритм? Желательно (но необязательно) с поддержкой правильного русского языка (4 "года", но 5 "лет" - и т.п.). Спасибо!
North-Ameri.ca
-

ursego
- Активный участник
-
- Сообщений: 72
- Зарегистрирован:
13 сен 2012, 23:29 - Откуда:
Торонто
- Благодарил (а): 4 раз.
- Поблагодарили: 2 раз.
-
14 окт 2012, 06:36
Господа, вот решение проблемы - возможно, кто-то захочет у себя установить (высвечивает сообщение в формате "Форуму 3 года 11 месяцев и 5 дней" с соблюдением правильности русского языка): - Код: выделить все
<!-- Высветить "Форуму ... лет ... месяцев и ... дней" ------- BEGIN --> <SCRIPT language=JavaScript> <!-- var fD = [2012, 8, 25], d1 = 6, m1 = 4, tx = [], rz, d = new Date, tD = [d.getFullYear (), d.getMonth (), d.getDate ()], dr = tD [2] - fD [2], mr = tD [1] - fD [1], yr = tD [0] - fD [0], Y = 'год-года-лет', M = 'месяц-месяца-месяцев', D = 'день-дня-дней', t = function (v, w) { var x = w.toString ().split (''), y = x [x.length - 1], z = 0; if (w > 4 && w < 21 || y == 0) z = 2; else if (y > 1 && y < 5) z = 1; else if (y > 4) z = 2; return ' ' + v.split ('-') [z]} if (dr < 0) dr = tD [2] + d1; if (yr > 0 && mr < 0) yr -= 1; if (mr < 0) mr = tD [1] + m1; var yt = (yr) ? yr + t (Y, yr) : ''; if (yt) tx [tx.length] = yt; var mt = (mr) ? mr + t (M, mr) : ''; if (mt) tx [tx.length] = mt; var dt = (dr) ? dr + t (D, dr) : ''; if (dt) tx [tx.length] = dt; if (tx.length == 1) rz = tx [0]; if (tx.length == 2) rz = tx.join (' и '); if (tx.length == 3) rz = tx [0] + ', ' + tx [1] + ' и ' + tx [2]; document.write ('Форуму ' + rz); --> </SCRIPT> <!-- Высветить "Форуму ... лет ... месяцев и ... дней" --------- END -->
Важный ремарк: автор кода - не я, мне его дали в готовом виде на форуме программистов.
North-Ameri.ca
-

ursego
- Активный участник
-
- Сообщений: 72
- Зарегистрирован:
13 сен 2012, 23:29 - Откуда:
Торонто
- Благодарил (а): 4 раз.
- Поблагодарили: 2 раз.
-
14 окт 2012, 13:55
первый код лудше,форум грузится быстро.а на втором отказуется грузится.
-
satcrimea
- Пользователь
-
- Сообщений: 33
- Зарегистрирован:
04 фев 2011, 20:25
- Благодарил (а): 0 раз.
- Поблагодарили: 5 раз.
19 окт 2012, 05:58
У меня нормально работает. Любое изменение (не только это) надо делать очень аккуратно, чтоб не набедокурить - ведь достаточно одного лишнего знака (оставленного по невнимательности) - и кирдык, форум вообще не грузится (в чём, впрочем, нет ничего странного). Или наоборот - стирая код, можно нечаянно стереть лишнее с тем-же результатом.
North-Ameri.ca
-

ursego
- Активный участник
-
- Сообщений: 72
- Зарегистрирован:
13 сен 2012, 23:29 - Откуда:
Торонто
- Благодарил (а): 4 раз.
- Поблагодарили: 2 раз.
-
05 дек 2012, 02:52
Оказывается, в скрипте был косячок, который уже устранён. Вот правильная версия: - Код: выделить все
<!-- Высветить "Форуму ... лет ... месяцев и ... дней" ------- BEGIN --> <SCRIPT language=JavaScript> <!-- var fD = [2012, 7, 25], d1 = 6, m1 = 4, tx = [], rz, d = new Date, tD = [d.getFullYear (), d.getMonth (), d.getDate ()], dr = tD [2] - fD [2], mr = tD [1] - fD [1], yr = tD [0] - fD [0], Y = 'год-года-лет', M = 'месяц-месяца-месяцев', D = 'день-дня-дней', t = function (v, w) { var x = w.toString ().split (''), y = x [x.length - 1], z = 0; if (w > 4 && w < 21 || y == 0) z = 2; else if (y > 1 && y < 5) z = 1; else if (y > 4) z = 2; return ' ' + v.split ('-') [z]} if (dr < 0) dr = tD [2] + d1, mr--; if (yr > 0 && mr < 0) yr -= 1; if (mr < 0) mr = tD [1] + m1; var yt = (yr) ? yr + t (Y, yr) : ''; if (yt) tx [tx.length] = yt; var mt = (mr) ? mr + t (M, mr) : ''; if (mt) tx [tx.length] = mt; var dt = (dr) ? dr + t (D, dr) : ''; if (dt) tx [tx.length] = dt; if (tx.length == 1) rz = tx [0]; if (tx.length == 2) rz = tx.join (' и '); if (tx.length == 3) rz = tx [0] + ', ' + tx [1] + ' и ' + tx [2]; document.write ('Форуму ' + rz); --> </SCRIPT> <!-- Высветить "Форуму ... лет ... месяцев и ... дней" --------- END -->
North-Ameri.ca
-

ursego
- Активный участник
-
- Сообщений: 72
- Зарегистрирован:
13 сен 2012, 23:29 - Откуда:
Торонто
- Благодарил (а): 4 раз.
- Поблагодарили: 2 раз.
-
Вернуться в Новые возможности
-
- Центр загрузок для форума
vitaliy83i » 26 фев 2013, 16:06
- 0 Ответов
- 2912 Просмотров
- Последнее сообщение vitaliy83i
 26 фев 2013, 16:06
-
- Общий вопрос по модификации форума
VVV » 22 дек 2009, 13:05
- 1 Ответов
- 2449 Просмотров
- Последнее сообщение A.R.T.
 24 дек 2009, 00:21
-
- Реклама для каждой ветки форума
ambrella » 28 май 2009, 14:17
- 3 Ответов
- 2662 Просмотров
- Последнее сообщение piv91
 27 ноя 2009, 09:06
-
- нужна функция форума, удобная для образования.
andrei » 17 мар 2012, 21:12
- 1 Ответов
- 2191 Просмотров
- Последнее сообщение andrei
 17 мар 2012, 22:30
-
- Вывод популярных тем форума на главную страницу сайта
Дима » 25 май 2009, 23:25
- 5 Ответов
- 4076 Просмотров
- Последнее сообщение pomkka
 11 фев 2010, 21:48
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
|
|
|
|
|