सबसे आम तरीका Tridion में किसी भी नेविगेशन उत्पन्न करने के लिए बस एक सी # पर संरचना समूह और पेज आधारित टेम्प्लेट में उत्पन्न करने के लिए है।
उदाहरण के लिए एक ब्रेडक्रम्ब निशान को आसानी से एक टेम्पलेट के भीतर से उत्पन्न किया जा सकता है (या तो एक सी # टुकड़ा या एक वर्ग ITemplate
को लागू करने) कुछ इस तरह से:
var pageDocument = package.GetByType(ContentType.Page).GetAsXmlDocument();
var current = new Page(pageDocument.DocumentElement, engine.GetSession());
var breadcrumb = page.Title;
while (current.OrganizationalItem != null)
{
current = current.OrganizationalItem;
breadcrumb = current.Title + " > " + breadcrumb;
}
package.PushItem("breadcrumb",
package.CreateStringItem(ContentType.Text, breadcrumb));
ऊपर टुकड़ा वास्तव में केवल कैसे को दर्शाता है संरचना समूहों के पदानुक्रम ऊपर की ओर नेविगेट करें। आपको प्रत्येक संरचना समूह को एक लिंक के रूप में बनाना होगा, शायद PublishUrl
प्रत्येक StructureGroup
की संपत्ति को देखकर।
मुझे पता है कि आप एक ब्रेडक्रंब ट्रेल के बारे में नहीं पूछ रहे थे, तो आपका बाएंनाव जैसा दिखता है। लेकिन सभी नेविगेशन तत्वों के लिए दृष्टिकोण समान है: अपने ITemplate में TOM.NET का उपयोग करके प्रासंगिक पेज और संरचना समूह को पार करें और उस से अपना नेविगेशन HTML उत्पन्न करें।
वर्तमान StructureGroup में सभी पृष्ठों की सूची प्राप्त करने के लिए (और मौजूदा एक निशान), मैं कुछ इस तरह उम्मीद थी:
var pageDocument = package.GetByType(ContentType.Page).GetAsXmlDocument();
var current = new Page(pageDocument.DocumentElement, engine.GetSession());
var sg = (StructureGroup) page.OrganizationalItem;
string result = "<ul>";
foreach (var page in sg.GetItems())
{
result += (page.Id != current.Id) ? "<li>" : "<li class='selected'>";
result += page.Title;
result += "</li>";
}
result += "</ul>";
package.PushItem("siblings", package.CreateHtmlItem(result));
कृपया यह भी देखना this great example from Nick where he generates an entire sitemap। यह अंत में आपको क्या चाहिए, इसके करीब है, लेकिन निश्चित रूप से बहुत अधिक कोड है (यहां पुन: उत्पन्न करने के लिए बहुत अधिक)। अल्बर्ट ने his experience with this approach and mentions the alternatives में से कुछ साझा किए।
स्रोत
2012-05-26 11:59:58