Generación de una URL de la página de detalles del sitio con una API

Si va a representar una lista de elementos de contenido en un diseño de contenido desde su propia consulta, puede crear un enlace a una página de detalles para un elemento de contenido. Puede utilizar la API SCSRenderAPI.getPageLinkData del SDK de Sites para generar una página URL de Detalles de sitio.

La propiedad detailPageId es el identificador de la página de detalles seleccionada en el elemento de contenido o en la lista de contenido. Si no se ha definido el valor, el valor devuelto es la primera página de SiteStructureMap que tenga la propiedad isDetailPage definida.

Para acceder a esta propiedad, puede utilizar el SDK de Sites. Este solo está disponible cuando se utiliza el diseño de contenido para un sitio de Oracle Content Management. Solo se puede acceder a él a través de scsData, que se transfiere como uno de los argumentos cuando se crea el diseño de contenido. Por ejemplo:

scsData.SitesSDK.getProperty('detailPageId', function (detailPageId) {   console.log(detailPageId);});

Una vez que tenga el detailPageId, puede utilizarlo para crear el enlace a la página de detalles.

La SCSRenderAPI tiene una función, getPageLinkData(), que incluye un pageId y opciones adicionales, y crea la URL necesaria en la página transfiriendo las opciones. La firma para esta función es la siguiente:

SCSRenderAPI.getPageLinkData(pageId,
      options);

Tiene los siguientes parámetros:

  • identificador de página: el mismo que devolvió detailPageId desde la propiedad detailPageId de los SDK de Sites.

  • opciones:

    • contentType

    • contentId

    • contentName

El valor de retorno es un objeto con las siguientes propiedades:

  • hideInNavigation

  • href

  • href

El siguiente ejemplo une todo lo anterior:

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);
});

Esto se imprimiría como: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}"

Si el pageId no es una página de detalles, los valores de contenido no se agregarán a la URL.

Consulte SDK de Oracle Content Management.