Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Условие проверки на активный язык (OpenCart 2.3)


Recommended Posts

Доброго времени суток. Как реализовать проверку на активный язык в шаблоне? Что то типа этого:

if (condition) {
	# code...
}

Нужно сделать это в footer.tpl, работает этот код

<?php if ($_COOKIE['language'] == 'ru-ru') { ?>
русский
<?php } ?>

<?php if ($_COOKIE['language'] == 'en-gb') { ?>
англ
<?php } ?>

но он срабатывает только после перезагрузки. Буду очень признателен, если поможете разобраться как реализовать данную проверку на OC 2.3 в файлах шаблона

Надіслати
Поділитися на інших сайтах


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

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

  • +1 2
Надіслати
Поділитися на інших сайтах

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

Доброго времени суток. Как реализовать проверку на активный язык в шаблоне? Что то типа этого:

 

 

может, проще брать значение lang  из тега html через js

var language = document.getElementsByTagName("html")[0].getAttribute("lang");

if (language =='en') {
  $('div[id="top-modules"]').before('англ');
}
if (language =='ru') {
  $('div[id="top-modules"]').before('рус');
} 

div id  свой поставить

Надіслати
Поділитися на інших сайтах

Alexodiy меня тоже интересует проверка актуального языка.

А как вы потом перенесли из контроллера значение переменных в шаблон tpl ?

Или вся проверка осталась в файле контроллера?

 

Я в контроллере модуля получаю переменную $language_id = $this->config->get('config_language_id');

Но потом в шаблоне при запросе значения $language_id мне пишется что она Undefined.

Надіслати
Поділитися на інших сайтах


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

Но потом в шаблоне при запросе значения $language_id мне пишется что она Undefined.

для передачи данных из контроллера в шаблон нужно использовать массив $data

$data['language_id']=..

Надіслати
Поділитися на інших сайтах

On 6/6/2018 at 10:30 PM, AlexDW said:

для передачи данных из контроллера в шаблон нужно использовать массив $data

$data['language_id']=..

 

А можете тогда подсказать, как правильно в шаблоне запросить эту переменную.

 

В контроллере сейчас так: $data['language_id'] = $this->config->get('config_language_id');

 

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

 

Но в шаблоне tpl всё равно $language_id Undefined

 

 

Надіслати
Поділитися на інших сайтах


так и передается

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

 

Надіслати
Поділитися на інших сайтах

1 hour ago, AlexDW said:

так и передается

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

 

 

Вот так получилось:

 

в контроллере:

$languageID = $this->config->get('config_language_id');
$this->mdata['language_id'] = $languageID;

 

в шаблоне:

$language_id;

 

на эту мысль меня навело ваше предположение о неправильном месте вывода переменной в контроллере.

Так что спасибо вам ))

 

 

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Подскажите, как отучить Opencart 2.3 в поиске различать языки.
То есть даже если выбран другой язык, поиск всегда выдавал искомый товар.

В версии 1.5. исправлялось коментированием строчки в контроллере search.php
$sql .= 'AND pd.language_id = ' . (int)$this->config->get('config_language_id');
в совей версии в контроллере search.php я такой строки не нашел.

Надіслати
Поділитися на інших сайтах


потому что смотреть нужно в модели catalog\model\catalog\product.php

ищите в методах getProducts и getTotalProducts

 

не стоит забывать, что при большом количестве товаров и нескольких языках отключение фильтра по language_id приведет к росту нагрузки

Надіслати
Поділитися на інших сайтах

3 часа назад, Vandeko сказал:

Отлично! строка 78

 

только править нужно в обоих методах, getProducts и getTotalProducts

иначе будет расхождение между фактически найденными товарами и их счетчиком

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.