Skip to content

Commit

Permalink
Merge pull request #3523 from 2sic/develop
Browse files Browse the repository at this point in the history
18.06
  • Loading branch information
iJungleboy authored Dec 6, 2024
2 parents 6bac773 + c9ae140 commit a31a837
Show file tree
Hide file tree
Showing 15 changed files with 143 additions and 65 deletions.
2 changes: 1 addition & 1 deletion Src/Dnn/ToSic.Sxc.Dnn/DnnPackageBuilder/ReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<dl>
<dt>v18.05.00</dt>
<dt>v18.06.00</dt>
<dd>Part of module installation is the deletion of unneeded data. In an infrequent case, You could get a
timeout exception. This is not a show-stopper. Simply reload the page so DNN can continue clean-up
until all unnecessary data is deleted and the module is installed.</dd>
Expand Down
8 changes: 4 additions & 4 deletions Src/Dnn/ToSic.Sxc.Dnn/DnnPackageBuilder/ToSic.Sxc.Dnn.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="2SexyContent" type="Module" version="18.05.00">
<package name="2SexyContent" type="Module" version="18.06.00">
<friendlyName> Content</friendlyName>
<description>2sxc is a DNN Extension to create attractive and designed content. It solves the common problem, allowing the web designer to create designed templates for different content elements, so that the user must only fill in fields and receive a perfectly designed and animated output.</description>
<iconFile>icon.png</iconFile>
Expand Down Expand Up @@ -74,7 +74,7 @@
<script type="UnInstall">
<path>SqlDataProvider</path>
<name>Uninstall.SqlDataProvider</name>
<version>18.05.00</version>
<version>18.06.00</version>
</script>
</scripts>
</component>
Expand Down Expand Up @@ -125,7 +125,7 @@
<businessControllerClass>ToSic.SexyContent.DnnBusinessController</businessControllerClass>
<desktopModuleID>[DESKTOPMODULEID]</desktopModuleID>
<!-- This must contain all versions which have upgrade-code. By convention, we also add the main entry versions, even if no upgrade code exists for them -->
<upgradeVersionsList>01.00.00,08.11.00,08.12.00,09.00.00,10.00.00,11.00.00,12.00.00,13.00.00,13.01.00,13.04.00,14.00.00,15.00.00,15.02.00,16.00.00,16.07.01,17.00.00,18.00.00,18.05.00</upgradeVersionsList>
<upgradeVersionsList>01.00.00,08.11.00,08.12.00,09.00.00,10.00.00,11.00.00,12.00.00,13.00.00,13.01.00,13.04.00,14.00.00,15.00.00,15.02.00,16.00.00,16.07.01,17.00.00,18.00.00,18.06.00</upgradeVersionsList>
</attributes>
</eventMessage>
</component>
Expand Down Expand Up @@ -632,7 +632,7 @@
</components>
</package>

<package name="2SexyContent-App" type="Module" version="18.05.00">
<package name="2SexyContent-App" type="Module" version="18.06.00">
<friendlyName> App</friendlyName>
<description>2sxc App is an extension that allows to install and use a 2sxc app.</description>
<iconFile>icon-app.png</iconFile>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<package>
<metadata>
<id>ToSic.Sxc.Oqtane.Install</id>
<version>18.05.00</version>
<version>18.06.00</version>
<authors>2sic internet solutions GmbH, Switzerland</authors>
<owners>2sic internet solutions GmbH, Switzerland</owners>
<title>2sxc CMS and Meta-Module for Oqtane</title>
Expand Down
5 changes: 4 additions & 1 deletion Src/Oqtane/ToSic.Sxc.Oqt.Server/Context/OqtPage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ private Alias GetAlias(int siteId)
}

// caching is disabled because in Blazor Interactive the query string parameters are changed after the page is created
public override IParameters Parameters => new Parameters(OriginalParameters.GetOverrideParams(httpBlazor.Value?.QueryStringParams));
public override IParameters Parameters => new Parameters
{
Nvc = OriginalParameters.GetOverrideParams(httpBlazor.Value?.QueryStringParams)
};

}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ public void ParamsToStringIdSort()

[TestMethod]
public void ParamsToStringSortId()
=> AreEqual(SortDescendingId27, ParametersSortDescendingId27().ToString());
=> AreEqual(SortDescendingId27, ParametersSortDescendingId27().Prioritize("sort").ToString());

[TestMethod]
public void ParamsToStringSortIdDifferentCasing()
=> AreEqual(SortDescendingId27, ParametersSortDescendingId27().Prioritize("SORT").ToString());

#endregion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ namespace ToSic.Sxc.Tests.LinksAndImages
{
internal static class ParametersTestExtensions
{
public static IParameters NewParameters(NameValueCollection originals) => new Parameters(originals);
public static IParameters NewParameters(NameValueCollection originals) => new Parameters { Nvc = originals };

public static IParameters AsParameters(this NameValueCollection originals) => new Parameters(originals);
public static IParameters AsParameters(this NameValueCollection originals) => new Parameters { Nvc = originals };

public static IParameters AsParameters(this string originals) => UrlHelpers.ParseQueryString(originals).AsParameters();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,10 +90,13 @@ public void VaryByParameters()
public void VaryByParametersOneNamed(string names, string testName)
{
var expected = MainPrefix + "VaryByParameters=A=AVal".ToLowerInvariant();
var pars = new Parameters(new()
var pars = new Parameters
{
{ "A", "AVal" }
});
Nvc = new()
{
{ "A", "AVal" }
}
};
var specs = GetForMain().VaryByParameters(pars, names: names);
AreEqual(expected, specs.Key, testName);
}
Expand All @@ -103,12 +106,15 @@ public void VaryByParametersOneNamed(string names, string testName)
public void VaryByParametersWithNamesAll()
{
var expected = MainPrefix + "VaryByParameters=A=AVal&B=BVal&C=CVal".ToLowerInvariant();
var pars = new Parameters(new()
var pars = new Parameters
{
{ "A", "AVal" },
{ "B", "BVal" },
{ "C", "CVal" }
});
Nvc = new()
{
{ "A", "AVal" },
{ "B", "BVal" },
{ "C", "CVal" }
}
};
var specs = GetForMain().VaryByParameters(pars, names: "A,B,c");
AreEqual(expected, specs.Key);
}
Expand All @@ -117,12 +123,15 @@ public void VaryByParametersWithNamesAll()
public void VaryByParametersWithNamesSome()
{
var expected = MainPrefix + "VaryByParameters=A=AVal&C=CVal".ToLowerInvariant();
var pars = new Parameters(new()
var pars = new Parameters
{
{ "A", "AVal" },
{ "B", "BVal" },
{ "C", "CVal" }
});
Nvc = new()
{
{ "A", "AVal" },
{ "B", "BVal" },
{ "C", "CVal" }
}
};
var specs = GetForMain().VaryByParameters(pars, names: "A,c");
AreEqual(expected, specs.Key);
}
Expand All @@ -131,12 +140,15 @@ public void VaryByParametersWithNamesSome()
public void VaryByParametersBlankSameAsNone()
{
var expected = MainPrefix + "VaryByParameters=A=AVal&C=CVal".ToLowerInvariant();
var pars = new Parameters(new()
var pars = new Parameters
{
{ "A", "AVal" },
{ "B", "" },
{ "C", "CVal" }
});
Nvc = new()
{
{ "A", "AVal" },
{ "B", "" },
{ "C", "CVal" }
}
};
var specsFiltered = GetForMain().VaryByParameters(pars, names: "A,c");
var specsAll = GetForMain().VaryByParameters(pars);
AreEqual(expected, specsFiltered.Key);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class LightSpeedUrlParamsTest: TestBaseEavCore

internal static (bool CachingAllowed, string Extension) GetUrlParamsTac(LightSpeedDecorator lsConfig,
string pageParameters, ILog log = null, bool usePiggyBack = true)
=> GetUrlParamsTac(lsConfig, new Parameters(Parse(pageParameters)), log, usePiggyBack);
=> GetUrlParamsTac(lsConfig, new Parameters { Nvc = Parse(pageParameters) }, log, usePiggyBack);

internal static (bool CachingAllowed, string Extension) GetUrlParamsTac(LightSpeedDecorator lsConfig,
IParameters pageParameters = null, ILog log = null, bool usePiggyBack = true)
Expand Down
27 changes: 27 additions & 0 deletions Src/Sxc/ToSic.Sxc/Context/CmsContext/IParameters.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ namespace ToSic.Sxc.Context;
/// <remarks>
/// * uses the [](xref:NetCode.Conventions.Functional)
/// * Added typed accessors such as `Int(...)` etc. in v16.03 implementing <see cref="ITyped"/>
/// * Made order of parameters automatically sort in 18.06 because of crawler-load issues
/// * Added `Prioritize` in v18.06
/// </remarks>
[PublicApi]
public interface IParameters: IReadOnlyDictionary<string, string>, ITyped
Expand Down Expand Up @@ -213,4 +215,29 @@ public interface IParameters: IReadOnlyDictionary<string, string>, ITyped
// ^^^ this is added, because both Dictionary and ITyped have this method, so it could be unclear

#endregion

/// <summary>
/// Prioritize the order of parameters.
/// This allows you to order the parameters in a certain way, which can be important for some systems.
///
/// Remember:
/// 1. If a parameter doesn't exist, it still won't appear in the list
/// 2. If you order the parameters, this can have an unexpected effect on the amount of URLs you generate, possibly causing high server load when crawlers visit.
/// </summary>
/// <remarks>
/// New in v18.06.
/// </remarks>
/// <param name="fields">CSV of names to prioritize, in the specified order</param>
/// <returns></returns>
IParameters Prioritize(string fields = default);

/// <summary>
/// Flush all parameters and start anew.
/// Note that it does preserve other settings like prioritization.
/// </summary>
/// <remarks>
/// New v18.06
/// </remarks>
/// <returns></returns>
IParameters Flush();
}
3 changes: 1 addition & 2 deletions Src/Sxc/ToSic.Sxc/Context/Internal/Page/Page.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ public IPage Init(int id)

public int Id { get; private set; } = Eav.Constants.NullId;

public virtual IParameters Parameters => _parameters ??= new Parameters(OriginalParameters.GetOverrideParams(httpLazy.Value?.QueryStringParams));
private IParameters _parameters;
public virtual IParameters Parameters => field ??= new Parameters { Nvc = OriginalParameters.GetOverrideParams(httpLazy.Value?.QueryStringParams) };


public string Url { get; set; } = Eav.Constants.UrlNotInitialized;
Expand Down
2 changes: 1 addition & 1 deletion Src/Sxc/ToSic.Sxc/Context/Internal/Page/PageUnknown.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@ public IPage Init(int id)

public string Url => Eav.Constants.UrlNotInitialized;

public IParameters Parameters => new Parameters(null);
public IParameters Parameters => new Parameters();

}
Loading

0 comments on commit a31a837

Please sign in to comment.