andaril 4 04/21/2007 05:12 PM (edited) Имя файла: Русские даты в 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 February 14, 2011 by andaril Share this post Link to post
andaril 4 04/21/2007 09:15 PM Не за что. Надо бы выложить куратора темы да все времени не нахожу переделать его в обычный текстовой вариант :) А сайт ваш неплохой :) Молодцы Share this post Link to post
Hugo Weaving 0 04/21/2007 10:56 PM Спасибо! :) PS. Вопросик такой. Например, при просмотре темы с сообщением я хочу, чтобы формат регистрации отображался так: "1 сент 2006", а при просмотре профиля, чтобы формат был такой: "01.09.2006".Ведь изначально формат времени регистрации отображается одинаково, что в профиле, что при просмотре темы с сообщением. А как вот сделать так, как я предложил? :) Share this post Link to post
andaril 4 04/22/2007 07:10 AM Кмх, вот вам моя цитата с 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 Share this post Link to post
Hugo Weaving 0 04/22/2007 11:34 AM Спасибо! :( Да, информацию про этот мод я уже почитал. Share this post Link to post
ntrtv 0 12/04/2007 01:15 PM Привет! Я установил этот мод, но при просмотре профиля в строке "Часовой пояс пользователя" показывает: 4 {Dec} 2007, 16:09, Где нужно исправить? спасибо. Share this post Link to post
ntrtv 0 12/07/2007 05:57 PM Дело кажется в файле 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']; Тут, мне кажется, надо что-то поменять... Share this post Link to post
andaril 4 12/07/2007 06:11 PM попробуйте поменять на$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'];не смотрел. просто по вашим строкам поменял Share this post Link to post
andaril 4 12/07/2007 06:21 PM ой :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'];вот оно Share this post Link to post
ntrtv 0 12/07/2007 06:24 PM Пашет: 7 Дек 2007, 21:22Спасибо, земляк! Внеси изменения в свой файл, чтоб другие не мучались как я :D Share this post Link to post