2017-05-31 4 views
0

Eh bien, je fais mon propre module, et cherche à créer une zone imbriquée avec des enfants. Au moment où je crée mon propre nid commeZones imbriquées Magnolia

<div id="feedGroup"> 
    [@cms.area name="example"/] 
    [@cms.area name="feed"/] 
</div> 

Un de mes domaines:

@Area("example") 
    @AvailableComponentClasses({Example.class}) 
    public static class ExampleArea { 

     @RequestMapping("/main/example") 
     public String render() { 
      return "pages/areas/example.ftl"; 
     } 
    } 

Mon exemple FTL:

[@cms.component content=component/] 

Mon flux de FTL:

[#list components as component] 
    [@cms.component content=component/] 
[/#list] 

Ce que je voulais faire (après cela link):

@Area("feed") 
@Controller 
@AvailableComponentClasses({ContentFeed.class}) 
public static class ContentFeedArea { 

    @Area("example") 
    @AvailableComponentClasses({Example.class}) 
    public static class ExampleArea { 

     @RequestMapping("/main/example") 
     public String render() { 
      return "pages/areas/example.ftl"; 
     } 
    } 

    @RequestMapping("/main/contentFeed") 
    public String render() { 
     return "pages/areas/contentFeed.ftl"; 
    } 
} 

Il me donne l'erreur: Le paramètre « contenu » a été adoptée, mais pas ou mal spécifié. Quelqu'un peut-il m'éclairer ou me guider correctement?

Répondre

0

La zone IIRC ne peut pas avoir de zone imbriquée car il s'agit d'enfants immédiats.

Pour obtenir le résultat souhaité:

  • définir la zone supérieure comme zone monocomposant (peut-être que le composant même généré automatiquement de sorte qu'il est toujours) et
  • dans le composant défini ci-dessus, définir la imbriquée zone que vous voulez.
0

Le problème est que vous avez défini des zones imbriquées uniquement dans votre contrôleur. Vous devez également les imbriquer dans les modèles:

<div id="feedGroup"> 
    [@cms.area name="feed"/] 
</div> 

Contenu de pages/areas/contentFeed.ftl:

<div> 
    [@cms.area name="example"/]  
</div> 

Le modèle pages/areas/example.ftl devrait être:

[#list components as component] 
    [@cms.component content=component/] 
[/#list]