improvements to page template processing in cases where a page parent and name is specified without a path

This commit is contained in:
sbwalker 2023-06-09 12:33:07 -04:00
parent 5d650bd276
commit a9d871e9af
2 changed files with 18 additions and 7 deletions

View File

@ -319,6 +319,15 @@ namespace Oqtane.Repository
{ {
pages = _pageRepository.GetPages(site.SiteId).ToList(); pages = _pageRepository.GetPages(site.SiteId).ToList();
} }
Page parent = null;
if (string.IsNullOrEmpty(pageTemplate.Path))
{
if (!string.IsNullOrEmpty(pageTemplate.Parent))
{
parent = pages.FirstOrDefault(item => item.Path.ToLower() == pageTemplate.Parent.ToLower());
}
pageTemplate.Path = (parent != null) ? parent.Path + "/" + pageTemplate.Name : pageTemplate.Name;
}
var page = pages.FirstOrDefault(item => item.Path.ToLower() == pageTemplate.Path.ToLower()); var page = pages.FirstOrDefault(item => item.Path.ToLower() == pageTemplate.Path.ToLower());
if (page == null) if (page == null)
{ {
@ -326,17 +335,18 @@ namespace Oqtane.Repository
page.SiteId = site.SiteId; page.SiteId = site.SiteId;
page.Path = pageTemplate.Path.ToLower(); page.Path = pageTemplate.Path.ToLower();
} }
page.Name = (!string.IsNullOrEmpty(pageTemplate.Name)) ? pageTemplate.Name : page.Path; if (string.IsNullOrEmpty(pageTemplate.Parent))
page.Name = (page.Name.Contains("/")) ? page.Name.Substring(page.Name.LastIndexOf("/") + 1) : page.Name;
int? parentid = null;
if (!string.IsNullOrEmpty(pageTemplate.Parent))
{ {
if (pages.Any(item => item.Path.ToLower() == pageTemplate.Parent.ToLower())) if (pageTemplate.Path.Contains("/"))
{ {
parentid = pages.FirstOrDefault(item => item.Path.ToLower() == pageTemplate.Parent.ToLower()).PageId; parent = pages.FirstOrDefault(item => item.Path.ToLower() == pageTemplate.Path.Substring(0, pageTemplate.Path.LastIndexOf("/")));
} }
} }
page.ParentId = parentid; page.ParentId = (parent != null) ? parent.PageId : null;
if (string.IsNullOrEmpty(pageTemplate.Name))
{
page.Name = (pageTemplate.Path.Contains("/")) ? pageTemplate.Path.Substring(pageTemplate.Name.LastIndexOf("/") + 1) : pageTemplate.Path;
}
page.Title = pageTemplate.Title; page.Title = pageTemplate.Title;
page.Order = pageTemplate.Order; page.Order = pageTemplate.Order;
page.Url = pageTemplate.Url; page.Url = pageTemplate.Url;

View File

@ -44,6 +44,7 @@ namespace Oqtane.Models
} }
public string Path { get; set; } public string Path { get; set; }
// note that Parent actually means Parent Path
public string Parent { get; set; } public string Parent { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Title { get; set; } public string Title { get; set; }