Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 26/09/2023 21:39:24

jpnoel88
Guest
Registered: 13/07/2023
Posts: 2

afficher un champ personnalisé de type "file" (pièce jointe)

Bonjour, dans Ametys 4.4.9 j'ai ajouté un champ personnalisé de type "file" (pièce jointe) "apprenticeshipCalendar" au niveau des formations  pour les contenus de type Program et subProgram (Formations et Parcours). Il se situe à la fin de l'onglet "stage et alternance".
Je cherche à afficher ce champ dans le service "search". J'ai donc surchargé le service "search" via les fichiers \skins\ma_skin\services\web\pages\services\search\search-default.xsl et \skins\ma_skin\services\web\pages\services\search\search-default\results\search-results.xsl. Je cherche à afficher de mon  champ "apprenticeshipCalendat" via le code ci-dessous dans le fichier \skins\ma_skin\services\web\pages\services\search\search-default\results\search-results.xsl


<xsl:template name="hit-apprenticeship-calendar">
        <li class="ametys-summary-list__item">
            <xsl:variable name="odf-apprenticeshipCalendar-id" select="content/apprenticeshipCalendar/@id"/>
            <xsl:variable name="odf-apprenticeshipCalendar-name" select="content/apprenticeshipCalendar/@name"/>

           
            <xsl:value-of select="$odf-apprenticeshipCalendar-name"/>
            <!-- <xsl:copy-of select="$odf-apprenticeshipCalendar-name"/> -->
           
            <xsl:variable name="pdfapprenticeshipCalendarHref" select="concat($uri-prefix, '/plugins/odf-web/', $site, '/_content/', $odf-apprenticeshipCalendar-name, '/', filename:filterName(title), '.pdf')"/>
            <a class="ametys-summary-list__link" href="{url:encodePath($pdfapprenticeshipCalendarHref)}">
                <span class="ametys-summary-list__item-icon iconsiae iae-icon-calendar"></span>
                <span class="txt-download"><i18n:text i18n:key="SKIN_SERVICE_ODF_SEARCH_APRENTICES_CALENDAR_DOWNLOAD" i18n:catalogue="skin.{$skin}"/></span>
            </a>
        </li>
    </xsl:template>


Le path content/apprenticeshipCalendar ne semble pas bon. Comment afficher mon champ "apprenticeshipCalendar" dans mon service "search" ?
Merci.

Offline

#2 29/09/2023 10:32:03

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

Re: afficher un champ personnalisé de type "file" (pièce jointe)

Bonjour,

Pour pouvoir afficher un champ supplémentaire dans les résultats de la recherche, il faut déjà ajouter ce champ à la vue (metadata-set) du modèle "index".

Ensuite vous pourrez  accéder et résoudre son url de la façon suivante (exemple simplifié avec un simple lien)

<xsl:template name="hit-file">
        <xsl:variable name="id" select="content/@id"/>
        <xsl:variable name="file" select="content/apprenticeshipCalendar"/>
        <xsl:if test="$file">
            <a href="{resolver:resolve($file/@type, concat($file/@path, '?contentId=', $id), true())}"><xsl:value-of select="$file/@filename"/></a>
        </xsl:if>
    </xsl:template>

La namespace associé au "resolver" est xmlns:resolver="org.ametys.cms.transformation.xslt.ResolveURIComponent"


Laurence Aumeunier
Ametys Expert

Offline

Board footer

Powered by FluxBB