我想渲染一个HTML
标签,如:
$menu->addChild('Dashboard', array(
'route' => 'dashboard',
'label' => '<i class="fa-icon-bar-chart"></i><span class="hidden-tablet"> Dashboard</span></a>',
'extra' => array('safe_label' => true)
)
);
Run Code Online (Sandbox Code Playgroud)
我在渲染时传递了正确的选项:
{{ knp_menu_render('WshCmsHtmlBundle:Builder:mainMenu', {'allow_safe_labels': true} ) }}
Run Code Online (Sandbox Code Playgroud)
但我的标签仍在逃脱.我究竟做错了什么?
我希望我的视图代码看起来像这样:
<li>
<a href="path/to/action">
<i class="icon-class"></i>
<span class="title">Title</span>
</a>
</li>
Run Code Online (Sandbox Code Playgroud)
我通过Menu Builder创建菜单元素:
class Builder extends ContainerAware
{
public function adminMenu(FactoryInterface $factory, array $options)
{
$menu = $factory->createItem('root');
$menu->addChild('Dashboard', array(
'route' => 'admin_dashboard',
));
return $menu;
}
}
Run Code Online (Sandbox Code Playgroud)
我用以下代码覆盖了视图(knp_menu.html.twig):
{% block linkElement %}
{% import _self as knp_menu %}
<a href="{{ item.uri }}"{{ knp_menu.attributes(item.linkAttributes) }}>
<i class="icon-class"></i>
<span class="title">{{ block('label') }}</span>
</a>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
如何<i>
在Builder类中的方法adminMenu()中将图标类名的值传递给元素?最简单的方法是什么?
我试图从knpMenu修改模板.我把它重命名为knp_main_menu.html.twig
config.yml:
knp_menu:
twig:
template: knp_main_menu.html.twig
templating: true
default_renderer: twig
Run Code Online (Sandbox Code Playgroud)
knp_menu.html.twig
但是我的文件(原件的确切副本)没有.有没有办法做到这一点?
我的最终目标是制作适用于图标的模板:
例如:
$menu->addChild('Grupy', array(
'route' => 'group',
'attributes' => array(
'title' => 'Dodaj now? grup?',
'data-icon' => 'group',
'data-id' => 'groups_list',
)
));
Run Code Online (Sandbox Code Playgroud)
应该产生这样的东西:
<ul>
<li title="Dodaj now? grup?" data-id="groups_list" data-icon="group">
<a href="...">
<img src="somedir/group.png" /> Grupy
</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud) 有没有办法在KNP菜单包中呈现自定义属性,如下所示:
$menu = $factory->createItem(Role::ROLE_PROGRAM_EVENT_PLANNER, array(
'route' => 'show_form_events',
'attributes' => array('class' => 'menu pe_planner'),
'extra' => array(
'content' => 'my custom content'
)
));
Run Code Online (Sandbox Code Playgroud)
我通过在a-tag之后添加一个额外的div来覆盖linkElement.在那个div我想提供额外的内容
{% block linkElement %}
{% import _self as knp_menu %}
<a href="{{ item.uri }}"{{ knp_menu.attributes(item.linkAttributes) }}>{{ block('label') }}</a>
{% if item.hasChildren == false %}
<div class="custom">{{ item.getExtra('content') }}</div>
{% endif %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud) 我想创建一个如下的ul:
<ul>
<li>
<a><a>
<ul>......</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
sub ul将是另一个子项目,我不知道如何创建它,任何人都可以帮助我谢谢.
我需要清理管理员端,以满足我的客户需求.
我正在使用Sonata的NewsBundle,我实际上不需要使用评论,所以我想从管理员端删除它.至少从菜单上看.有没有办法在配置中禁用它?我没有在文档中找到任何关于此的提示.
这里是我想不再看到它的特定区域:
顺便说一句,菜单可能由KnpMenu生成
在symfony2中,如上所述,我想在Controller或Template中将指定的菜单子项设置为活动状态,我该如何实现?也就是说,我想将几个路径(控制器动作,模板)映射到一个菜单子,这可能吗?我想我可以在控制器或模板中获取菜单并将其设置为活动状态.