Skip to content

Commit

Permalink
fluentcms#2139 add PageHead component (fluentcms#2140)
Browse files Browse the repository at this point in the history
Co-authored-by: Amir Pournasserian <[email protected]>
  • Loading branch information
TheHadiAhmadi and pournasserian authored Oct 12, 2024
1 parent 9df88e7 commit a947884
Show file tree
Hide file tree
Showing 11 changed files with 59 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/FluentCMS/Templates/Blank/AdminLayout.head.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="AI based Headless CMS For Blazor community" />
<PageHead fluentcms />
<meta name="author" content="FluentCMS">
<meta name="apple-mobile-web-app-title" content="FluentCMS">
<meta name="application-name" content="FluentCMS">
Expand Down
2 changes: 1 addition & 1 deletion src/FluentCMS/Templates/Blank/DefaultLayout.head.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="AI based Headless CMS For Blazor community" />
<PageHead fluentcms />
<meta name="author" content="FluentCMS">
<meta name="apple-mobile-web-app-title" content="FluentCMS">
<meta name="application-name" content="FluentCMS">
Expand Down
2 changes: 1 addition & 1 deletion src/FluentCMS/Templates/Blank/EditLayout.head.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="AI based Headless CMS For Blazor community" />
<PageHead fluentcms />
<meta name="author" content="FluentCMS">
<meta name="apple-mobile-web-app-title" content="FluentCMS">
<meta name="application-name" content="FluentCMS">
Expand Down
2 changes: 1 addition & 1 deletion src/FluentCMS/Templates/Blank/SingleLayout.head.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="AI based Headless CMS For Blazor community" />
<PageHead fluentcms />
<meta name="author" content="FluentCMS">
<meta name="apple-mobile-web-app-title" content="FluentCMS">
<meta name="application-name" content="FluentCMS">
Expand Down
2 changes: 1 addition & 1 deletion src/FluentCMS/Templates/Default/AdminLayout.head.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="AI based Headless CMS For Blazor community" />
<PageHead fluentcms />
<meta name="author" content="FluentCMS">
<meta name="apple-mobile-web-app-title" content="FluentCMS">
<meta name="application-name" content="FluentCMS">
Expand Down
2 changes: 1 addition & 1 deletion src/FluentCMS/Templates/Default/DefaultLayout.head.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="AI based Headless CMS For Blazor community" />
<PageHead fluentcms />
<meta name="author" content="FluentCMS">
<meta name="apple-mobile-web-app-title" content="FluentCMS">
<meta name="application-name" content="FluentCMS">
Expand Down
2 changes: 1 addition & 1 deletion src/FluentCMS/Templates/Default/EditLayout.head.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="AI based Headless CMS For Blazor community" />
<PageHead fluentcms />
<meta name="author" content="FluentCMS">
<meta name="apple-mobile-web-app-title" content="FluentCMS">
<meta name="application-name" content="FluentCMS">
Expand Down
2 changes: 1 addition & 1 deletion src/FluentCMS/Templates/Default/SingleLayout.head.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="AI based Headless CMS For Blazor community" />
<PageHead fluentcms />
<meta name="author" content="FluentCMS">
<meta name="apple-mobile-web-app-title" content="FluentCMS">
<meta name="application-name" content="FluentCMS">
Expand Down
29 changes: 29 additions & 0 deletions src/Frontend/FluentCMS.Web.UI/Components/PageHead.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
@namespace FluentCMS.Web.UI

<title>@ViewState.Page.Title</title>

<meta name="title" content="@GetSetting("MetaTitle")">
<meta name="description" content="@GetSetting("MetaDescription")">
<meta name="robots" content="@GetSetting("Robots")" />

<meta property="og:title" content="@GetSetting("MetaTitle")" />
<meta property="og:description" content="@GetSetting("MetaDescription")" />
<meta property="og:type" content="@GetSetting("OgType")" />

<meta property="twitter:title" content="@GetSetting("MetaTitle")" />
<meta property="twitter:description" content="@GetSetting("MetaDescription")" />
<meta property="twitter:type" content="@GetSetting("OgType")" />

@* Uncomment if you have images
<!-- <meta property="og:image" content="@GetImageUrl(Site.SocialImage)" /> -->
*@

@if (!string.IsNullOrEmpty(GetSetting("GoogleTagsId")))
{
@((MarkupString)GetGoogleTagsScript())
}

@if (!string.IsNullOrEmpty(GetSetting("Head")))
{
@((MarkupString)GetSetting("Head"))
}
20 changes: 20 additions & 0 deletions src/Frontend/FluentCMS.Web.UI/Components/PageHead.razor.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
namespace FluentCMS.Web.UI;

public partial class PageHead
{
[Inject]
private ViewState ViewState { get; set; } = default!;

private string GetSetting(string key)
{
ViewState.Page.Settings.TryGetValue(key, out var pageValue);
ViewState.Site.Settings.TryGetValue(key, out var siteValue);

return pageValue ?? siteValue ?? string.Empty;
}

private string GetGoogleTagsScript()
{
return $"<script async src=\"https://www.googletagmanager.com/gtag/js?id={GetSetting("GoogleTagsId")}\"></script>\n<script>\n\twindow.dataLayer = window.dataLayer || [];\n\tfunction gtag(){{\n\t\tdataLayer.push(arguments);\n\t}}\ngtag('js', new Date())\ngtag('config', '{GetSetting("GoogleTagsId")}');\n</script>";
}
}
2 changes: 2 additions & 0 deletions src/Shared/ViewState.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ public class SiteViewState
public List<RoleViewState> AdminRoles { get; set; } = [];
public List<RoleViewState> ContributorRoles { get; set; } = [];
public List<RoleViewState> AllRoles { get; set; } = [];
public Dictionary<string, string> Settings { get; set; } = [];
}

public class RoleViewState
Expand Down Expand Up @@ -89,6 +90,7 @@ public class PageViewState
public string Path { get; set; } = string.Empty;
public string FullPath { get; set; } = string.Empty;
public bool Locked { get; set; } = false;
public Dictionary<string, string> Settings { get; set; } = [];
}

public class PluginViewState
Expand Down

0 comments on commit a947884

Please sign in to comment.