Δημιουργία διεύθυνσης τοποθεσίας σελίδας λεπτομερειών τοποθεσίας με ένα API

Αν κάνετε απόδοση μιας λίστας στοιχείων περιεχομένου σε μια διάταξη περιεχομένου από το δικό σας ερώτημα, μπορείτε να δημιουργήσετε έναν δεσμό σε μια σελίδα λεπτομερειών για ένα στοιχείο περιεχομένου. Μπορείτε να χρησιμοποιήσετε το API SCSRenderAPI.getPageLinkData του SDK Τοποθεσιών για να δημιουργήσετε μια διεύθυνση τοποθεσίας σελίδας Λεπτομερειών τοποθεσίας.

Η ιδιότητα detailPageId είναι το αναγνωριστικό της σελίδας λεπτομερειών που έχει επιλεγεί στο στοιχείο περιεχομένου ή στη λίστα περιεχομένου. Αν η τιμή δεν είχε οριστεί, η τιμή που επιστρέφεται είναι η πρώτη σελίδα στο SiteStructureMap που έχει καθορισμένη την ιδιότητα isDetailPage.

Για πρόσβαση σε αυτήν την ιδιότητα, μπορείτε να χρησιμοποιήσετε το SDK Τοποθεσιών. Αυτό είναι διαθέσιμο μόνο όταν η διάταξη περιεχομένου χρησιμοποιείται για μια τοποθεσία του Oracle Content Management. Μπορείτε να το προσπελάσετε μέσω του scsData, το οποίο μεταβιβάζεται ως ένα από τα ορίσματα όταν δημιουργείται η διάταξη περιεχομένου. Για παράδειγμα:

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

Όταν έχετε πλέον το detailPageId, μπορείτε να το χρησιμοποιήσετε για να κατασκευάσετε τον δεσμό στη σελίδα "Λεπτομέρειες".

Το SCSRenderAPI έχει μια συνάρτηση, getPageLinkData(), που λαμβάνει ένα pageId και πρόσθετες επιλογές και κατασκευάζει την απαιτούμενη διεύθυνση τοποθεσίας στη σελίδα μεταβιβάζοντας τις επιλογές. Ακολουθεί η υπογραφή για αυτήν τη συνάρτηση:

SCSRenderAPI.getPageLinkData(pageId,
      options);

Έχει τις ακόλουθες παραμέτρους:

  • pageId: Το ίδιο με το detailPageId που επιστρέφεται από την ιδιότητα detailPageId του SDK Τοποθεσιών.

  • επιλογές:

    • contentType

    • contentId

    • contentName

Η τιμή επιστροφής είναι ένα αντικείμενο με αυτές τις ιδιότητες:

  • hideInNavigation

  • href

  • href

Το επόμενο παράδειγμα συνοψίζει όλα αυτά:

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

Αυτό θα εκτυπωθεί ως: "/sites/{site}/{detailPageName}/{contentType}/{contentId}/{contentSlug}"

Αν το pageId δεν είναι μια σελίδα λεπτομερειών, τότε οι τιμές περιεχομένου δεν προστίθενται στη διεύθυνση τοποθεσίας.

Ανατρέξτε στο Oracle Content Management SDK.