Contenus (content-types-default.xml et content-types-views-default.xml)


Le fichier de configuration des contenus d'un template permet de définir ce que chaque zone peut ou ne peut pas contenir comme types de contenu et vue.

Par défaut, il est possible d'insérer tous les types de contenus disponibles dans toutes les zones en utilisant toutes leurs vues. Cependant, il n'est pas toujours recommandé de pouvoir tout faire à n'importe quel endroit, notamment pour des problèmes de limitation de la charte graphique.

Il existe deux modes de filtrage des types contenus et vues dans les zones : par inclusion ou par exclusion.

Le fichier "content-types-default.xml"

Ce fichier peut être situé dans plusieurs endroits : du plus prioritaire au moins prioritaire :

Dans cms/skins/[skinName]/template/[templateName]/conf/content-types-default.xml pour un gabait donné :

<?xml version="1.0" encoding="UTF-8"?>
<content-types>
   <zones>
       <zone id="default" mode="exclude"></zone>
       <zone id="sidebar" mode="include">
           <content-type id="org.ametys.plugins.news.Content.news"/>
           <content-type id="org.ametys.plugins.faq.Content.faq"/>
       </zone>
   </zones>
</content-types>

Ce fichier d'exemple autorise l'insertion de tous les types de contenus pour la zone default et uniquement des actualités et les FAQ dans la zone sidebar.

Mais le fichier  peut être aussi valable pour toutes les zones du template pour autoriser uniquement ces deux types de contenus dans toutes les zones.

<?xml version="1.0" encoding="UTF-8"?>
<content-types>
   <template mode="include">
       <content-type id="org.ametys.plugins.news.Content.news"/>
       <content-type id="org.ametys.plugins.faq.Content.faq"/>
   </template>
</content-types>

Les balises <template> et <zones> sont cumulables. Si une zone n'est pas présente dans la balise <zones> la valeur par défaut sera dans <template>.

Dans cms/skins/[skinName]/conf/content-types-default.xml pour toute une charte graphique :

<?xml version="1.0" encoding="UTF-8"?>
<content-types mode="exclude">
   <content-type id="org.ametys.plugins.news.Content.news"/>
   <content-type id="org.ametys.plugins.faq.Content.faq"/>
</content-types>

Dans cms/WEB-INF/param/content-types-default.xml pour toute l'application :

<?xml version="1.0" encoding="UTF-8"?>
<content-types mode="exclude">
   <content-type id="org.ametys.plugins.news.Content.news"/>
   <content-type id="org.ametys.plugins.faq.Content.faq"/>
</content-types>

Le fichier "content-types-views-default.xml"

A partir d'Ametys 4.8

Ce fichier sert à définir les vues utilisables pour chaque type de contenu. Par défaut, toutes les vues (non privées) sont utilisables.

Ce fichier peut être situé dans plusieurs endroits : du plus prioritaire au moins prioritaire :

Dans cms/skins/[skinName]/template/[templateName]/conf/content-types-views-default.xml pour un gabait donné :

<?xml version="1.0" encoding="UTF-8"?>
<content-types>
   <zones>
     <zone id="secondary">
        <content-type id="org.ametys.plugins.news.Content.news">
            <views mode="include">
                <view name="main"/>
              </views>
          </content-type>
     </zone>
   </zones>
</content-types>

Ce fichier d'exemple n'autorise que la vue "main" pour les actualités dans la zone secondaire. Les autres types de contenus ne sont pas limités.

Attention, ce fichier ne limite pas les types de contenus autorisés mais bien les vues.
Dans cet exemple, rien n'indique qu'Actualités est un type de contenu autorisé. Consulter le haut de cette page pour limiter/autoriser un type de contenu.

Mais le fichier  peut être aussi valable pour toutes les zones du template pour limiter les vues dans toutes les zones.

<?xml version="1.0" encoding="UTF-8"?>
<content-types>
 <template>
   <content-type id="org.ametys.plugins.news.Content.news">
            <views mode="include">
                <view name="main"/>
              </views>
     </content-type>
  </template>
</content-types>

Les balises <template> et <zones> sont cumulables. Si une zone n'est pas présente dans la balise <zones> la valeur par défaut sera dans <template>.

Dans cms/skins/[skinName]/conf/content-types-views-default.xml pour toute une charte graphique :

<?xml version="1.0" encoding="UTF-8"?>
<content-types>
   <content-type id="org.ametys.plugins.news.Content.news">
            <views mode="include">
                <view name="main"/>
              </views>
     </content-type>
</content-types>

Dans cms/WEB-INF/param/content-types-views-default.xml pour toute l'application :

<?xml version="1.0" encoding="UTF-8"?>
<content-types>
   <content-type id="org.ametys.plugins.news.Content.news">
            <views mode="include">
                <view name="main"/>
              </views>
     </content-type>
</content-types>

La restriction de vue ne s'applique pas aux contenus déjà insérés, y compris si ils sont déplacés de zone (par glisser-déposer par exemple)

Le "-default" dans les noms de fichier indique le type de site crée. Default est le type de tous les sites normaux.

Back to top