OpenCart 2: Получаем в админке текущие настройки языка (OC 2.0, 2.1, 2.2)
- Категория: Код
- – Автор: Игорь (Администратор)
В одной из предыдущих статей я показывал, как можно получить в коде админки OpenCart 2 текущие настройки валюты. В этой же статье я расскажу про код для получения настроек языка в OpenCart 2.0, 2.1 и 2.2. И как я уже упоминал, к сожалению, и в этом вопросе без еще одной простыни кода не обойтись, хотя казалось бы задача должна решаться тривиально. Но увы, если вы не подойдете к задаче со скрупулезностью, то в ряде ситуаций у вас будут возникать совершенно неожиданные ошибки. Поэтому, в данной статье я опишу как получить текущие настройки языка для версий OpenCart 2.0, 2.1 и 2.2. И тут так же, как и в прошлой статье, основной код в основном вырос благодаря версии 2.2.
Методом проб, ошибок, дебага, поиска в интернете и ответа на вселенские вопросы, получилась следующая конструкция:
Как видите, код достаточно массивный и его стоит сразу заносить куда-нибудь в отдельную функцию, чтобы не заниматься этим вопросом дважды. К тому же, есть вероятность, что с выходом OpenCart 2.3 этот код еще подрастет.
А теперь, пройдусь по основным причинам, почему настройки языка получаются парой десятком строк:
1. Во-первых, к сожалению, проверять нужно все, причем абсолютно. В каждом отдельном случае, легко может получаться ситуация, что какой-либо из параметров оказывается пустым, даже если такого не может быть.
2. Во-вторых, проблема с заполнением сессионных переменных. Код вида "$this->session->data['language']" легко вернет вам ошибку отсутствия элемента в массиве. В данном случае вспоминается фраза "должен - не значит обязан". Ошибка легко воспроизводится открытием админки, минуя открытие сайта. Если ранее сессия еще не была создана для пользователя и нормально инициализирована, то элемент "language" будет пустым.
3. В-третьих, как бы это не было, но приходится даже рассчитывать на гипотетический случай, что все значения текущего кода окажутся пустыми (код в самом начале "$language = reset($list_lang);", получающий любой первый набор настроек языка).
Безусловно, хочется верить, что со временем все эти сложности будут решены и на уровне движка появятся отдельные функции для корректного получения настроек языка, валюты и прочего без необходимости создания простыней кода. Однако, на текущий момент для поддержания версий OpenCart 2.0, 2.1 и 2.2 приходится использовать такие вот конструкции.
Надеюсь, моя статья помогла вам решить ваши проблемы и сэкономила вам лишний час времени.
☕ Понравился обзор? Поделитесь с друзьями!