0
在symfony中CMF我喜欢创建以下:Symfony的CMF显示从容器块中的所有静态内容
- 创建称为内部
- 一个菜单项创建名为insideBlock
- 容器块创建多个静态内容,他们应该有父容器块
如果用户点击菜单里面的所有项目都应该显示静态内容,这些内容应该是父项的内部块
我没有弄清楚如何做到这一点。 当然,我不喜欢为内部编程功能,因为我希望其他菜单的行为方式相同。
我能够菜单项链接到一个静态的内容,并显示该单的内容,但只要我选择容器块,菜单项消失......
编辑
我已经做到了这一点:
在我的控制器增加一个功能是这样的:
/** * @Route("/{_locale}/empfang", name="empfang_display_all") */ public function empfangAction(Request $request) { $documentManager = $this->get('doctrine_phpcr')->getManager(); $content = $documentManager->find(null, '/cms/content/empfangsgebiet'); return $this->render('empfang/empfang.html.twig', [ 'contents' => $content ]); }
- 加入作为路线菜单项empfang_display_all
- 静态内容组父到容器
- 在视图
``{%组索引= 0%}
{% for child in children %}
{% if (child.name != "banner") and (isInstanceof(child, 'ContainerBlock') == false) %}
<div class="{{ cycle(section1, index) }}">
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="top-title">
<div class="row">
<div class="col-sm-10 col-sm-offset-1">
{% if isInstanceof(child, 'DemoSeoContent') %}
{{ child.body|raw }}
{% else %}
{{ sonata_block_render({ 'name': child.id }) }}
{% endif %}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% set index = index + 1 %}
{% endif %}
{% endfor%}
我现在想让下面的线条更具动感
$content = $documentManager->find(null, '/cms/content/empfangsgebiet');
优选的我想有这样的:
/**
* @Route("/{_locale}/empfang/{path}", name="empfang_display_all")
*/
public function empfangAction(Request $request, $path)
{
$content = $documentManager->find(null, $path);
}
嗨dbu,我这样做的同时。我创建了一个容器,将每个内容添加到这个容器,然后添加一个自定义路由的菜单项,在我的控制器中创建一个函数来显示这个特定容器的子项......但是当我添加一个带有子项的新菜单时,我将不得不再次创建一个自定义函数,我宁愿有一个通用函数来调用......但从菜单项中,我没有找到为这个路由名称添加参数......是否有可能这样做? – schurtertom
您可以使用菜单属性中的routeParameters属性来调整路线。 – dbu
但我建议创建一个“容器”文档,这是一种“页面”,以便可以有自己的路线。那么您只需创建这样一个容器页面,在url上定义url和自定义模板,然后添加块,并创建一个指向该容器页面的菜单项。 – dbu