Mixin Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 (змінено) Был переезд с одного домена на другой, в обоих *.php файлах и базе пути изменены. Собственно, на картинке единственная возникшая проблема. Везде, включая пункты "Локализация", все как надо. Видимо, где-то надо пути поменять, но где? Змінено 30 травня 2017 користувачем Mixin Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 А в карточке товара все хорошо? Нарушена кодировка в базе Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 Проверьте есть ли у вас в модах php расширение JSON - с вероятностью на 99% на новом сервере оно у вас не включено. 1 Надіслати Поділитися на інших сайтах More sharing options... Mixin Опубліковано: 30 травня 2017 Автор Share Опубліковано: 30 травня 2017 3 минуты назад, chukcha сказал: А в карточке товара все хорошо? Нарушена кодировка в базе Да, все ок. Кодировка же не может быть нарушена частично? Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 А кто его знает как вы там ее импортировали покажите SHOW CREATE TABLE oc_country Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 15 минут назад, Mixin сказал: Да, все ок. Кодировка же не может быть нарушена частично? Еще раз ! Это на 100% отсутствие JSON в PHP !!! Встроенный класс Opencart некорректно работает с кириллицией! Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 в каком месте там json? country_id - из json, а сам страна(имя) из таблицы и название валюты из другой таблицы. Надіслати Поділитися на інших сайтах More sharing options... Mixin Опубліковано: 30 травня 2017 Автор Share Опубліковано: 30 травня 2017 (змінено) 11 минут назад, Yoda сказал: Еще раз ! Это на 100% отсутствие JSON в PHP !!! Встроенный класс Opencart некорректно работает с кириллицией! Да, да, да! Вы таки немного правы, спасибо. Дело в модулях. 19 минут назад, chukcha сказал: А кто его знает как вы там ее импортировали покажите SHOW CREATE TABLE oc_country И вам спасибо, но товарищ выше указал на путь истинный. Дело было в модуле. Вопрос решен, тему можно закрывать. Змінено 30 травня 2017 користувачем Mixin Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 7 минут назад, Mixin сказал: Вопрос решен, тему можно закрывать. А поделиться решением не желаете? Вы дважды написали, что дело было в модуле, но в каком и что именно, почему-то забыли указать. Надіслати Поділитися на інших сайтах More sharing options... Lazdakon Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 @Dotrox видимо, он имеет в виду JSON модуль 36 минут назад, Yoda сказал: Проверьте есть ли у вас в модах php расширение JSON - с вероятностью на 99% на новом сервере оно у вас не включено. Надіслати Поділитися на інших сайтах More sharing options... Mixin Опубліковано: 30 травня 2017 Автор Share Опубліковано: 30 травня 2017 1 минуту назад, Dotrox сказал: А поделиться решением не желаете? Вы дважды написали, что дело было в модуле, но в каком и что именно, почему-то забыли указать. Боюсь, что тут от меня мало будет пользы, я просто увидел сообщение, что дело может быть в модулях. Дело и было в модулях под названием "Обновление цены при выборе опций OC2 (без AJAX)" и сам модуль опций "Options price ocStore2". Почему-то они сразу работать отказались, и их переустановка решили проблему. Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 public function getGeoZones($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "geo_zone"; $sort_data = array( 'name', 'description' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $geo_zone_data = $this->cache->get('geo_zone'); if (!$geo_zone_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "geo_zone ORDER BY name ASC"); $geo_zone_data = $query->rows; $this->cache->set('geo_zone', $geo_zone_data); } return $geo_zone_data; } } Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 1 час назад, chukcha сказал: в каком месте там json? country_id - из json, а сам страна(имя) из таблицы и название валюты из другой таблицы. Смотрим сюда: public function getGeoZones($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "geo_zone"; $sort_data = array( 'name', 'description' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $geo_zone_data = $this->cache->get('geo_zone'); if (!$geo_zone_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "geo_zone ORDER BY name ASC"); $geo_zone_data = $query->rows; $this->cache->set('geo_zone', $geo_zone_data); } return $geo_zone_data; } } потом сюда : <?php namespace Cache; class File { private $expire; public function __construct($expire = 3600) { $this->expire = $expire; $files = glob(DIR_CACHE . 'cache.*'); if ($files) { foreach ($files as $file) { $time = substr(strrchr($file, '.'), 1); if ($time < time()) { if (file_exists($file)) { unlink($file); } } } } } public function get($key) { $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*'); if ($files) { $handle = fopen($files[0], 'r'); flock($handle, LOCK_SH); $data = fread($handle, filesize($files[0])); flock($handle, LOCK_UN); fclose($handle); return json_decode($data, true); } return false; } Ой, кто нас *** л в ракете.. Откуда JSON... А теперь пробуем через это https://github.com/opencart/opencart/blob/master/upload/system/helper/json.php Пропустить массив с кирилицей. Удивляемся. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 31 травня 2017 Share Опубліковано: 31 травня 2017 Раз if (isset($this->request->post['config_country_id'])) { $data['config_country_id'] = $this->request->post['config_country_id']; } else { $data['config_country_id'] = $this->config->get('config_country_id'); } Два $data['countries'] = $this->model_localisation_country->getCountries(); Три <select name="config_country_id" id="input-country" class="form-control"> <?php foreach ($countries as $country) { ?> <?php if ($country['country_id'] == $config_country_id) { ?> <option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option> <?php } else { ?> <option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option> <?php } ?> <?php } ?> Четыре public function getCountries($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "country"; $sort_data = array( 'name', 'iso_code_2', 'iso_code_3' ); ... skipped $query = $this->db->query($sql); return $query->rows; } else { $country_data = $this->cache->get('country'); if (!$country_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "country ORDER BY name ASC"); $country_data = $query->rows; $this->cache->set('country', $country_data); } return $country_data; } } Вот тут json из кеша - не спорю При очистке кеша должно показываться правильно? 10 часов назад, Mixin сказал: я просто увидел сообщение, что дело может быть в модулях. Тут вижу, там не слышу. php mod(уль) json != модулю в OC 10 часов назад, Mixin сказал: Дело и было в модулях под названием "Обновление цены при выборе опций OC2 (без AJAX)" и сам модуль опций "Options price ocStore2" Упс.. ни к селу ни к городу И что это было - неизвестно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Встановлення та оновлення Переезд на новый домен Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 Проверьте есть ли у вас в модах php расширение JSON - с вероятностью на 99% на новом сервере оно у вас не включено. 1 Надіслати Поділитися на інших сайтах More sharing options...
Mixin Опубліковано: 30 травня 2017 Автор Share Опубліковано: 30 травня 2017 3 минуты назад, chukcha сказал: А в карточке товара все хорошо? Нарушена кодировка в базе Да, все ок. Кодировка же не может быть нарушена частично? Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 А кто его знает как вы там ее импортировали покажите SHOW CREATE TABLE oc_country Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 15 минут назад, Mixin сказал: Да, все ок. Кодировка же не может быть нарушена частично? Еще раз ! Это на 100% отсутствие JSON в PHP !!! Встроенный класс Opencart некорректно работает с кириллицией! Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 в каком месте там json? country_id - из json, а сам страна(имя) из таблицы и название валюты из другой таблицы. Надіслати Поділитися на інших сайтах More sharing options... Mixin Опубліковано: 30 травня 2017 Автор Share Опубліковано: 30 травня 2017 (змінено) 11 минут назад, Yoda сказал: Еще раз ! Это на 100% отсутствие JSON в PHP !!! Встроенный класс Opencart некорректно работает с кириллицией! Да, да, да! Вы таки немного правы, спасибо. Дело в модулях. 19 минут назад, chukcha сказал: А кто его знает как вы там ее импортировали покажите SHOW CREATE TABLE oc_country И вам спасибо, но товарищ выше указал на путь истинный. Дело было в модуле. Вопрос решен, тему можно закрывать. Змінено 30 травня 2017 користувачем Mixin Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 7 минут назад, Mixin сказал: Вопрос решен, тему можно закрывать. А поделиться решением не желаете? Вы дважды написали, что дело было в модуле, но в каком и что именно, почему-то забыли указать. Надіслати Поділитися на інших сайтах More sharing options... Lazdakon Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 @Dotrox видимо, он имеет в виду JSON модуль 36 минут назад, Yoda сказал: Проверьте есть ли у вас в модах php расширение JSON - с вероятностью на 99% на новом сервере оно у вас не включено. Надіслати Поділитися на інших сайтах More sharing options... Mixin Опубліковано: 30 травня 2017 Автор Share Опубліковано: 30 травня 2017 1 минуту назад, Dotrox сказал: А поделиться решением не желаете? Вы дважды написали, что дело было в модуле, но в каком и что именно, почему-то забыли указать. Боюсь, что тут от меня мало будет пользы, я просто увидел сообщение, что дело может быть в модулях. Дело и было в модулях под названием "Обновление цены при выборе опций OC2 (без AJAX)" и сам модуль опций "Options price ocStore2". Почему-то они сразу работать отказались, и их переустановка решили проблему. Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 public function getGeoZones($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "geo_zone"; $sort_data = array( 'name', 'description' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $geo_zone_data = $this->cache->get('geo_zone'); if (!$geo_zone_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "geo_zone ORDER BY name ASC"); $geo_zone_data = $query->rows; $this->cache->set('geo_zone', $geo_zone_data); } return $geo_zone_data; } } Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 1 час назад, chukcha сказал: в каком месте там json? country_id - из json, а сам страна(имя) из таблицы и название валюты из другой таблицы. Смотрим сюда: public function getGeoZones($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "geo_zone"; $sort_data = array( 'name', 'description' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $geo_zone_data = $this->cache->get('geo_zone'); if (!$geo_zone_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "geo_zone ORDER BY name ASC"); $geo_zone_data = $query->rows; $this->cache->set('geo_zone', $geo_zone_data); } return $geo_zone_data; } } потом сюда : <?php namespace Cache; class File { private $expire; public function __construct($expire = 3600) { $this->expire = $expire; $files = glob(DIR_CACHE . 'cache.*'); if ($files) { foreach ($files as $file) { $time = substr(strrchr($file, '.'), 1); if ($time < time()) { if (file_exists($file)) { unlink($file); } } } } } public function get($key) { $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*'); if ($files) { $handle = fopen($files[0], 'r'); flock($handle, LOCK_SH); $data = fread($handle, filesize($files[0])); flock($handle, LOCK_UN); fclose($handle); return json_decode($data, true); } return false; } Ой, кто нас *** л в ракете.. Откуда JSON... А теперь пробуем через это https://github.com/opencart/opencart/blob/master/upload/system/helper/json.php Пропустить массив с кирилицей. Удивляемся. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 31 травня 2017 Share Опубліковано: 31 травня 2017 Раз if (isset($this->request->post['config_country_id'])) { $data['config_country_id'] = $this->request->post['config_country_id']; } else { $data['config_country_id'] = $this->config->get('config_country_id'); } Два $data['countries'] = $this->model_localisation_country->getCountries(); Три <select name="config_country_id" id="input-country" class="form-control"> <?php foreach ($countries as $country) { ?> <?php if ($country['country_id'] == $config_country_id) { ?> <option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option> <?php } else { ?> <option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option> <?php } ?> <?php } ?> Четыре public function getCountries($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "country"; $sort_data = array( 'name', 'iso_code_2', 'iso_code_3' ); ... skipped $query = $this->db->query($sql); return $query->rows; } else { $country_data = $this->cache->get('country'); if (!$country_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "country ORDER BY name ASC"); $country_data = $query->rows; $this->cache->set('country', $country_data); } return $country_data; } } Вот тут json из кеша - не спорю При очистке кеша должно показываться правильно? 10 часов назад, Mixin сказал: я просто увидел сообщение, что дело может быть в модулях. Тут вижу, там не слышу. php mod(уль) json != модулю в OC 10 часов назад, Mixin сказал: Дело и было в модулях под названием "Обновление цены при выборе опций OC2 (без AJAX)" и сам модуль опций "Options price ocStore2" Упс.. ни к селу ни к городу И что это было - неизвестно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Встановлення та оновлення Переезд на новый домен Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 15 минут назад, Mixin сказал: Да, все ок. Кодировка же не может быть нарушена частично? Еще раз ! Это на 100% отсутствие JSON в PHP !!! Встроенный класс Opencart некорректно работает с кириллицией! Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 в каком месте там json? country_id - из json, а сам страна(имя) из таблицы и название валюты из другой таблицы. Надіслати Поділитися на інших сайтах More sharing options... Mixin Опубліковано: 30 травня 2017 Автор Share Опубліковано: 30 травня 2017 (змінено) 11 минут назад, Yoda сказал: Еще раз ! Это на 100% отсутствие JSON в PHP !!! Встроенный класс Opencart некорректно работает с кириллицией! Да, да, да! Вы таки немного правы, спасибо. Дело в модулях. 19 минут назад, chukcha сказал: А кто его знает как вы там ее импортировали покажите SHOW CREATE TABLE oc_country И вам спасибо, но товарищ выше указал на путь истинный. Дело было в модуле. Вопрос решен, тему можно закрывать. Змінено 30 травня 2017 користувачем Mixin Надіслати Поділитися на інших сайтах More sharing options... Dotrox Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 7 минут назад, Mixin сказал: Вопрос решен, тему можно закрывать. А поделиться решением не желаете? Вы дважды написали, что дело было в модуле, но в каком и что именно, почему-то забыли указать. Надіслати Поділитися на інших сайтах More sharing options... Lazdakon Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 @Dotrox видимо, он имеет в виду JSON модуль 36 минут назад, Yoda сказал: Проверьте есть ли у вас в модах php расширение JSON - с вероятностью на 99% на новом сервере оно у вас не включено. Надіслати Поділитися на інших сайтах More sharing options... Mixin Опубліковано: 30 травня 2017 Автор Share Опубліковано: 30 травня 2017 1 минуту назад, Dotrox сказал: А поделиться решением не желаете? Вы дважды написали, что дело было в модуле, но в каком и что именно, почему-то забыли указать. Боюсь, что тут от меня мало будет пользы, я просто увидел сообщение, что дело может быть в модулях. Дело и было в модулях под названием "Обновление цены при выборе опций OC2 (без AJAX)" и сам модуль опций "Options price ocStore2". Почему-то они сразу работать отказались, и их переустановка решили проблему. Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 public function getGeoZones($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "geo_zone"; $sort_data = array( 'name', 'description' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $geo_zone_data = $this->cache->get('geo_zone'); if (!$geo_zone_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "geo_zone ORDER BY name ASC"); $geo_zone_data = $query->rows; $this->cache->set('geo_zone', $geo_zone_data); } return $geo_zone_data; } } Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 1 час назад, chukcha сказал: в каком месте там json? country_id - из json, а сам страна(имя) из таблицы и название валюты из другой таблицы. Смотрим сюда: public function getGeoZones($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "geo_zone"; $sort_data = array( 'name', 'description' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $geo_zone_data = $this->cache->get('geo_zone'); if (!$geo_zone_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "geo_zone ORDER BY name ASC"); $geo_zone_data = $query->rows; $this->cache->set('geo_zone', $geo_zone_data); } return $geo_zone_data; } } потом сюда : <?php namespace Cache; class File { private $expire; public function __construct($expire = 3600) { $this->expire = $expire; $files = glob(DIR_CACHE . 'cache.*'); if ($files) { foreach ($files as $file) { $time = substr(strrchr($file, '.'), 1); if ($time < time()) { if (file_exists($file)) { unlink($file); } } } } } public function get($key) { $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*'); if ($files) { $handle = fopen($files[0], 'r'); flock($handle, LOCK_SH); $data = fread($handle, filesize($files[0])); flock($handle, LOCK_UN); fclose($handle); return json_decode($data, true); } return false; } Ой, кто нас *** л в ракете.. Откуда JSON... А теперь пробуем через это https://github.com/opencart/opencart/blob/master/upload/system/helper/json.php Пропустить массив с кирилицей. Удивляемся. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 31 травня 2017 Share Опубліковано: 31 травня 2017 Раз if (isset($this->request->post['config_country_id'])) { $data['config_country_id'] = $this->request->post['config_country_id']; } else { $data['config_country_id'] = $this->config->get('config_country_id'); } Два $data['countries'] = $this->model_localisation_country->getCountries(); Три <select name="config_country_id" id="input-country" class="form-control"> <?php foreach ($countries as $country) { ?> <?php if ($country['country_id'] == $config_country_id) { ?> <option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option> <?php } else { ?> <option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option> <?php } ?> <?php } ?> Четыре public function getCountries($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "country"; $sort_data = array( 'name', 'iso_code_2', 'iso_code_3' ); ... skipped $query = $this->db->query($sql); return $query->rows; } else { $country_data = $this->cache->get('country'); if (!$country_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "country ORDER BY name ASC"); $country_data = $query->rows; $this->cache->set('country', $country_data); } return $country_data; } } Вот тут json из кеша - не спорю При очистке кеша должно показываться правильно? 10 часов назад, Mixin сказал: я просто увидел сообщение, что дело может быть в модулях. Тут вижу, там не слышу. php mod(уль) json != модулю в OC 10 часов назад, Mixin сказал: Дело и было в модулях под названием "Обновление цены при выборе опций OC2 (без AJAX)" и сам модуль опций "Options price ocStore2" Упс.. ни к селу ни к городу И что это было - неизвестно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Встановлення та оновлення Переезд на новый домен
Mixin Опубліковано: 30 травня 2017 Автор Share Опубліковано: 30 травня 2017 (змінено) 11 минут назад, Yoda сказал: Еще раз ! Это на 100% отсутствие JSON в PHP !!! Встроенный класс Opencart некорректно работает с кириллицией! Да, да, да! Вы таки немного правы, спасибо. Дело в модулях. 19 минут назад, chukcha сказал: А кто его знает как вы там ее импортировали покажите SHOW CREATE TABLE oc_country И вам спасибо, но товарищ выше указал на путь истинный. Дело было в модуле. Вопрос решен, тему можно закрывать. Змінено 30 травня 2017 користувачем Mixin Надіслати Поділитися на інших сайтах More sharing options...
Dotrox Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 7 минут назад, Mixin сказал: Вопрос решен, тему можно закрывать. А поделиться решением не желаете? Вы дважды написали, что дело было в модуле, но в каком и что именно, почему-то забыли указать. Надіслати Поділитися на інших сайтах More sharing options...
Lazdakon Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 @Dotrox видимо, он имеет в виду JSON модуль 36 минут назад, Yoda сказал: Проверьте есть ли у вас в модах php расширение JSON - с вероятностью на 99% на новом сервере оно у вас не включено. Надіслати Поділитися на інших сайтах More sharing options... Mixin Опубліковано: 30 травня 2017 Автор Share Опубліковано: 30 травня 2017 1 минуту назад, Dotrox сказал: А поделиться решением не желаете? Вы дважды написали, что дело было в модуле, но в каком и что именно, почему-то забыли указать. Боюсь, что тут от меня мало будет пользы, я просто увидел сообщение, что дело может быть в модулях. Дело и было в модулях под названием "Обновление цены при выборе опций OC2 (без AJAX)" и сам модуль опций "Options price ocStore2". Почему-то они сразу работать отказались, и их переустановка решили проблему. Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 public function getGeoZones($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "geo_zone"; $sort_data = array( 'name', 'description' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $geo_zone_data = $this->cache->get('geo_zone'); if (!$geo_zone_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "geo_zone ORDER BY name ASC"); $geo_zone_data = $query->rows; $this->cache->set('geo_zone', $geo_zone_data); } return $geo_zone_data; } } Надіслати Поділитися на інших сайтах More sharing options... Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 1 час назад, chukcha сказал: в каком месте там json? country_id - из json, а сам страна(имя) из таблицы и название валюты из другой таблицы. Смотрим сюда: public function getGeoZones($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "geo_zone"; $sort_data = array( 'name', 'description' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $geo_zone_data = $this->cache->get('geo_zone'); if (!$geo_zone_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "geo_zone ORDER BY name ASC"); $geo_zone_data = $query->rows; $this->cache->set('geo_zone', $geo_zone_data); } return $geo_zone_data; } } потом сюда : <?php namespace Cache; class File { private $expire; public function __construct($expire = 3600) { $this->expire = $expire; $files = glob(DIR_CACHE . 'cache.*'); if ($files) { foreach ($files as $file) { $time = substr(strrchr($file, '.'), 1); if ($time < time()) { if (file_exists($file)) { unlink($file); } } } } } public function get($key) { $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*'); if ($files) { $handle = fopen($files[0], 'r'); flock($handle, LOCK_SH); $data = fread($handle, filesize($files[0])); flock($handle, LOCK_UN); fclose($handle); return json_decode($data, true); } return false; } Ой, кто нас *** л в ракете.. Откуда JSON... А теперь пробуем через это https://github.com/opencart/opencart/blob/master/upload/system/helper/json.php Пропустить массив с кирилицей. Удивляемся. Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 31 травня 2017 Share Опубліковано: 31 травня 2017 Раз if (isset($this->request->post['config_country_id'])) { $data['config_country_id'] = $this->request->post['config_country_id']; } else { $data['config_country_id'] = $this->config->get('config_country_id'); } Два $data['countries'] = $this->model_localisation_country->getCountries(); Три <select name="config_country_id" id="input-country" class="form-control"> <?php foreach ($countries as $country) { ?> <?php if ($country['country_id'] == $config_country_id) { ?> <option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option> <?php } else { ?> <option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option> <?php } ?> <?php } ?> Четыре public function getCountries($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "country"; $sort_data = array( 'name', 'iso_code_2', 'iso_code_3' ); ... skipped $query = $this->db->query($sql); return $query->rows; } else { $country_data = $this->cache->get('country'); if (!$country_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "country ORDER BY name ASC"); $country_data = $query->rows; $this->cache->set('country', $country_data); } return $country_data; } } Вот тут json из кеша - не спорю При очистке кеша должно показываться правильно? 10 часов назад, Mixin сказал: я просто увидел сообщение, что дело может быть в модулях. Тут вижу, там не слышу. php mod(уль) json != модулю в OC 10 часов назад, Mixin сказал: Дело и было в модулях под названием "Обновление цены при выборе опций OC2 (без AJAX)" и сам модуль опций "Options price ocStore2" Упс.. ни к селу ни к городу И что это было - неизвестно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Mixin Опубліковано: 30 травня 2017 Автор Share Опубліковано: 30 травня 2017 1 минуту назад, Dotrox сказал: А поделиться решением не желаете? Вы дважды написали, что дело было в модуле, но в каком и что именно, почему-то забыли указать. Боюсь, что тут от меня мало будет пользы, я просто увидел сообщение, что дело может быть в модулях. Дело и было в модулях под названием "Обновление цены при выборе опций OC2 (без AJAX)" и сам модуль опций "Options price ocStore2". Почему-то они сразу работать отказались, и их переустановка решили проблему. Надіслати Поділитися на інших сайтах More sharing options...
Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 public function getGeoZones($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "geo_zone"; $sort_data = array( 'name', 'description' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $geo_zone_data = $this->cache->get('geo_zone'); if (!$geo_zone_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "geo_zone ORDER BY name ASC"); $geo_zone_data = $query->rows; $this->cache->set('geo_zone', $geo_zone_data); } return $geo_zone_data; } } Надіслати Поділитися на інших сайтах More sharing options...
Yoda Опубліковано: 30 травня 2017 Share Опубліковано: 30 травня 2017 1 час назад, chukcha сказал: в каком месте там json? country_id - из json, а сам страна(имя) из таблицы и название валюты из другой таблицы. Смотрим сюда: public function getGeoZones($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "geo_zone"; $sort_data = array( 'name', 'description' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY name"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC"; } else { $sql .= " ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } else { $geo_zone_data = $this->cache->get('geo_zone'); if (!$geo_zone_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "geo_zone ORDER BY name ASC"); $geo_zone_data = $query->rows; $this->cache->set('geo_zone', $geo_zone_data); } return $geo_zone_data; } } потом сюда : <?php namespace Cache; class File { private $expire; public function __construct($expire = 3600) { $this->expire = $expire; $files = glob(DIR_CACHE . 'cache.*'); if ($files) { foreach ($files as $file) { $time = substr(strrchr($file, '.'), 1); if ($time < time()) { if (file_exists($file)) { unlink($file); } } } } } public function get($key) { $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*'); if ($files) { $handle = fopen($files[0], 'r'); flock($handle, LOCK_SH); $data = fread($handle, filesize($files[0])); flock($handle, LOCK_UN); fclose($handle); return json_decode($data, true); } return false; } Ой, кто нас *** л в ракете.. Откуда JSON... А теперь пробуем через это https://github.com/opencart/opencart/blob/master/upload/system/helper/json.php Пропустить массив с кирилицей. Удивляемся. Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 31 травня 2017 Share Опубліковано: 31 травня 2017 Раз if (isset($this->request->post['config_country_id'])) { $data['config_country_id'] = $this->request->post['config_country_id']; } else { $data['config_country_id'] = $this->config->get('config_country_id'); } Два $data['countries'] = $this->model_localisation_country->getCountries(); Три <select name="config_country_id" id="input-country" class="form-control"> <?php foreach ($countries as $country) { ?> <?php if ($country['country_id'] == $config_country_id) { ?> <option value="<?php echo $country['country_id']; ?>" selected="selected"><?php echo $country['name']; ?></option> <?php } else { ?> <option value="<?php echo $country['country_id']; ?>"><?php echo $country['name']; ?></option> <?php } ?> <?php } ?> Четыре public function getCountries($data = array()) { if ($data) { $sql = "SELECT * FROM " . DB_PREFIX . "country"; $sort_data = array( 'name', 'iso_code_2', 'iso_code_3' ); ... skipped $query = $this->db->query($sql); return $query->rows; } else { $country_data = $this->cache->get('country'); if (!$country_data) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "country ORDER BY name ASC"); $country_data = $query->rows; $this->cache->set('country', $country_data); } return $country_data; } } Вот тут json из кеша - не спорю При очистке кеша должно показываться правильно? 10 часов назад, Mixin сказал: я просто увидел сообщение, что дело может быть в модулях. Тут вижу, там не слышу. php mod(уль) json != модулю в OC 10 часов назад, Mixin сказал: Дело и было в модулях под названием "Обновление цены при выборе опций OC2 (без AJAX)" и сам модуль опций "Options price ocStore2" Упс.. ни к селу ни к городу И что это было - неизвестно Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts