Si vous affichez une liste d'éléments de contenu dans une présentation de contenu à partir de votre propre requête, vous pouvez créer un lien vers une page de détails pour un élément de contenu. Vous pouvez utiliser l'API SCSRenderAPI.getPageLinkData
du kit SDK Sites pour générer une URL de page Détails du site.
La propriété detailPageId
est l'ID de la page de détails sélectionnée dans l'élément de contenu ou la liste de contenu. Si la valeur n'a pas été définie, la valeur renvoyée est la première page de SiteStructureMap
dont la propriété isDetailPage
est définie.
Pour accéder à cette propriété, vous pouvez utiliser le kit SDK Sites. Cette option est disponible uniquement lorsque la présentation de contenu est utilisée pour un site Oracle Content Management. Vous pouvez y accéder uniquement via scsData, qui est transmis en tant qu'argument lors de la création de la présentation de contenu. Par exemple :
scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) { console.log(detailPageId);});
Une fois que vous disposez de detailPageId
, vous pouvez vous en servir pour créer le lien vers la page de détails.
SCSRenderAPI dispose d'une fonction, getPageLinkData()
, qui comprend un élément pageId
et des options supplémentaires, et qui crée l'URL requise vers la page en transmettant les options. La signature de cette fonction est la suivante :
SCSRenderAPI.getPageLinkData(pageId, options);
Elle comprend les paramètres suivants :
pageId : identique à detailPageId
renvoyé par la propriété detailPageId
du kit SDK Sites.
options :
contentType
contentId
contentName
La valeur renvoyée est un objet avec ces propriétés :
hideInNavigation
href
href
L'exemple suivant rassemble le tout :
scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) { var pageDetails = SCSRenderAPI.getPageLinkData(pageId, { 'contentType': contentType, 'contentId': contentId, 'contentName': contentItemData.slug || contentItemData.name }); // get the URL to the page console.log(pageDetails.href); });
Ce qui serait imprimé comme suit : "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}
"
Si pageId
n'est pas une page de détails, les valeurs de contenu ne sont pas ajoutées à l'URL.
Reportez-vous à Kits SDK Oracle Content Management.