Skip to content

Русские даты в IP. Board 2.1.x

Имя файла: Русские даты в IP. Board 2.1.x

Владелец файла: andaril

Файл размещен: 21 апр 2007

Файл обновлен: 14 фев 2011

Категория файла: Mods/Моды

 

Позволяет поменять "1.12.2007" на "1 Декабря 2007"

 

+---------------------------------------------------------------------

| Invision Power Board v2.1.х

| =================================================================

| При поддержке ipbskins.ru

| =================================================================

+---------------------------------------------------------------------

|

| > Мод "Русские даты в IP Board"

| > Автор fr0z3n aka andar!l

|

| > Версия: 1.0

| > Дата: 21.04.2007

|

+---------------------------------------------------------------------

|

| > Эта модификация позволяет сделать отображение всех дат

| > форума (названия месяцев, дней) на русском языке

| > По запросу: Hugo Weaving

|

+---------------------------------------------------------------------

Багов не обнаружил.

 

Нажмите сюда, чтобы скачать этот файл

Edited by andaril

Featured Replies

Спасибо, andar!l !

  • Author

Не за что. Надо бы выложить куратора темы да все времени не нахожу переделать его в обычный текстовой вариант :)

 

А сайт ваш неплохой :) Молодцы

Спасибо! :)

 

 

PS. Вопросик такой. Например, при просмотре темы с сообщением я хочу, чтобы формат регистрации отображался так: "1 сент 2006", а при просмотре профиля, чтобы формат был такой: "01.09.2006".

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

  • Author

Кмх, вот вам моя цитата с ibrportal.net о том как работает данная модификация. Это так, для общего развития

Начнем с способов:

Мне известно три разных способа как можно это реализовать.

  • Это установить все даты в числовом формате, тогда в датах не будет слов вообще. Я не вижу смысла писать о нем.
  • Воспользоваться функциями setlocale() и strftime() которые изменяют язык для дат под установки вашей "локали", в нашем случае локаль русская. Я сегодня попытался реализовать это... У меня прекрасно получилось перевести почти все. Но... как всегда одно "но", функция setlocale () у меня сбила настройки дат которые должны идти в GMT формате. Может это всего лишь моя "криворукость", но мне почему то так не кажется. в общем этим "но" было то что такой метод полностью "убил" календарь, там все завязано с функцией gmdate(), а локаль сделала невозможным доступ к этой функции. Если бы ips делала свою доску сразу используя эти функции, я про setlocale(), проблем было бы меньше.
  • Вот и добрались до третьего способа. Он прост как никогда. Просто заменить названия месяцев, с помощью регулярных выражений, на их русские эквиваленты.

Самое хорошее в данном способе то что он не зависим от "локали", ведь при втором способе надо еще и поставить правильное название локали, тк они зависят от настроек вэб-сервера, и еще то что он достаточно прост в установке.

А специально для вас.

Открывайте файл

./sources/action_public/profile.php

Находите строку:

$info['joined']	  = $this->ipsclass->get_date( $member['joined'], 'JOINED' );

И заменяете её на

//$info['joined']	  = $this->ipsclass->get_date( $member['joined'], 'JOINED' );
$info['joined']	  = gmdate( "j.n.Y", $member['joined'] );

Подробнее о форматах дат вы можете узнать на http://www.php.net/date

Спасибо! :(

 

Да, информацию про этот мод я уже почитал.

  • Author

Незачто. Обращайтесь. :(

  • 7 months later...

Привет! Я установил этот мод, но при просмотре профиля в строке "Часовой пояс пользователя" показывает: 4 {Dec} 2007, 16:09, Где нужно исправить? спасибо.

  • Author

сегодня гляну

Спасибо! Жду с большим нетерпением!

Дело кажется в файле Profile.php, а конкретнее вот в этой строке:

 

$info['local_time'] = $member['time_offset'] != "" ? gmdate( $this->ipsclass->vars['clock_long'], time() + ($member['time_offset']*3600) + ($this->ipsclass->vars['time_adjust'] * 60) ) : $this->ipsclass->lang['no_info'];

 

Тут, мне кажется, надо что-то поменять...

  • Author

попробуйте поменять на

$info['local_time'] = $member['time_offset'] != "" ? preg_replace("/{(\w+)}/e" ,"\$this->lang['\\1']", gmdate( $this->ipsclass->vars['clock_long'], time() + ($member['time_offset']*3600) + ($this->ipsclass->vars['time_adjust'] * 60) ) ) : $this->ipsclass->lang['no_info'];

не смотрел. просто по вашим строкам поменял

А теперь вот что пишет: 7 2007, 21:16

  • Author

ой :D

сорри

$info['local_time'] = $member['time_offset'] != "" ? preg_replace("/{(\w+)}/e" ,"\$this->ipsclass->lang['\\1']", gmdate( $this->ipsclass->vars['clock_long'], time() + ($member['time_offset']*3600) + ($this->ipsclass->vars['time_adjust'] * 60) ) ) : $this->ipsclass->lang['no_info'];

вот оно

Пашет: 7 Дек 2007, 21:22

Спасибо, земляк! Внеси изменения в свой файл, чтоб другие не мучались как я :D

  • 1 month later...

Привет! А вот в версии 2.3.1 че то в профиле все равно пишется неверно: 7 {Feb} 2008 например. Хотя все поставил как ты написал :rolleyes:

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.