medium 0 Опубликовано 23 апреля, 2007 Жалоба Share Опубликовано 23 апреля, 2007 Способ оплаты: Оплата наличными при полученииНомер заказа: 14 Дата: їЮЭХФХЫмЭШЪ 23 °ЯаХЫм, 2007 Глючат кодировки при печати счета или накладной в заказах. Это особенность хостинга или настройки магазина? В других местах админки с датами все ОК. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 апреля, 2007 Жалоба Share Опубликовано 24 апреля, 2007 Я в текущей версии уже сделал, что б даты выводились по-русски вне зависимости от настроек сервера. Ты можешь у себя исправить следующим образом: 1. Открывай файл /lang/russian/admin/russian.php Меняй: setlocale(LC_TIME, 'ru_RU.CP1251', 'Russian');[/code] На: [code]function vam_date_long_translate($date_string) {$eng = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");$loc = array("Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье", "Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря");return str_replace($eng, $loc, $date_string);}@setlocale(LC_TIME, 'en_US'); 2. В файле /admin/includes/functions/general.php меняй: return strftime(DATE_FORMAT_LONG, mktime($hour, $minute, $second, $month, $day, $year));}[/code] На: [code]if (function_exists('vam_date_long_translate'))return vam_date_long_translate(strftime(DATE_FORMAT_LONG, mktime($hour,$minute,$second,$month,$day,$year)));} Ссылка на сообщение Поделиться на другие сайты
medium 0 Опубликовано 24 апреля, 2007 Автор Жалоба Share Опубликовано 24 апреля, 2007 Изменил, работает. Спасибо. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 сентября, 2007 Жалоба Share Опубликовано 24 сентября, 2007 Так и не понял, почему ошибка. Временно исправить проблему с кодировкой дат лучше так: В файле /inc/vam_date_long.inc.php заменить: if ( ($raw_date == '0000-00-00 00:00:00') || ($raw_date == '') ) return false; $year = (int)substr($raw_date, 0, 4); $month = (int)substr($raw_date, 5, 2); $day = (int)substr($raw_date, 8, 2); $hour = (int)substr($raw_date, 11, 2); $minute = (int)substr($raw_date, 14, 2); $second = (int)substr($raw_date, 17, 2); if (function_exists('vam_date_long_translate')) return vam_date_long_translate(strftime(DATE_FORMAT_LONG, mktime($hour,$minute,$second,$month,$day,$year))); return strftime(DATE_FORMAT_LONG, mktime($hour,$minute,$second,$month,$day,$year)); }[/code] на: [code] if ( ($raw_date == '0000-00-00 00:00:00') || empty($raw_date) ) return false; $year = substr($raw_date, 0, 4); $month = (int)substr($raw_date, 5, 2); $day = (int)substr($raw_date, 8, 2); $hour = (int)substr($raw_date, 11, 2); $minute = (int)substr($raw_date, 14, 2); $second = (int)substr($raw_date, 17, 2); if (@date('Y', mktime($hour, $minute, $second, $month, $day, $year)) == $year) { return date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, $year)); } else { return ereg_replace('2037' . '$', $year, date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, 2037))); } } Тогда дата будет цифровая, т.е. числами, а не текстом. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 3 ноября, 2007 Жалоба Share Опубликовано 3 ноября, 2007 Отчего проблема с датами вроде бы выяснил, почему-то setlocale, которая ставится в языковой файле /lang/russian/russian.php - не работает! Нужно в коркнретных файлах, где проблема с кодировкой даты, т.е. в /admin/stats_campaigns.php /admin/print_oder.php /admin/print_packingslip.php /print_order.php /print_product_info.php Вот во всех этих файлах, после подключения application_top.php нужно добавить следующее: @setlocale(LC_ALL, 'ru_RU.UTF8');[/code] Либо: [code]@setlocale(LC_ALL, 'ru_RU.CP1251'); Если VaM Shop версии НИЖЕ 1.35 Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения