From 21f92ce7aac6c6b12d507e2bf92dfc3cad297327 Mon Sep 17 00:00:00 2001 From: Jeroen Suurd Date: Tue, 24 Mar 2015 08:39:43 -0700 Subject: [PATCH 1/3] Added check if components metadata is null to prevent NullReferenceException if the component has no metadata --- .../Sdl.Web.Templating/Templates/ResolveRichText.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content-management/Sdl.Web.Templating/Templates/ResolveRichText.cs b/content-management/Sdl.Web.Templating/Templates/ResolveRichText.cs index b306d6d..358b4de 100644 --- a/content-management/Sdl.Web.Templating/Templates/ResolveRichText.cs +++ b/content-management/Sdl.Web.Templating/Templates/ResolveRichText.cs @@ -69,7 +69,7 @@ private string ResolveXhtml(string input) { Component comp = (Component)Engine.GetObject(uri); // resolve youtube video - if (comp != null) + if (comp != null && comp.Metadata != null) { ItemFields fields = new ItemFields(comp.Metadata, comp.MetadataSchema); ProcessFields(fields, link); From 8fbc04af2de9d5431f46e9a4509d156b48bf280d Mon Sep 17 00:00:00 2001 From: Jeroen Suurd Date: Tue, 24 Mar 2015 08:51:56 -0700 Subject: [PATCH 2/3] Only strip the URL if it has the default extension to support external URL's in redirects --- .../Sdl.Web.Common/Models/Navigation/SitemapItem.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/web-application/Sdl.Web.Common/Models/Navigation/SitemapItem.cs b/web-application/Sdl.Web.Common/Models/Navigation/SitemapItem.cs index af0e7de..bd0f4e4 100644 --- a/web-application/Sdl.Web.Common/Models/Navigation/SitemapItem.cs +++ b/web-application/Sdl.Web.Common/Models/Navigation/SitemapItem.cs @@ -6,6 +6,9 @@ namespace Sdl.Web.Common.Models { public class SitemapItem : EntityBase { + //TODO: Make this configurable since its dependend on framework implementation + private const string DefaultExtension = ".html"; + private string _url; public SitemapItem() @@ -29,7 +32,7 @@ public string Url private static string ProcessUrl(string value) { - return Path.HasExtension(value) ? value.Substring(0, value.Length - Path.GetExtension(value).Length) : value; + return Path.HasExtension(value) && DefaultExtension.Equals(Path.GetExtension(value)) ? value.Substring(0, value.Length - Path.GetExtension(value).Length) : value; } public string Type { get; set; } From 38cc8d369fced0634ce69d48d4483c8ecc1a25bf Mon Sep 17 00:00:00 2001 From: Jeroen Suurd Date: Wed, 22 Jul 2015 11:00:50 -0700 Subject: [PATCH 3/3] Also strip the forward slash when resolved link is default page for consistency --- web-application/Sdl.Web.DD4T/Mapping/DD4TContentResolver.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/web-application/Sdl.Web.DD4T/Mapping/DD4TContentResolver.cs b/web-application/Sdl.Web.DD4T/Mapping/DD4TContentResolver.cs index bd9f4fe..ea66661 100644 --- a/web-application/Sdl.Web.DD4T/Mapping/DD4TContentResolver.cs +++ b/web-application/Sdl.Web.DD4T/Mapping/DD4TContentResolver.cs @@ -62,9 +62,11 @@ public virtual string ResolveLink(object linkData, object resolveInstruction = n if (url!=null && url.EndsWith(DefaultExtension)) { url = url.Substring(0, url.Length - DefaultExtension.Length); - if (url.EndsWith("/" + DefaultExtensionLessPageName)) + // Also strip the forward slash + var defaultPageNamePart = "/" + DefaultExtensionLessPageName; + if (url.EndsWith(defaultPageNamePart)) { - url = url.Substring(0, url.Length - DefaultExtensionLessPageName.Length); + url = url.Substring(0, url.Length - defaultPageNamePart.Length); } } }