OpenCart 2: Получаем в админке текущие настройки валюты (OC 2.0, 2.1, 2.2)
- Категория: Код
- – Автор: Игорь (Администратор)
Когда заходит речь о различных версиях OpenCart 2 и их совместимости, то сразу вспоминается фраза с башорга "не было печали, апдейтов накачали". Понятно, что данная CMS активно развивается и ее авторы стараются сделать движок более универсальным, но иногда складывается впечатление, что некоторые вещи просто проплывают мимо перед их глазами. Впрочем, сложно выставлять какие-либо претензии к бесплатному движку интернет магазина. Но, что-то я отвлекся. Итак, сегодня в данной статье я рассмотрю как получить в админке текущие настройки валюты для версий OpenCart 2.0, 2.1 и 2.2. Сразу скажу, что основную сложность вносит именно версия 2.2, в более ранних версиях это решается всего парой строчек.
Начну с кода для OpenCart 2.0 и 2.1:
Как видите ничего сложного. Загружаем модель, получаем список валют и берем текущую валюту. Но, для OpenCart 2.2 такая конструкция вызовет ошибку. Поэтому, его нужно дополнить.
Теперь, посмотрим код для получения текущих настроек валюту для OpenCart 2.0, 2.1 и 2.2:
Как видите, код "слегка" подрос.
Откуда возникают такие камни:
1. Во-первых, по какой-то неведомой причине стандартный метод "getCode" был удален из движка и поэтому для поддержки версий приходится проверять его наличие.
2. Во-вторых, практически все приходится проверять, будь то настройки конфигов или же наличие общих переменных в сессии, при этом значения функций нельзя проверять в "isset" и "empty", так что в коде появляется еще одна бесполезная строчка с "$temp_curr". Если вы этого не будете делать, то в некоторых редких ситуациях вы будете встречать "забавные" ошибки.
3. В-третьих, хотелось бы отдельно сказать по поводу сессионных данных. Возможно, это покажется странным, но общие сессионные переменные на то и общие сессионные, чтобы они заполнялись в любом случае. И это касается не только валюты, но настроек языков и прочего, но об этом в одной из последующих статей. Возвращаясь, так, например, если вы после очистки куков или зайдя из другого браузера сразу откроете админку, минуя заход на основной сайт, то "$this->session->data['currency']" ничего не вернет. Хотя, эта настройка должна быть, так как стандартные инструменты админки ее используют.
Примечание: Конечно, тут есть вопрос двоякости подхода к определению сессионных данных. Так как язык на сайте может быть выставлен один, а в админке использоваться тот, что по умолчанию. Но, тут есть свои нюансы...
Теперь, вы знаете как получить в админке настройки текущей валюты для OpenCart 2.0, 2.1 и 2.2, а так же некоторые особенности этого дела. Надеюсь, данная статья помогла вам сохранить лишний час в поисках источника проблем в OpenCart 2.
☕ Понравился обзор? Поделитесь с друзьями!