Версия для печати
|
| PrestaShop CMS :: Русская поддержка интернет-магазина PrestaShop > Дизайн, шаблоны > ХЕЛП!! |
| Разместил: svchost Время: 01-07-2010 17:04 |
| адрес магазина ekomaster.net.ua
Не пойму откуда берется буква "а" перед всем контентом. В исходном коде "а" стоит вообще первым символом на странице. Уже все тпл-ы перелопатил, немогу найти откуда она |
| Разместил: YellowDuck Время: 01-07-2010 17:34 |
| Скорее всего где-то кодировка сбилась, надо utf-8 |
| Разместил: svchost Время: 01-07-2010 17:52 |
| Странно, с остачей все ок. Тупо вверху стоит буква "а" по центру Вы думаете кодировка виновата ? |
| Разместил: newtc Время: 01-07-2010 18:06 |
| Содержимое спрятано |
| Разместил: svchost Время: 01-07-2010 18:18 |
| Я тож сразу полез в header.tpl, но никакой буквы а там не обнаружил т.е. между </head>и<body {if $page_name}... ничего нет !?! |
| Разместил: svchost Время: 01-07-2010 18:21 |
| тож сразу грешил на header.tpl, но между </head> и <body {if $page_name} пусто, а в исходном коде в браузере эта буква стоит аж перед этим: <!DOCTYPE html PUBLIC... т.е. вообще в самом начале страницы. При чем если выделить ее а потом смотреть код выделенного фрагмента (ФФ) то она стоит после тега <body> как-то странно |
| Разместил: svchost Время: 01-07-2010 18:23 |
Цитата:( svchost @ 01-07-2010 13:21 Смотреть сообщение ) тож сразу грешил на header.tpl, но между </head> и <body {if $page_name} пусто, а в исходном коде в браузере эта буква стоит аж перед этим: <!DOCTYPE html PUBLIC...
т.е. вообще в самом начале страницы. При чем если выделить ее а потом смотреть код выделенного фрагмента (ФФ) то она стоит после тега <body> как-то странно сори за дубляж |
| Разместил: svchost Время: 01-07-2010 18:24 |
Цитата:( svchost @ 01-07-2010 13:23 Смотреть сообщение ) Цитата:( svchost @ 01-07-2010 13:21 Смотреть сообщение ) тож сразу грешил на header.tpl, но между </head> и <body {if $page_name} пусто, а в исходном коде в браузере эта буква стоит аж перед этим: <!DOCTYPE html PUBLIC...
сори за дубляжт.е. вообще в самом начале страницы. При чем если выделить ее а потом смотреть код выделенного фрагмента (ФФ) то она стоит после тега <body> как-то странно И что еще интересно в админке тож вверху по центру буква а |
| Разместил: ors Время: 01-07-2010 18:31 |
| Если буква стоит до начала текста, значит она выводится где-то в php коде. Причем это происходит либо в header.php, либо до его вызова.
Чтобы без отладки по-быстрому найти где это происходит вставляйте в код что-нибуль типа echo 'test'; и смотрите после или до test будет буква. Если это происходит в админке, значит что-то не то в config/config.inc.php записали. Сообщение отредактировано ors 01-07-2010 19:32 ... |
| Разместил: svchost Время: 01-07-2010 18:53 |
| Спасибо!! Способом echo 'test' нашел, что вывод злощастной буквы происходит в init.php строкой: Tools::setCookieLanguage(); Подскажите кудаковырять дальше, спасибо |
| Разместил: ors Время: 01-07-2010 18:59 |
| Дальше в Tools.php функция setCookieLanguage |
| Разместил: svchost Время: 01-07-2010 19:38 |
| заметил еще одну зависимость
echo 'test' в config.inc.php выводит test до буквы и в админке и на морде а echo 'test' в header.php и в init.php выводит test только на морде |
| Разместил: svchost Время: 01-07-2010 19:41 |
| Вот виноватая функция:
(извините за навязчивлсть) что в ней может быть не так? static public function setCookieLanguage() { global $cookie; /* If language does not exist or is disabled, erase it */ if ($cookie->id_lang) { $lang = new Language(intval($cookie->id_lang)); if (!Validate::isLoadedObject($lang) OR !$lang->active) $cookie->id_lang = NULL; } /* Automatically detect language if not already defined */ if (!$cookie->id_lang AND isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $array = explode(',', self::strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE'])); if (self::strlen($array[0]) > 2) { $tab = explode('-', $array[0]); $string = $tab[0]; } else $string = $array[0]; if (Validate::isLanguageIsoCode($string)) { $lang = new Language(intval(Language::getIdByIso($string))); if (Validate::isLoadedObject($lang) AND $lang->active) $cookie->id_lang = intval($lang->id); } } /* If language file not present, you must use default language file */ if (!$cookie->id_lang OR !Validate::isUnsignedId($cookie->id_lang)) $cookie->id_lang = intval(Configuration::get('PS_LANG_DEFAULT')); $iso = Language::getIsoById(intval($cookie->id_lang)); @include_once(_PS_TRANSLATIONS_DIR_.$iso.'/fields.php'); @include_once(_PS_TRANSLATIONS_DIR_.$iso.'/errors.php'); @include_once(_PS_THEME_DIR_.'lang/'.$iso.'.php'); return $iso; } |
| Разместил: svchost Время: 01-07-2010 20:06 |
| если эту функцию вообще удалить из init.php все ок, буква пропадает и начинает нормально работать скачивание pdf счета из "моих заказов" (до этого TCPDF выводил ошибку связанную с выводом до заголовков (подозреваю что именно изза этой буквы) |
| Разместил: ors Время: 01-07-2010 20:24 |
| На первый взгляд все в порядке. Попробуйте также найти при помощи echo 'test';
Цитата: а echo 'test' в header.php и в init.php выводит test только на морде
Потому что в админке не используются эти файлы. |
| Разместил: svchost Время: 01-07-2010 20:34 |
| вродь да, но без этой функции часть интерфейса выводится на английском языке |
| Разместил: svchost Время: 01-07-2010 21:00 |
| похоже, что буква выводится это строчкой
@include_once(_PS_THEME_DIR_.'lang/'.$iso.'.php'); |
| Разместил: svchost Время: 01-07-2010 21:06 |
| хух блин!!!
НАШЕЛ - > оказалось тупо до слез в lang/ru.php перед <?php стояла буква а т.е. так: а<?php Извините все, кого напряг Спасибо за помощь, без вас бы не разобрался |