diff --git a/src/Configuration/Constants.cs b/src/Configuration/Constants.cs
index 3db32e9..cd0a588 100644
--- a/src/Configuration/Constants.cs
+++ b/src/Configuration/Constants.cs
@@ -28,7 +28,7 @@ public class DefaultValues
public static readonly string[] DefaultAliases = new string[] {};
- public const string HiddenSegment = "#";
+ public const string HiddenSegment = "/";
public const int WhileLoopMaxCount = 50;
}
diff --git a/src/Our.Umbraco.Skipper.csproj b/src/Our.Umbraco.Skipper.csproj
index 093e009..a3f31f5 100644
--- a/src/Our.Umbraco.Skipper.csproj
+++ b/src/Our.Umbraco.Skipper.csproj
@@ -7,7 +7,7 @@
Umbraco.Skipper
An Umbraco package that lets you specify nodes and document types that will be excluded from Umbraco's URL generation.
umbraco plugin package
- 1.1.0
+ 1.1.1
ZioTino
Our.Umbraco.Skipper
LICENSE.md
diff --git a/src/SkipperUrlProvider.cs b/src/SkipperUrlProvider.cs
index 67225f9..261259b 100644
--- a/src/SkipperUrlProvider.cs
+++ b/src/SkipperUrlProvider.cs
@@ -1,6 +1,5 @@
using System;
using System.Linq;
-using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Umbraco.Cms.Core.Configuration.Models;
@@ -16,24 +15,27 @@ namespace Our.Umbraco.Skipper
{
public class SkipperUrlProvider : DefaultUrlProvider
{
- private readonly IConfiguration _configuration;
-
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
private readonly ISkipperConfiguration _skipperConfiguration;
+ private readonly GlobalSettings _globalSettings;
+
+ private readonly RequestHandlerSettings _requestSettings;
+
public SkipperUrlProvider(
IOptions requestSettings,
+ IOptions globalSettings,
ILogger logger,
ISiteDomainMapper siteDomainMapper,
IUmbracoContextAccessor umbracoContextAccessor,
UriUtility uriUtility,
- IConfiguration configuration,
ISkipperConfiguration skipperConfiguration)
: base(requestSettings, logger, siteDomainMapper, umbracoContextAccessor, uriUtility)
{
+ _requestSettings = requestSettings.Value;
+ _globalSettings = globalSettings.Value;
_umbracoContextAccessor = umbracoContextAccessor;
- _configuration = configuration;
_skipperConfiguration = skipperConfiguration;
}
@@ -88,13 +90,12 @@ public override UrlInfo GetUrl(IPublishedContent content, UrlMode mode, string c
private UrlInfo BuildUrl(IPublishedContent content, Uri current, UrlMode mode, string culture)
{
- if (!_umbracoContextAccessor.TryGetUmbracoContext(out IUmbracoContext umbracoContext))
- {
- throw new ArgumentNullException("UmbracoContext");
- }
+ IUmbracoContext umbracoContext = _umbracoContextAccessor.GetRequiredUmbracoContext();
- bool hideTopLevelNode = _configuration.GetValue("Umbraco:CMS:Global:HideTopLevelNodeFromPath", false);
- string[] pathIds = content.Path.Split(',').Skip(hideTopLevelNode ? 2 : 1).Reverse().ToArray();
+ string[] pathIds = content.Path.Split(',')
+ .Skip(_globalSettings.HideTopLevelNodeFromPath ? 2 : 1)
+ .Reverse()
+ .ToArray();
// Starting from the base Url generated from DefaultUrlProvider
UrlInfo url = base.GetUrl(content, mode, culture, current);
@@ -140,10 +141,8 @@ private UrlInfo BuildUrl(IPublishedContent content, Uri current, UrlMode mode, s
index++;
}
- bool isTrailingSlashActive = _configuration.GetValue("Umbraco:CMS:RequestHandler:AddTrailingSlash", true);
string finalUrl = string.Join("/", parts.Reverse().Where(x => !string.IsNullOrEmpty(x)).ToArray());
-
- finalUrl = isTrailingSlashActive
+ finalUrl = _requestSettings.AddTrailingSlash
? finalUrl.EnsureEndsWith("/").EnsureStartsWith("/")
: finalUrl.EnsureStartsWith("/");