Отсчет дней до нового года - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы оформления форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Оформление форумов IPB 2.x.
Настройка форумов, включая установку и техническую настройку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

Отсчет дней до нового года

#1 Пользователь не на сайте   q0p ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 13
  • Регистрация: 23-Апрель 09
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 23 Ноябрь 2014 - 22:56

Думаю многим знаком новогодний скин White Christmas.
Хотелось бы имеющийся в нем счетчик нормально русифицировать (т.е. сделать нормальное склонение дней (дня, день), часов, минут и секунд).
В самом шаблоне вот такой код.
<script language="JavaScript">
TargetDate = "01/01/2015 00:00";
BackColor = "";
ForeColor = "#000000";
CountActive = true;
CountStepper = -1;
LeadingZero = true;
DisplayFormat = "<b>До Нового года осталось</b> %%D%% Дней, %%H%% Часов, %%M%% Минут, %%S%% Секунд <b></b>";
FinishMessage = "<b>Ураааа! С Новым годом, товарищи!</b>";
</script>

Как его можно грамотно допилить?

Вложений


0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 087
  • IPB version:3.1.x
 

Отправлено 23 Ноябрь 2014 - 23:09

В таком виде никак. Сначала нужно рассчитать дату, потом склонять, а для этого, судя по всему, придется переписать скрипт.
0

#3 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 087
  • IPB version:3.1.x
 

Отправлено 24 Ноябрь 2014 - 00:03

<script type='text/javascript'>

TargetDate = "01/01/2015 00:00";
BackColor = "";
ForeColor = "#000000";
CountActive = true;
CountStepper = -1;
LeadingZero = true;
Decline = true;
DisplayFormat = "<b>До Нового года осталось</b> %%D%%, %%H%%, %%M%%, %%S%%";
FinishMessage = "<b>Ураааа! С Новым годом, товарищи!</b>";

</script>


function declOfNum(number, type){
	type = type.toUpperCase();
	var declin ={
		D: ['день', 'дня', 'дней'],
		H: ['час', 'часа', 'часов'],
		M: ['минута', 'минуты', 'минут'],
		S: ['секунда', 'секунды', 'секунд'],
	};
	
	var cases = [2, 0, 1, 1, 1, 2];
	return declin[type][ (number%100 > 4 && number%100 < 20) ? 2 : cases[(number%10 < 5) ? number%10 : 5] ];
}

function calcage(secs, num1, num2, type) {
	var s = ((Math.floor(secs/num1))%num2).toString();
	if (LeadingZero && s.length < 2){
		s = "0"+s;
	}
	return "<b>"+s+"</b>"+((Decline && type) ? ' '+declOfNum(parseInt(s), type) : '');
}

function CountBack(secs) {
	if (secs < 0) {
		document.getElementById("cntdwn").innerHTML = FinishMessage;
		return;
	}
	var DisplayStr;
	DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000, 'D'));
	DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24, 'H'));
	DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60, 'M'));
	DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60, 'S'));

	document.getElementById("cntdwn").innerHTML = DisplayStr;
	if (CountActive){
		setTimeout("CountBack(" + (secs+CountStepper) + ")", SetTimeOutPeriod);
	}
}

function putspan(backcolor, forecolor) {
	document.write("<span id='cntdwn' style='background-color:"+backcolor+"; color:"+forecolor+ "'></span>");
}

var defaultValues = {
	BackColor: "white",
	ForeColor: "black",
	TargetDate: "1/1/2015 00:00",
	DisplayFormat: "%%D%%, %%H%%, %%M%%, %%S%%.",
	CountActive: true,
	FinishMessage: "Happy new year, anchousi! (.)(.)",
	CountStepper: -1,
	LeadingZero: true,
	Decline: true,
};
for(var key in defaultValues){
	if(typeof(window[key]) == "undefined"){
		window[key] = defaultValues[key];
	}
}

CountStepper = Math.ceil(CountStepper);
if (CountStepper == 0)
	CountActive = false;
	
var SetTimeOutPeriod = (Math.abs(CountStepper)-1)*1000 + 990;
putspan(BackColor, ForeColor);

var dthen = new Date(TargetDate);
var dnow = new Date();
if(CountStepper > 0)
	ddiff = new Date(dnow-dthen);
else
	ddiff = new Date(dthen-dnow);
gsecs = Math.floor(ddiff.valueOf() / 1000);
CountBack(gsecs);

1

#4 Пользователь не на сайте   q0p ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 13
  • Регистрация: 23-Апрель 09
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 24 Ноябрь 2014 - 13:23

Заменил - в результате одни цифры с обратным отсчетом без текстовки.
0

#5 Пользователь не на сайте   q0p ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 13
  • Регистрация: 23-Апрель 09
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 24 Ноябрь 2014 - 13:25

Прикрепление полной версии globaltemplate поможет решению проблемы?
Просто я раньше пробовал готовые скрипты, которые при добавлении в конец (перед закрывающими тегами) отрабатывали нормально, но конкретно в этом месте работать отказались.
0

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 087
  • IPB version:3.1.x
 

Отправлено 24 Ноябрь 2014 - 13:26

Вторую часть тоже нужно заменить.
0

#7 Пользователь не на сайте   q0p ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 13
  • Регистрация: 23-Апрель 09
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 24 Ноябрь 2014 - 13:30

А вторая часть скрипта в каком из шаблонов/файлов находится?
0

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 087
  • IPB version:3.1.x
 

Отправлено 24 Ноябрь 2014 - 13:36

Этот скрипт состоит из двух частей. Первая часть - определение параметров, и вторая часть которая подключается из файла, обычно находится чуть ниже первой части (вы вообще смотрите что добавляете, а если там предлагается какой нибудь вредоносный файл подключить?). Вот в этом js файле нужно заменить код из второго блока.
0

#9 Пользователь не на сайте   q0p ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 13
  • Регистрация: 23-Апрель 09
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 24 Ноябрь 2014 - 13:41

Смотрю конечно, но принцип обработки кода всё равно до конца не понимаю.
Ниже идет вызов этого файла, похоже как раз этого счетчика:
<script language="JavaScript" src="{$this->settings['img_url']}/js/countdown.js"></script>

То есть остальные правки в нём?
0

#10 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 289
  • Регистрация: 20-Март 09
  • Репутация: 2 087
  • IPB version:3.1.x
 

Отправлено 24 Ноябрь 2014 - 13:41

Да, в нем нужно заменить код из второго блока.
0

#11 Пользователь не на сайте   q0p ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 13
  • Регистрация: 23-Апрель 09
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 24 Ноябрь 2014 - 14:32

Спасибо большое, всё работает отлично!
0

Сообщить об этой теме:


Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна