Опции переопределения в пакете меню knp для symfony2

Из шаблона пакета меню knp по умолчанию:

{%- elseif matcher.isAncestor(item, options.matchingDepth) %}
    {%- set classes = classes|merge([options.ancestorClass]) %}

options.ancestorClass равен «current_ancestor». Есть ли способ переопределить это? Я не хочу копировать код элемента блока wohle, который охватывает 50 строк кода, из которых мне нужно изменить только одно значение.

Лучший христианин


person Community    schedule 20.06.2016    source источник


Ответы (1)


Чтобы применить параметры по умолчанию во всем вашем приложении, вы можете установить параметр knp_menu.renderer.twig.options следующим образом:

// app/config/services.yml
parameters:
    knp_menu.renderer.twig.options:
        currentClass: active

Параметры по умолчанию для Knp\Menu\Renderer\TwigRenderer:

    $this->defaultOptions = array_merge(array(
        'depth' => null,
        'matchingDepth' => null,
        'currentAsLink' => true,
        'currentClass' => 'current',
        'ancestorClass' => 'current_ancestor',
        'firstClass' => 'first',
        'lastClass' => 'last',
        'template' => $template,
        'compressed' => false,
        'allow_safe_labels' => false,
        'clear_matcher' => true,
        'leaf_class' => null,
        'branch_class' => null,
    ), $defaultOptions);

Пытаться

{{ knp_menu_render('AcmeDemoBundle:Builder:mainMenu', {'ancestorClass': 'your-class'}) }}

Из этой ссылки

person Jose M. González    schedule 20.06.2016
comment
Спасибо, я выбрал второй подход. - person ; 20.06.2016