From 61284f7d6c6f1b3f4d1493232572ec1ead1670ac Mon Sep 17 00:00:00 2001 From: Christopher Jennings Date: Wed, 19 Jul 2017 13:09:20 -0400 Subject: [PATCH] Add new identical layouts module --- .../Kentico.KInspector.Modules.csproj | 4 ++ .../Content/IdenticalTemplateLayoutsModule.cs | 37 +++++++++++++++++++ .../IdenticalTemplateLayoutsModule.sql | 11 ++++++ 3 files changed, 52 insertions(+) create mode 100644 KInspector.Modules/Modules/Content/IdenticalTemplateLayoutsModule.cs create mode 100644 KInspector.Modules/Scripts/IdenticalTemplateLayoutsModule.sql diff --git a/KInspector.Modules/Kentico.KInspector.Modules.csproj b/KInspector.Modules/Kentico.KInspector.Modules.csproj index 468d8f39..6b7e49e3 100644 --- a/KInspector.Modules/Kentico.KInspector.Modules.csproj +++ b/KInspector.Modules/Kentico.KInspector.Modules.csproj @@ -115,6 +115,7 @@ + @@ -251,6 +252,9 @@ Always + + Always + Always diff --git a/KInspector.Modules/Modules/Content/IdenticalTemplateLayoutsModule.cs b/KInspector.Modules/Modules/Content/IdenticalTemplateLayoutsModule.cs new file mode 100644 index 00000000..156c864b --- /dev/null +++ b/KInspector.Modules/Modules/Content/IdenticalTemplateLayoutsModule.cs @@ -0,0 +1,37 @@ +using System; +using System.Data; +using System.Data.SqlClient; +using System.IO; +using System.Linq; +using System.Xml.Serialization; +using Kentico.KInspector.Core; + +namespace Kentico.KInspector.Modules +{ + public class IdenticalTemplateLayoutsModule : IModule + { + public ModuleMetadata GetModuleMetadata() + { + return new ModuleMetadata + { + Name = "Templates with identical layouts", + SupportedVersions = new[] { + new Version("10.0") + }, + Comment = @"Returns the list of templates with identical custom layouts (whitespace sensitive).", + }; + } + + + public ModuleResults GetResults(IInstanceInfo instanceInfo) + { + var dbService = instanceInfo.DBService; + var identicalTemplateLayouts = dbService.ExecuteAndGetTableFromFile("IdenticalTemplateLayoutsModule.sql"); + + return new ModuleResults + { + Result = identicalTemplateLayouts + }; + } + } +} diff --git a/KInspector.Modules/Scripts/IdenticalTemplateLayoutsModule.sql b/KInspector.Modules/Scripts/IdenticalTemplateLayoutsModule.sql new file mode 100644 index 00000000..93bfb9ff --- /dev/null +++ b/KInspector.Modules/Scripts/IdenticalTemplateLayoutsModule.sql @@ -0,0 +1,11 @@ +SELECT + CodeNames = STUFF( + (SELECT ', ' + PageTemplateCodeName + FROM CMS_PageTemplate b + WHERE b.PageTemplateLayout = a.PageTemplateLayout + FOR XML PATH('')), 1, 2, ''), + a.PageTemplateLayout + FROM CMS_PageTemplate a + WHERE a.PageTemplateLayout is not NULL AND a.PageTemplateLayoutID is NULL + GROUP BY a.PageTemplateLayout + HAVING COUNT(*) > 1 \ No newline at end of file