From b9497cbb5685f5145fd1cf63ad1368387a7abcba Mon Sep 17 00:00:00 2001 From: sbwalker Date: Fri, 14 Nov 2025 12:43:40 -0500 Subject: [PATCH] allow module/theme template manifests to have custom names so that they do not conflict with .NET template.json --- .../Controllers/ModuleDefinitionController.cs | 24 ++++++++++--------- Oqtane.Server/Controllers/ThemeController.cs | 5 ++-- ...te.json => exteneral.module.template.json} | 0 ...ate.json => exteneral.theme.template.json} | 0 4 files changed, 16 insertions(+), 13 deletions(-) rename Oqtane.Server/wwwroot/Modules/Templates/External/{template.json => exteneral.module.template.json} (100%) rename Oqtane.Server/wwwroot/Themes/Templates/External/{template.json => exteneral.theme.template.json} (100%) diff --git a/Oqtane.Server/Controllers/ModuleDefinitionController.cs b/Oqtane.Server/Controllers/ModuleDefinitionController.cs index df876829..29195bbe 100644 --- a/Oqtane.Server/Controllers/ModuleDefinitionController.cs +++ b/Oqtane.Server/Controllers/ModuleDefinitionController.cs @@ -1,20 +1,21 @@ +using System; using System.Collections.Generic; -using Microsoft.AspNetCore.Mvc; -using Oqtane.Models; -using Oqtane.Shared; -using Microsoft.AspNetCore.Authorization; +using System.Diagnostics; using System.IO; -using System.Reflection; using System.Linq; +using System.Net; +using System.Reflection; +using System.Text.Json; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.DependencyInjection; using Oqtane.Enums; using Oqtane.Infrastructure; +using Oqtane.Models; using Oqtane.Repository; using Oqtane.Security; -using System; -using Microsoft.Extensions.DependencyInjection; -using System.Text.Json; -using System.Net; +using Oqtane.Shared; namespace Oqtane.Controllers { @@ -271,9 +272,10 @@ namespace Oqtane.Controllers foreach (string directory in Directory.GetDirectories(templatePath)) { string name = directory.Replace(templatePath, ""); - if (System.IO.File.Exists(Path.Combine(directory, "template.json"))) + var manifest = Directory.GetFiles(directory, "*.json"); + if (manifest.Any()) { - var template = JsonSerializer.Deserialize