Dans cmf symfony j'aime créer:Symfony CMF afficher tous les contenus statiques de bloc conteneur
- créer un élément de menu appelé à l'intérieur
- créer un bloc de conteneur appelé insideBlock
- créer plusieurs contenus statiques , ils devraient avoir le parent conteneur bloquer
si un utilisateur clique sur le menu à l'intérieur, tous les éléments de contenu statique doivent être affichés, qui ont pour parent l'intérieur Bloc
Je n'ai pas compris comment faire cela. Bien sûr, je n'aime pas programmer une fonction juste pour l'intérieur, puisque je voudrais que les autres menus se comportent de la même manière.
Je suis en mesure de relier un élément de menu à un contenu statique et afficher ce contenu unique, mais dès que je sélectionne le bloc conteneur, l'élément de menu disparait ...
EDIT
Je l'ai fait:
dans mon contrôleur ajouter une fonction comme ceci:
/** * @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 ]); }
- ajouté en tant que trajet vers l'élément de menu empfang_display_all
- parent de consigne du contenu statique dans le récipient
- dans la vue
`` {% set index = 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%}
Je voudrais maintenant avoir la ligne suivante plus dynamique
$content = $documentManager->find(null, '/cms/content/empfangsgebiet');
Préférable Je voudrais avoir comme ceci:
/**
* @Route("/{_locale}/empfang/{path}", name="empfang_display_all")
*/
public function empfangAction(Request $request, $path)
{
$content = $documentManager->find(null, $path);
}
salut dbu, je l'ai fait en attendant. J'ai créé un conteneur, ajouté chaque contenu à ce conteneur, puis ajouté un élément de menu avec routage personnalisé, créé une fonction dans mon contrôleur pour afficher les enfants de ce conteneur particulier ... mais quand j'ajoute un nouveau menu avec des enfants, Je devrais à nouveau créer une fonction personnalisée, je préférerais avoir une fonction générale à appeler ... mais à partir de l'élément de menu, je n'ai pas pensé à ajouter des arguments à ce nom de route ... est-il possible de le faire? – schurtertom
vous pouvez utiliser l'attribut routeParameters dans les attributs de menu pour modifier un itinéraire. – dbu
mais je recommande de créer un document "conteneur" qui est une sorte de "page" afin qu'il puisse avoir son propre itinéraire. Ensuite, vous créez simplement une telle page de conteneur, définissez l'URL et le modèle personnalisé sur l'URL, ajoutez vos blocs et créez un élément de menu pointant vers cette page de conteneur. – dbu