Bir sitenin hiyerarşisi site ile ilişkili structure.json
dosyasına saklanır. Hiyerarşi belleğe yüklendi ve sayfa içeriğinde SCS.structureMap
nesnesi olarak kullanılabilir hale getirildi.
Site Oluşturucu, structure.json
dosyasını okuyarak Site Oluşturucuda site ağacını çizer. structure.json
dosyası site sayfalarına ilişkin kodu içerir. Örneğin:
"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 }
Gezinme JavaScript kodu site için gezinme bağlantılarını belirlemek ve yapıyı okumak için site sayfalarında gereklidir. Oracle Content Management ile sağlanan şablonlar bunun nasıl çalıştığını gösteren örnek gezinme JavaScript dosyalarını içerir.
Site yapısını dikkatle incelemek ve sayfada gezinme menülerini görüntülemek için gerekli HTML biçimlendirmesini belirlemek üzere, Oracle Content Management tarafından sağlanan temaların bazılarında kullanılan topnav.js
dosyası SCSRenderAPI.getPageLinkData
gibi Görüntüleme Uygulama Programı Arabirimi çağrılarının yanı sıra SCS.structureMap
nesnesinin de nasıl kullanılabileceğinin bir örneğidir. Örnek topnav.js
dosyasından kod:
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(); } } ); }
Sitenizin Düzenleme ve Önizleme modlarında ve yayımlanmış bir çevrim içi sitede faaliyette bulunacak gezinme bağlantılarını oluşturmak için Görüntüleme Uygulama Programı Arabirimi çağrılarını kullanabilirsiniz. Bkz. Uygulama Programı Arabirimi Referansını Görüntüleme.
Gezinme bilgilerinin topnav.js
gibi bir JavaScript dosyasına konulması doğru bir uygulamadır. Oracle Content Management ile sağlanan örnek temalarda görebileceğiniz gibi JavaScript dosyası genel olarak temanın /assets/js/
klasöründe saklanır.