Пимкор с веточкой; визуализировать html на основе глубины меню

Я использую Pimcore 5.4.4 в сочетании с twig и пытаюсь настроить свой вывод. В настоящее время у меня есть это:

$this->setViewAutoRender($event->getRequest(), true, 'php');
$this->view->navigation=$navStartNode;

который я делаю с этим:

{{ pimcore_render_nav(mainNavigation) }}

Это делает свою работу, однако ужасно не настраивается. Я хочу отобразить значок со стрелкой вниз для пунктов меню, у которых есть дети. Можно ли этого добиться каким-либо образом?

Чтобы уточнить, я хотел бы, чтобы моя разметка выглядела примерно так:

<ul>
  <li> m1 </li>
  <li class='hasChildren'><i 'arrow-down'> m2 </i></li>
     <ul>...

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

Любая помощь здесь будет высоко оценена.

Приветствую, дерэлектрищемоэнч


person derelektrischemoench    schedule 01.10.2018    source источник


Ответы (2)


Нельзя ли перезаписать партиал?

См. документацию: https://pimcore.com/docs/master/Development_Documentation/Documents/Navigation.html#page_Individual-Partial-Navigation-View-Script

person Joris Ros    schedule 07.10.2018
comment
Это довольно запутанно: <?= $this->navigation()->menu()->htmlify($page); ?> что это? - person Hendy Irawan; 12.09.2019

Вот полностью настраиваемая панель навигации, которая у меня работает с Bootstrap 4.3.1 и mdbootstrap 4.8.9, протестирована с Pimcore 6.2. 0:

<header>
    {% set mainNavStartNode = document.getProperty('mainNavStartNode') %}
    {% if mainNavStartNode is empty %}
        {% set mainNavStartNode = pimcore_document(1) %}
    {% endif %}

    {% set mainNav = pimcore_build_nav(document, mainNavStartNode) %}
    {% set renderer = pimcore_nav_renderer('menu') %}
    <nav class="navbar navbar-expand-lg navbar-dark indigo mb-4">

        <!-- Additional container -->
        <div class="container">

            <!-- Navbar brand -->
            <a class="navbar-brand" href="{{ mainNavStartNode }}">
                <img src="{{ asset('static/img/lovia-navbar-white.png') }}" alt="Lovia"
                    style="height: 1.3rem; margin-bottom: 0.4rem;">
                {# <strong>Lovia</strong> #}
            </a>

            <!-- Collapse button -->
            <button class="navbar-toggler" type="button"
                data-toggle="collapse" data-target="#navbarSupportedContent"
                aria-controls="navbarSupportedContent"
                aria-expanded="false" aria-label="{{ "Toggle navigation"|trans }}">
                <span class="navbar-toggler-icon"></span></button>

            <!-- Collapsible content -->
            <div class="navbar-collapse collapse" id="navbarSupportedContent">

            <!-- Links -->
            <ul class="navbar-nav mr-auto">
            {% for page in mainNav %}
                {% if page.isVisible() and renderer.accept(page) %}
                    {% if page.hasPages %}
                    <li class="nav-item dropdown">
                        <a class="nav-link dropdown-toggle"
                            data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ page.label|trans }}</a>
                        <div class="dropdown-menu dropdown-primary" aria-labelledby="navbarDropdownMenuLink">
                            {% for child in page.pages %}
                            <a class="dropdown-item" href="{{ child.href }}">{{ child.label|trans }}</a>
                            {% endfor %}
                        </div>
                    </li>
                    {% else %}
                    <li class="nav-item">
                        <a class="nav-link" href="{{ page.href }}">{{ page.label|trans }}</a>
                    </li>
                    {% endif %}
                {% endif %}
            {% endfor %}
            </ul>
            <ul class="navbar-nav ml-auto">
                {{ include('Includes/login.html.twig') }}
                {{ include('Includes/language.html.twig') }}
            </ul>

        </div>
    </nav>
</header>

Адаптировано из https://pimcore.com/docs/master/Development_Documentation/Documents/Navigation.html#page_Using-Partials-Generating-a-Customized-Navigation

person Hendy Irawan    schedule 12.09.2019