Перейти к содержанию

Рекомендуемые сообщения

Был переезд с одного домена на другой, в обоих *.php файлах и базе пути изменены.

Собственно, на картинке единственная возникшая проблема. Везде, включая пункты "Локализация", все как надо. Видимо, где-то надо пути поменять, но где?

capture.jpg

Изменено пользователем Mixin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в карточке товара все хорошо?

 

Нарушена кодировка в базе

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверьте есть ли у вас в модах php расширение JSON - с вероятностью на 99% на новом сервере оно у вас не включено.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, chukcha сказал:

А в карточке товара все хорошо?

 

Нарушена кодировка в базе

 

Да, все ок. Кодировка же не может быть нарушена частично?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А кто его знает как вы там ее импортировали

 

покажите

SHOW CREATE TABLE oc_country

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
15 минут назад, Mixin сказал:

Да, все ок. Кодировка же не может быть нарушена частично?

 

Еще раз ! 
Это на 100% отсутствие JSON в PHP !!!

Встроенный класс Opencart некорректно работает с кириллицией!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в каком месте там json?

 

country_id - из json, а сам страна(имя) из таблицы и название валюты из другой таблицы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, Yoda сказал:

 

Еще раз ! 
Это на 100% отсутствие JSON в PHP !!!

Встроенный класс Opencart некорректно работает с кириллицией!

 

Да, да, да! Вы таки немного правы, спасибо. Дело в модулях.

 

19 минут назад, chukcha сказал:

А кто его знает как вы там ее импортировали

 

покажите

SHOW CREATE TABLE oc_country

И вам спасибо, но товарищ выше указал на путь истинный. Дело было в модуле.

 

Вопрос решен, тему можно закрывать.

Изменено пользователем Mixin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, Mixin сказал:

Вопрос решен, тему можно закрывать.

А поделиться решением не желаете?

Вы дважды написали, что дело было в модуле, но в каком и что именно, почему-то забыли указать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Dotrox видимо, он имеет в виду JSON модуль

36 минут назад, Yoda сказал:

Проверьте есть ли у вас в модах php расширение JSON - с вероятностью на 99% на новом сервере оно у вас не включено.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Dotrox сказал:

А поделиться решением не желаете?

Вы дважды написали, что дело было в модуле, но в каком и что именно, почему-то забыли указать.

Боюсь, что тут от меня мало будет пользы, я просто увидел сообщение, что дело может быть в модулях. Дело и было в модулях под названием "Обновление цены при выборе опций OC2 (без AJAX)" и сам модуль опций "Options price ocStore2". Почему-то они сразу работать отказались, и их переустановка решили проблему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
	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;
		}
	}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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

 

Пропустить массив с кирилицей.

Удивляемся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Раз

 

		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"

 

Упс.. ни к селу ни к городу

 

 

И что это было - неизвестно

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.