Η ιεραρχία μιας τοποθεσίας αποθηκεύεται στο αρχείο structure.json
που σχετίζεται με την τοποθεσία. Η ιεραρχία φορτώνεται στη μνήμη και γίνεται διαθέσιμη στο περιβάλλον σελίδας ως το αντικείμενο SCS.structureMap
.
Το Εργαλείο δημιουργίας τοποθεσιών διαβάζει το αρχείο structure.json
για να αποσπάσει τη δενδρική δομή της τοποθεσίας στο Εργαλείο δημιουργίας τοποθεσιών. Το αρχείο structure.json
θα περιέχει κώδικα για τις σελίδες τοποθεσίας. Για παράδειγμα:
"pages": [ { "id": 100, "name": "Home", "parentId": null, "pageUrl": "index.html", "hideInNavigation": false, "linkUrl": "", "linkTarget": "", "children": [ 200, 300, 400, 500 ], "overrideUrl":false } { "id":200, "name":"Products" "parentId":100, "hideInNavigation":false, "LinkUrl":"", "linkTarget":"", "children":[ 204, 205], "overrideUrl":false } { "id":204, "name":"Hiking Boots", "parentId":200, "pageUrl":"products/hiking_boots.html", "hideInNavigation":false, "linkUrl":"", "linkTarger":"", "children":[], "overrideUrl":false }
Ο κώδικας JavaScript πλοήγησης είναι απαραίτητο εντός των σελίδων τοποθεσίας να διαβάζει επίσης αυτήν τη δομή και να αποσπάσει τους δεσμούς πλοήγησης για την τοποθεσία. Τα πρότυπα που παρέχονται με το Oracle Content Management περιλαμβάνουν δείγματα αρχείων JavaScript πλοήγησης που δείχνουν τον τρόπο με τον οποίο λειτουργεί.
Το αρχείο topnav.js
που χρησιμοποιείται σε ορισμένα θέματα τα οποία παρέχονται με το Oracle Content Management αποτελεί ένα παράδειγμα του τρόπου χρήσης του αντικειμένου SCS.structureMap
μαζί με τις κλήσεις API απόδοσης, όπως το SCSRenderAPI.getPageLinkData
, για να διατρέξετε τη δομή της τοποθεσίας και να αποσπάσετε τη σήμανση HTML που απαιτείται για την απόδοση των μενού πλοήγησης στη σελίδα. Ακολουθεί κώδικας από το δείγμα αρχείου topnav.js
:
function renderNode(id, navBar) { if (id >= 0) { var navNode = SCS.structureMap[id]; if( navNode && ( ( typeof navNode.hideInNavigation != "boolean" ) || ( navNode.hideInNavigation === false ) ) ) { var navItem = document.createElement("li"); var navLink = document.createElement("a"); var navText = document.createTextNode(navNode.name); var linkData = SCSRenderAPI.getPageLinkData(navNode.id) || {}; if( linkData.href ) { navLink.href = linkData.href; } if( linkData.target ) { navLink.target = linkData.target; } navLink.appendChild(navText); navItem.appendChild(navLink); if (navNode.children.length > 0) { var navSub = document.createElement("ul"); for (var c = 0; c < navNode.children.length; c++) { renderNode(navNode.children[c], navSub); } navItem.appendChild(navSub); } navBar.appendChild(navItem); } } } function renderNav() { var topnav = document.getElementById("topnav"); // expected to be an empty <div> if (topnav) { var navBar = document.createElement("ul"); renderNode(SCS.navigationRoot, navBar); topnav.appendChild(navBar); } } // Must wait for all our script to be ready... if (document.addEventListener) { document.addEventListener('scsrenderstart', renderNav, false); } else if (document.attachEvent) { document.documentElement.scsrenderstart = 0; document.documentElement.attachEvent("onpropertychange", function(event) { if (event && (event.propertyName == "scsrenderstart")) { renderNav(); } } ); }
Μπορείτε να χρησιμοποιήσετε κλήσεις API απόδοσης για τη δημιουργία δεσμών πλοήγησης που θα λειτουργούν στις καταστάσεις Επεξεργασίας και Προεπισκόπησης της τοποθεσίας σας και σε μια δημοσιευμένη online τοποθεσία. Ανατρέξτε στην ενότητα Αναφορά API απόδοσης.
Είναι καλή πρακτική να τοποθετήσετε πληροφορίες πλοήγησης σε ένα αρχείο JavaScript, όπως το topnav.js
. Το αρχείο JavaScript συνήθως είναι αποθηκευμένο στον φάκελο /assets/js/
του θέματος, όπως μπορείτε να δείτε στα δείγματα θεμάτων που παρέχονται με το Oracle Content Management.