Перейти к контенту
  • 0

Календарь, смещение дней недели


fnm

Вопрос

Пытался настроить отображение начала недели с понедельника,

сделал изменение в файле sources/action_public/calendar.php

 
	$this->day_words   = array( $this->ipsclass->lang['D_1'], $this->ipsclass->lang['D_2'],
	$this->ipsclass->lang['D_3'], $this->ipsclass->lang['D_4'], $this->ipsclass->lang['D_5'],
	$this->ipsclass->lang['D_6'], $this->ipsclass->lang['D_0'] );

- циклически сместил дни недели на один вперёд. Теперь начало недели отображается с понедельника.

Но вышло боком следующее - поимел некорректность в отображении, например, сегодня понедельник, 6 марта, а в календаре отображается как вторник, 6 марта. :)

 

Что/где ещё надо изменить? ;)

 

--

ЗЫ: Я в пхп/ипб весьма чайник, и мои исправления интуитивного характера. :D

 

--------------------------- примерно 1 час спустя --------------

 

С намёка уважаемого SAT, что был дан здесь:

Русский календарь, для 2.0.х

по поводу изменений в 2.1.х, сделал такое в файле sources/ipsclass.php

	function date_getgmdate( $gmt_stamp )
{
	$tmp = gmdate( 'j,n,Y,G,i,s,w,z,l,F', $gmt_stamp );
...
	return array(  0		 => $gmt_stamp,
...
									   "wday"		=> $wday - 1,	//	Numeric representation of the
...

ну и поимел себе щастя

 

Ключевое место: "wday" => $wday - 1,

 

Пока нигде глюкув не заметил, но кто знает...

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

 $this->day_words   = array( $this->ipsclass->lang['D_1'], $this->ipsclass->lang['D_2'],
	$this->ipsclass->lang['D_3'], $this->ipsclass->lang['D_4'], $this->ipsclass->lang['D_5'],
	$this->ipsclass->lang['D_6'], $this->ipsclass->lang['D_0'] );

 

Странно, че то эта тема не проканала...воскресенье (в) все равно на первом месте. (Я про календарь, который на портале висит)

Ссылка на комментарий
Поделиться на других сайтах

  • 0
 $this->day_words   = array( $this->ipsclass->lang['D_1'], $this->ipsclass->lang['D_2'],
	$this->ipsclass->lang['D_3'], $this->ipsclass->lang['D_4'], $this->ipsclass->lang['D_5'],
	$this->ipsclass->lang['D_6'], $this->ipsclass->lang['D_0'] );

 

Странно, че то эта тема не проканала...воскресенье (в) все равно на первом месте. (Я про календарь, который на портале висит)

Есть такое явление... значит тот календарь (на месяц) в другом месте генерится. Покопаюсь...

Там вроде как mini_calendar отображается

 

-------------------

Раскопал... Случай для портала - файл sources/portal_plugins/calendar.php

Находим и меняем, чтобы было так:

		 $calendar->day_words   = array( $this->ipsclass->lang['D_1'], $this->ipsclass->lang['D_2'],
									$this->ipsclass->lang['D_3'], $this->ipsclass->lang['D_4'],
									$this->ipsclass->lang['D_5'],
									$this->ipsclass->lang['D_6'], $this->ipsclass->lang['D_0'] );

Если ни у кого больше замечаний нет, то модераторы могут солюшн в FAQ поместить...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

У меня не прокатило, воскересье всё равно - первый день недели :D

 

А не, всё прокатило, это я ступил немного. Теперь нормально работает, понедельник -1

Ссылка на комментарий
Поделиться на других сайтах

  • 0

fnm

Пасибо за раскопки!

 

 

 

Кста не в курсе как сделать так, чтобы дни недели на портале в календаре писались полностью, а не только начальная буква? просто он у меня довольно широкий ибо идет в самом начале перед постами

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Кста не в курсе как сделать так, чтобы дни недели на портале в календаре писались полностью, а не только начальная буква? просто он у меня довольно широкий ибо идет в самом начале перед постами
Навскидку предположу что можно тупо изменить перевод для элементов (см значения для lang['D_0'] ) ну или подставить туда (в создаваемый массив $this->day_words) другие индексы (от полных названий дней недели.

Но это уже другая тема :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Не покатит, потому что, подозреваю, вырезается только первый символ и вставляецо в шапку календаря.
Значит ищи в шаблонах это место, где отрисовывается календарь
Ссылка на комментарий
Поделиться на других сайтах

  • 0

1. в портале сдвинулись только названия дней недели, сами же числа остались на своих местах.

2. при просмотре календаря понедельно даты тоже съезжают относительно дней недели.

 

У всех ли так?

И как исправить?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Резюме для не умеющих читать уродцев, типа меня :D

 

В файлах:

sources/portal_plugins/calendar.php

sources/action_public/calendar.php

 

ищем:

		$this->day_words   = array( $this->ipsclass->lang['D_0'], $this->ipsclass->lang['D_1'],
	$this->ipsclass->lang['D_2'], $this->ipsclass->lang['D_3'], $this->ipsclass->lang['D_4'],
	$this->ipsclass->lang['D_5'], $this->ipsclass->lang['D_6'] );

меняем на:

		$this->day_words   = array( $this->ipsclass->lang['D_1'], $this->ipsclass->lang['D_2'],
	$this->ipsclass->lang['D_3'], $this->ipsclass->lang['D_4'], $this->ipsclass->lang['D_5'],
	$this->ipsclass->lang['D_6'], $this->ipsclass->lang['D_0'] );

В файле sources/ipsclass.php ищем в строке 3463:

"wday"		=> $wday,	//	Numeric representation of the week

меняем на:

"wday"		=> $wday -1,	//	Numeric representation of the week

Проверено на IPB v.2.1.6

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Рабочие уже измененные куски кода для 2.1.7

 

sources/action_public/calendar.php

$this->day_words   = array( $this->ipsclass->lang['D_1'], $this->ipsclass->lang['D_2'],
$this->ipsclass->lang['D_3'], $this->ipsclass->lang['D_4'], $this->ipsclass->lang['D_5'],
$this->ipsclass->lang['D_6'], $this->ipsclass->lang['D_0'] );

 

sources/portal_plugins/calendar.php

$calendar->day_words   = array( $this->ipsclass->lang['D_1'], $this->ipsclass->lang['D_2'],
$this->ipsclass->lang['D_3'], $this->ipsclass->lang['D_4'],
$this->ipsclass->lang['D_5'],
$this->ipsclass->lang['D_6'], $this->ipsclass->lang['D_0'] );

 

sources/ipsclass.php

	/**
* Hand rolled GETDATE method
*
* getdate doesn't work apparently as it doesn't take into account
* the offset, even when fed a GMT timestamp.
*
* @param	integer	Unix date
* @return	array	0, seconds, minutes, hours, mday, wday, mon, year, yday, weekday, month
* @since	2.0
*/
function date_getgmdate( $gmt_stamp )
{
	$tmp = gmdate( 'j,n,Y,G,i,s,w,z,l,F', $gmt_stamp );

	list( $day, $month, $year, $hour, $min, $seconds, $wday, $yday, $weekday, $fmon ) = explode( ',', $tmp );

	if ($wday == 0)
	{
		$wday = 6;
	}
	else
	{
	 	$wday -= 1;
	}

	return array(  0		 => $gmt_stamp,
				   "seconds" => $seconds, //	Numeric representation of seconds	0 to 59
				   "minutes" => $min,	 //	Numeric representation of minutes	0 to 59
				   "hours"	 => $hour,	  //	Numeric representation of hours	0 to 23
				   "mday"	 => $day,	 //	Numeric representation of the day of the month	1 to 31
				   "wday"	 => $wday,	//	Numeric representation of the day of the week	0 (for Sunday) through 6 (for Saturday)
				   "mon"	 => $month,   //	Numeric representation of a month	1 through 12
				   "year"	 => $year,	//	A full numeric representation of a year, 4 digits	Examples: 1999 or 2003
				   "yday"	 => $yday,	//	Numeric representation of the day of the year	0 through 365
				   "weekday" => $weekday, //	A full textual representation of the day of the week	Sunday through Saturday
				   "month"	 => $fmon,	//	A full textual representation of a month, such as January or Mar
				);
}

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Одного не пойму, разрабочики настолько невежественны и не знают, что существует начало недели с понедельника? :D

Добавли бы выбор первого дня недели в настройки, в админку.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.