Значения переменных OpenCart в вопросах и ответах

Часто бывает, когда в том или ином решении требуется получить текущие значения ключевых переменных OpenCart. Все эти значения пользуются большим спросом у разработчиков, они известны, но иногда забываешь их способ получения. Поэтому решено составить соответствующий список в виде вопросов и ответов.

Как узнать текущий язык магазина?

Идентификатор текущего языка (целое число):
$current_language_id = $config->get(‘config_language_id’);

Код текущего языка (двухсимвольный):
$current_language_code = $this->config->get(‘config_language’);
или
$current_language_code = $this->language->get(‘code’);

Как определить выбранную валюту?

Код текущей валюты (трехсимвольный):
$current_currency_code = $this->currency->getCode();

В какой категории находится просматриваемый товар?

Довольно актуально, если страница товара открыта по прямой ссылке, т.е. не через категории. Идентификатор текущей категории (ноль будет означать, что пользователь в разделе, не связанном с категорией, например на главной странице):

$parts = array(0);
if (isset($this->request->get[‘path’])) {
$parts = explode(‘_’, (string)$this->request->get[‘path’]);
} elseif (isset($this->request->get[‘product_id’])) {
if ($rows = $this->model_catalog_category->getCategoriesByProductId($this->request->get[‘product_id’])) {
$parts = array_values($rows[0]);
}
}
$current_category_id = (int)array_pop($parts);

Как узнать идентификатор действующего магазина?

$current_store_id = $this->config->get(‘config_store_id’);

Какой шаблон используется для магазина?

$current_template = $this->config->get(‘config_template’);

Как определить текущего пользователя?

Если требуется получить имя авторизованного пользователя в панели управления OpenCart и его идентификатор:

$this->load->library(‘user’); $user_data = new User($this->registry);
$current_username = $user_data->getUserName();
$current_user_id = $user_data->getId();

Для идентификатора бывает достаточно узнать значение одной из переменных сессии (ноль будет означать, что пользователь не авторизован):
$current_user_id = isset($this->session->data[‘user_id’]) ?  $this->session->data[‘user_id’] : 0;

Как определить авторизованного покупателя?

Аналогично вопросу выше, только имя подключаемой библиотеки customer, а идентификатор покупателя в сессии customer_id.

Как узнать содержимое переменной в процессе отладки?

Иногда в процессе отладки необходимо знать значения тех или иных переменных. Поскольку выводить содержимое переменной в браузер не всегда удобно, а в некоторых случаях и невозможно, то лучше это делать путём записи в журнал ошибок OpenCart:

$this->log->write($variable);

Как добавить скриптовый файл JavaScript или файл стилей CSS?

Файлы скриптов и стилей лучше подключать по мере их необходимости, вместо того, чтобы прописывать в шаблонах типа header.tpl. Это ускоряет процесс окончательной загрузки тех страниц, где они не используются:

$this->document->addStyle(‘catalog/view/theme/default/stylesheet/style.css’);
$this->document->addScript(‘catalog/view/javascript/script.js’);

Как узнать количество товаров в корзине без выполнения запроса к серверу?

Очевидно это можно сделать только через интерфейс магазина средствами jQuery. Разумеется решение справедливо для стандартной версии OpenCart, где модуль корзины покупок выполнен по всем правилам.

<script type=»text/javascript»>var cart_total = $(‘#cart-total’).text().replace( /^\D+/g, »); if (parseInt(cart_total)) { alert(‘Cart is not empty’); }</script>

Как узнать текущую страницу (layout)?

Многие переменные можно брать непосредственно из параметров запроса типа GET. Чтобы получить текущую страницу (схему), используйте следующую запись:

$route = $this->request->get[‘route’];


Эта статья может быть дополнена новыми способами получения текущих значений переменных, следите за обновлениями и комментариями.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
× iOs app

To install this Web App in your iPhone/iPad press iOs sourse and then Add to Home Screen.