Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
using System.Linq;
using System.Web.Configuration;
using Umbraco.Web.Routing;
namespace Moriyama.Core.Routing.ContentFinders
/// <summary>
/// A content finder which looks for content items which are children of an Umbraco Hidden Folder.
/// </summary>
public class UmbracoHiddenFolderChildrenContentFinder : ContentFinderByNiceUrl
public override bool TryFindContent(PublishedContentRequest contentRequest)
var umbracoHiddenFolderAlias = WebConfigurationManager.AppSettings["UmbracoHiddenFolderAlias"] ?? "umbracoHiddenFolder";
// We are using XPath to find any page which is a descendant of an Umbraco Hidden Folder
// It is using the alias of the Umbraco Hidden Folder and searching by the urlName for the content item
var urlName = contentRequest.Uri.Segments.Last();
var xPathQuery = "/descendant::" + umbracoHiddenFolderAlias + "/*[@urlName='" + urlName + "']";
var node = contentRequest.RoutingContext.UmbracoContext.ContentCache.GetSingleByXPath(xPathQuery);
if (node != null && node.ContentType.Alias != umbracoHiddenFolderAlias)
contentRequest.PublishedContent = node;
return true;
return false;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment