#twig #opencart #opencart-3
#twig #opencart #opencart-3
Вопрос:
Я хочу вручную написать боковое меню для магазина на opencart, и у меня проблема — как заставить twig добавить класс «active» к ссылке для текущей страницы
Я пытался сделать это так
<a href="/something/" class="list-group-item {{ (app.request.attributes.get('_route') == 'something') ? 'active' }}">page about something</a>
но это не работает
Комментарии:
1. Вы проверили, что
app.request.attributes.get('_route')
возвращает?
Ответ №1:
Это именно то, что делает модуль category, чтобы вы могли скопировать его:
{% if child.category_id == child_id %}
<a href="{{ child.href }}" class="list-group-item active">amp;nbsp;amp;nbsp;amp;nbsp;- {{ child.name }}</a>
{% else %}
<a href="{{ child.href }}" class="list-group-item">amp;nbsp;amp;nbsp;amp;nbsp;- {{ child.name }}</a>
{% endif %}
Вы можете найти файл выше здесь:
/catalog/view/theme/default/template/extension/module/category.twig
Вы можете найти его контроллер здесь:
/catalog/controller/extension/module/category.php
Комментарии:
1. это не для страниц категории или продукта, я хочу левое боковое меню для информационных страниц, но включающее только выбранные страницы, а не все
2. Я знаю. Приведенный выше пример кода предназначен для модуля категории , а не для страницы категории . Модуль может быть размещен на любой странице, как описано здесь: antropy.co.uk/blog/how-do-opencart-layouts-work
Ответ №2:
Я бы сделал это так, чтобы отправить запрос маршрута в файл телефона контроллера. Это было бы что-то вроде приведенного ниже:
$urlroute = $this->request->get['route'];
Затем в файле twig вы можете просто проверить переменную маршрута в запросе IF
{% if urlroute == "something" % }
<a href="/something/" class="list-group-item active">page about something</a>
{% else %}
<a href="/something/" class="list-group-item">page about something</a>
{% endif %}
Комментарии:
1. Это точно такой же код, который
OP
используется, но растянут. Не понимаю, как это решило бы проблему2. При этом используется код, соответствующий тому, как закодирован opencart. Вы вообще что-нибудь знаете об opencart?