覆盖 symfony2 的 knp 菜单包中的选项
Override options in knp menu bundle for symfony2
来自默认的 knp 菜单包模板:
{%- elseif matcher.isAncestor(item, options.matchingDepth) %}
{%- set classes = classes|merge([options.ancestorClass]) %}
options.ancestorClass 等于 'current_ancestor'。有没有办法覆盖这个?我不想复制包含50行代码的整个块项目代码,我只需要从中更改一个值。
最佳
克里斯蒂安
要在所有应用程序中应用默认选项,您可以像这样设置 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'}) }}
来自this link
来自默认的 knp 菜单包模板:
{%- elseif matcher.isAncestor(item, options.matchingDepth) %}
{%- set classes = classes|merge([options.ancestorClass]) %}
options.ancestorClass 等于 'current_ancestor'。有没有办法覆盖这个?我不想复制包含50行代码的整个块项目代码,我只需要从中更改一个值。
最佳 克里斯蒂安
要在所有应用程序中应用默认选项,您可以像这样设置 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'}) }}
来自this link