Jump to content

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


andaril
 Share

Recommended Posts

Имя файла: Русские даты в 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
Link to comment
Share on other sites

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

 

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

Link to comment
Share on other sites

Спасибо! :)

 

 

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

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

Link to comment
Share on other sites

Кмх, вот вам моя цитата с 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

Link to comment
Share on other sites

  • 7 months later...

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

Link to comment
Share on other sites

Дело кажется в файле 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'];

 

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

Link to comment
Share on other sites

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

$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'];

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

Link to comment
Share on other sites

ой :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'];

вот оно

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...