Skip to content

Instantly share code, notes, and snippets.

@ps-team
Created October 27, 2017 08:09
Show Gist options
  • Save ps-team/86ba0a2b54557c1b751b61f248c45e97 to your computer and use it in GitHub Desktop.
Save ps-team/86ba0a2b54557c1b751b61f248c45e97 to your computer and use it in GitHub Desktop.
Example showing the best way to get node by legacy Content and Folder Ids, it is recommended to put this in App_Code and use this one class throughout as this functionality uses CMS_API and this will be deprecated soon.
@using Contensis.Framework.Web;
@using CMS_API.Navigation;
@functions {
class NodeLookup {
public ContentNode GetWebPage(int webPageId) {
var navigationProvider = NavigationProviderFactory.GetNavigationProvider(NavigationProviderType.Xml);
var navigationItem = navigationProvider.GetNavigationWebpage(webPageId);
if (navigationItem == null) return null;
var nodeFactory = new NodeFactory();
return nodeFactory.LoadById(navigationItem.NodeId) as ContentNode;
}
public string GetWebPagePath(int webPageId) {
var navigationProvider = NavigationProviderFactory.GetNavigationProvider(NavigationProviderType.Xml);
var navigationItem = navigationProvider.GetNavigationWebpage(webPageId);
if (navigationItem == null) return null;
return navigationItem.Uri.LocalPath;
}
public ContentNode GetContent(int contentId) {
var navigationProvider = NavigationProviderFactory.GetNavigationProvider(NavigationProviderType.Xml);
var navigationItem = navigationProvider.GetNavigationContent(contentId);
if (navigationItem == null) return null;
var nodeFactory = new NodeFactory();
return nodeFactory.LoadById(navigationItem.NodeId) as ContentNode;
}
public string GetContentPath(int contentId) {
var navigationProvider = NavigationProviderFactory.GetNavigationProvider(NavigationProviderType.Xml);
var navigationItem = navigationProvider.GetNavigationContent(contentId);
if (navigationItem == null) return null;
return navigationItem.Uri.LocalPath;
}
public FolderNode GetFolder(int folderId) {
var navigationProvider = NavigationProviderFactory.GetNavigationProvider(NavigationProviderType.Xml);
var navigationItem = navigationProvider.GetNavigationFolder(folderId);
if (navigationItem == null) return null;
var nodeFactory = new NodeFactory();
return nodeFactory.LoadById(navigationItem.NodeId) as FolderNode;
}
public string GetFolderPath(int folderId) {
var navigationProvider = NavigationProviderFactory.GetNavigationProvider(NavigationProviderType.Xml);
var navigationItem = navigationProvider.GetNavigationFolder(folderId);
if (navigationItem == null) return null;
return navigationItem.Uri.LocalPath;
}
}
}
@{
var lookup = new NodeLookup();
var page = lookup.GetWebPage(7144);
var image = lookup.GetContent(46720);
var folder = lookup.GetFolder(3702);
}
Page: @page.Path
Page Path: @lookup.GetWebPagePath(7144)
Image: @image.Path
Image Path: @lookup.GetContentPath(46720)
Folder: @folder.Path
Folder Path: @lookup.GetFolderPath(3702)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment