PHP инженеры и разработчики, знакомые с большим кругом CMS и самописными решениями однозначно понимают значение функции, которую встречают в малознакомом коде, если она называется isAdmin();
Как я уже писал в предыдущем посте, пользовательская и администраторская часть OpenCart живут своими отдельными жизнями и почти не пересекаются. У каждого свои контроллеры, модели и представления. А так иногда хочется «запилить» что-то исключительно для администратора.
Из свежих доработок, которые я делал была кнопка Редактирования товаров, а так же вывод всех Статей (опубликованных и нет), если пользователь залогиненый Администратор. Рассматривать точечные решения задач сегодня нет настроения, так что тут будет просто шпаргалка для разработчиков «куда копать, если хочется написать что-то только для админа».
В сети встречаются решения, когда проверка isAdmin() производится в Представлении (во фронт-энде). Меня от таких методов немного коробит. Правильно со всех точек зрения делать это в Контроллере, т.к. в принципе эта функция относится к логике работы OpenCart.
Итак, чтобы проверить является ли пользователь залогиненым Администратором в OpenCart 1.5.x используйте условие:
$this->load->library('user'); $this->user = new User($this->registry); if($this->user->isLogged()) { // произвольный код функции для Администратора }
Для OpenCart 2.x и 3.x подойдет такое решение:
if (!empty($this->session->data['user_id']) && !empty($this->session->data['token'])) { // проивольный код функции для Администратора }
Что характерно, для второго решения нет необходимости подключать библиотеку User. Теоретически такое же решение есть и для OpenCart 1.5.x, но автор не утруждал себя поисками, т.к. указаное решение вполне решает задачу в поставленных рамках.
Здравствуйте Игорь! Где можно ещё с вами пообщаться?
https://netsh.pp.ua/ask/