Αν κάνετε απόδοση μιας λίστας στοιχείων περιεχομένου σε μια διάταξη περιεχομένου από το δικό σας ερώτημα, μπορείτε να δημιουργήσετε έναν δεσμό σε μια σελίδα λεπτομερειών για ένα στοιχείο περιεχομένου. Μπορείτε να χρησιμοποιήσετε το 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.