Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

В контроллере модуля popup передается неверный код языка в config_language_id


bikoff
 Поделиться

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

Здравствуйте!

Дано: ocStore 2.1.0.2.1 + Journal2. В теме есть модуль Popup. У сайта прописаны 2 языка (русский, ******ский).

 

Сайт работает с модулем мультиязык. Раньше при вызове popup, находясь на ******ской версии сайта, открывался popup с укр текстом. 

 

Недавно заметили, что сейчас на всех версиях языка выдается русский в окне Popup. Проверили какая переменная приходит и действительно, 

$this->config->get('config_language_id')

Всегда = 1, т.е. русский. Попап открывается с помощью аякса. Но почему он берет не текущий язык, а язык по-умолчанию? 

 

В controller прописано

 $this->data['title'] = Journal2Utils::getProperty($module_data, 'title.value.' . $this->config->get('config_language_id'));

И если просто поставить 4 вместо language_id, то у в нашем случаи выведется укр язык. 

 

Подскажите, пожалуйста, в каком месте нужно искать? 

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


Попробуйте следующее.
в файл catalog\model\localisation\language.php добавьте внизу где-нибудь вот такую функцию:

	public function getLanguageByCode($code) {
		$query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "language` WHERE code = '" . $this->db->escape($code) . "'");

		return $query->row;
	}

 

и в вашем контроллере тогда вот так:

$this->load->model('localisation/language');

$cur_language_id = $this->config->get('config_language_id');

$cur_language = $this->model_localisation_language->getLanguageByCode($this->session->data['language']);
if ($cur_language) {
	$cur_language_id = $cur_language['language_id'];
}

$this->data['title'] = Journal2Utils::getProperty($module_data, 'title.value.' . $cur_language_id);

 

  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

1 минуту назад, nikifalex сказал:

тут эта тема вызывает ненависть и желание убивать.

да, этот Journal - просто атас, я бы никогда не взялся его поддерживать..

  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

40 минут назад, bikoff сказал:

Раньше при вызове popup, находясь на ******ской версии сайта

ранше работало, потом что то сделали и перестало работать, вот ищите то что вы что то сделали, может модуль ставили, может еще что

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

1 час назад, Prooksius сказал:

да, этот Journal - просто атас, я бы никогда не взялся его поддерживать..

Да, давно это было) В 2016. Пока что-то нет желания все по новой начинать) Может еще годок протянет. Попробую ваше предложение. Спасибо!

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


1 час назад, Venter сказал:

ранше работало, потом что то сделали и перестало работать, вот ищите то что вы что то сделали, может модуль ставили, может еще что

Логично) Но не понятно сколько времени прошло и куда смотреть. Много воды утекло слишком. Вот и подумал, что может кто подскажет) 

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


1 час назад, Prooksius сказал:

Попробуйте следующее.

 

Нет, все равно для текущей версии языка с id=4, выдает $cur_language_id=1

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


2 минуты назад, Prooksius сказал:

значит либо в вашей версии в сессии язык не сохраняется, либо что-то изменено..

Просто сам сайт работает правильно. Язык выбранный работает через весь сайт. Но не там где через Ajax вызывается Popup. Будем искать. Спасибо!

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


Тему закрываю. Потестировали в других браузерах и все работает. Где-то закешировалось в Chrome эта SESSION и выдавало постоянно "1". Спасибо большое за оперативную помощь! Аж отлегло)) Хорошего вечера!

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


Даже не так. Видимо POPUP берет language_id из конфига Админки (если в админке язык "1", то и будет 1.), когда выполнен вход. Вот такое вот наблюдение.

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

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

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