You are not logged in.
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
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