Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 23/03/2017 12:45:09

nicolasbrunet
Guest
From: Cergy
Registered: 26/08/2013
Posts: 48
Website

Remontée de contenu sur plusieurs sites dans un template ?

Bonjour,
Sur ma page d'accueil, j'ai une remontée de contenu paramétrée dans le template, par exemple, pour afficher les contenus qui ont une étiquette "agenda"

<xsl:if test="/cms/inputData/Model/home-agenda/content">
<div class="agenda">
    <h2><i18n:text i18n:key="SKIN_INDEX_TEMPLATE_AGENDA_TITLE" i18n:catalogue="skin.{$skin}"/></h2>
        <div class="list-agenda">
            <ul class="media-list">
            <xsl:for-each select="/cms/inputData/Model/home-agenda/content">
                <li class="media">
                    <xsl:copy-of select="html/body/node()"/>
                </li>
            </xsl:for-each>
</ul>

avec un filtre

<filters>
    <filter id="home-agenda" target="content">
        <context type="current-site" lang="current"/>
        <content-types>
            <type id="org.ametys.plugins.news.Content.news" />
        </content-types>
        <tags>
            <tag key="AGENDA_ACCUEIL"/>
        </tags>
        <view>home-agenda</view>
        <max-result>3</max-result>
        <mask-orphan>true</mask-orphan>
        <sort-information>
            <sort metadataId="start-date" ascending="true"/>
        </sort-information>  
        <metadata condition="OR">
            <metadata id="start-date" type="date" operator="gte">today</metadata>
            <metadata id="end-date" type="date" operator="gte">today</metadata>
        </metadata>
    </filter>
</filters>

Si je souhaite faire remonter les contenus qui sont sur plusieurs sites, avec la même étiquette, quel paramètre faut-il utiliser ?

Last edited by nicolasbrunet (23/03/2017 13:06:30)


Webmestre de l'université de Cergy-Pontoise

Offline

#2 23/03/2017 14:54:11

Laurence Aumeunier
Expert Team
Registered: 10/08/2010
Posts: 154

Re: Remontée de contenu sur plusieurs sites dans un template ?

Bonjour,

Pour le contexte de recherche il y a 4 possibilités :





Dans le filtre statique, pour tous les sites il faut donc mettre <context type="all-sites" lang="current"/>.
Par contre il n'est pas possible de lister des sites en particulier.

Doc wiki :


Laurence Aumeunier
Ametys Expert

Offline

#3 23/03/2017 15:12:37

nicolasbrunet
Guest
From: Cergy
Registered: 26/08/2013
Posts: 48
Website

Re: Remontée de contenu sur plusieurs sites dans un template ?

Merci. Je note dans ce cas de figure.
Mais lorsque l'on fait "appel" à une étiquette dans un template, comme par exemple :

<xsl:template name="acces">
        <xsl:if test="/cms/inputData/sitemap//page[@PLUGIN_TAGS_ACCES and not(@sitemap:invisible = 'true')]">
        <div class="acces">
            <xsl:for-each select="/cms/inputData/sitemap//page[@PLUGIN_TAGS_ACCES and not(@sitemap:invisible = 'true')]">
        <a class="btn btn-default" href="{@sitemap:path}.html">
            <xsl:value-of select="@sitemap:title"/>
        </a>
         </xsl:for-each>
    </div>
    </xsl:if>
</xsl:template>

est-ce que le test :

<xsl:if test="/cms/inputData/sitemap//page[@PLUGIN_TAGS_ACCES and not(@sitemap:invisible = 'true')]">

recherche dans le site courant ou dans tous les sites ?


Webmestre de l'université de Cergy-Pontoise

Offline

#4 23/03/2017 15:25:11

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Remontée de contenu sur plusieurs sites dans un template ?

Bonjour,

le SitemapInputData (/cms/inputData/sitemap) ne renvoie qu'une *partie* des pages du site courant et dans la langue courante uniquement. C'est à utiliser avec parcimonie.

Sinon, il existe ametys:findPagesIdsByTag () qui recherche une page étiquetée.


Raphael Franchet
Expert Ametys

Offline

#5 23/03/2017 15:28:16

nicolasbrunet
Guest
From: Cergy
Registered: 26/08/2013
Posts: 48
Website

Re: Remontée de contenu sur plusieurs sites dans un template ?

Raphaël Franchet wrote:

Bonjour,

le SitemapInputData (/cms/inputData/sitemap) ne renvoie qu'une *partie* des pages du site courant et dans la langue courante uniquement. C'est à utiliser avec parcimonie.

Sinon, il existe ametys:findPagesIdsByTag () qui recherche une page étiquetée.

Et pour un contenu ?


Webmestre de l'université de Cergy-Pontoise

Offline

#6 23/03/2017 15:49:08

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Remontée de contenu sur plusieurs sites dans un template ?

Non il n'y a pas d'équivalent autre que le filtre.
Là je répondais juste à votre dernier point qui cherchait des étiquettes sur une page.


Raphael Franchet
Expert Ametys

Offline

#7 29/03/2017 11:09:40

nicolasbrunet
Guest
From: Cergy
Registered: 26/08/2013
Posts: 48
Website

Re: Remontée de contenu sur plusieurs sites dans un template ?

Bonjour,

J'ai effectué des tests sur une étiquette de charte commune à plusieurs sites, en modifiant le filtre sur <context type="all-sites" lang="current"/> et en effet, pour cela ça fonctionne sans problème.

Mon problème est sur le service de remontées de contenus.
Dans mon site, j'ai par exemple des pages dans lesquelles j'ai paramétré des remontées de contenus sur une étiquette (ici, non définie dans la charte, mais créée dans le back-office d' Ametys), par exemple  avec une étiquette dont l'id est "ACTU_UNIVERSITE"

Dans un autre site, j'ai mis ce même identifiant d'étiquette (ACTU_UNIVERSITE) dans les tags de la charte graphique.

Malheureusement, lorsque dans mon site initial, je veux modifier les paramètres du service de remontée de contenus, je ne peux pas choisir cette étiquette "commune"... comment faire alors pour facilement afficher des remontées de contenus avec des étiquettes communes à plusieurs sites ?

Merci de votre aide.

Last edited by nicolasbrunet (29/03/2017 11:59:18)


Webmestre de l'université de Cergy-Pontoise

Offline

#8 29/03/2017 14:34:09

Laurence Aumeunier
Expert Team
Registered: 10/08/2010
Posts: 154

Re: Remontée de contenu sur plusieurs sites dans un template ?

Pour avoir des étiquettes communes à tous les sites, il faut les déclarer de manière statique, dans un plugin.xml


Laurence Aumeunier
Ametys Expert

Offline

#9 29/03/2017 15:47:30

nicolasbrunet
Guest
From: Cergy
Registered: 26/08/2013
Posts: 48
Website

Re: Remontée de contenu sur plusieurs sites dans un template ?

Laurence Aumeunier wrote:

Pour avoir des étiquettes communes à tous les sites, il faut les déclarer de manière statique, dans un plugin.xml

Merci, mais les informations sur le wiki sont plus que limitées... honnêtement, sans un expert "confirmé" Ametys, je ne vois pas comment faire...  sad

Last edited by nicolasbrunet (30/03/2017 10:11:21)


Webmestre de l'université de Cergy-Pontoise

Offline

Board footer

Powered by FluxBB