From 59645f6b0674b22762e75a7c4d0073c047350c6b Mon Sep 17 00:00:00 2001 From: danpros Date: Wed, 13 Mar 2024 22:55:24 +0700 Subject: [PATCH] Add title formats settings --- config/config.ini.example | 16 ++++ system/admin/views/config-metatags.html.php | 136 ++++++++++++++++++++++++++++ system/configList.json | 12 +++ system/includes/functions.php | 55 ++++++++--- 4 files changed, 208 insertions(+), 11 deletions(-) diff --git a/config/config.ini.example b/config/config.ini.example index 734cfb6..e511567 100644 --- a/config/config.ini.example +++ b/config/config.ini.example @@ -164,6 +164,22 @@ toc.automatic = "false" ; Automatically insert the TOC after x paragraph toc.position = "1" +; Title formats +home.title.format = "%blog_title% - %blog_tagline%" +post.title.format = "%post_title% - %blog_title%" +page.title.format = "%page_title% - %blog_title%" +category.title.format = "%category_title% - %blog_title%" +tag.title.format = "%tag_title% - %blog_title%" +archive.title.format = "%archive_title% - %blog_title%" +search.title.format = "%search_title% - %blog_title%" +type.title.format = "%type_title% - %blog_title%" +profile.title.format = "%author_name% - %blog_title%" +blog.title.format = "Blog - %blog_title%" +default.title.format = "%page_title% - %blog_title%" + +; Default image for Open Graph +default.image = "" + ; Set the theme here views.root = "themes/twentysixteen" diff --git a/system/admin/views/config-metatags.html.php b/system/admin/views/config-metatags.html.php index f7cd3cd..48800a8 100644 --- a/system/admin/views/config-metatags.html.php +++ b/system/admin/views/config-metatags.html.php @@ -5,6 +5,52 @@ $array = array(); if (file_exists($config_file)) { $array = parse_ini_file($config_file, true); } + +$homeFormat = config('home.title.format'); +if (empty($homeFormat)) { + $homeFormat = '%blog_title% - %blog_tagline%'; +} +$postFormat = config('post.title.format'); +if (empty($postFormat)) { + $postFormat = '%post_title% - %blog_title%'; +} +$pageFormat = config('page.title.format'); +if (empty($pageFormat)) { + $pageFormat = '%page_title% - %blog_title%'; +} +$categoryFormat = config('category.title.format'); +if (empty($categoryFormat)) { + $categoryFormat = '%category_title% - %blog_title%'; +} +$tagFormat = config('tag.title.format'); +if (empty($tagFormat)) { + $tagFormat = '%tag_title% - %blog_title%'; +} +$searchFormat = config('search.title.format'); +if (empty($searchFormat)) { + $searchFormat = '%search_title% - %blog_title%'; +} +$archiveFormat = config('archive.title.format'); +if (empty($archiveFormat)) { + $archiveFormat = '%archive_title% - %blog_title%'; +} +$typeFormat = config('type.title.format'); +if (empty($typeFormat)) { + $typeFormat = '%type_title% - %blog_title%'; +} +$blogFormat = config('blog.title.format'); +if (empty($blogFormat)) { + $blogFormat = 'Blog - %blog_title%'; +} +$profileFormat = config('profile.title.format'); +if (empty($profileFormat)) { + $profileFormat = '%author_name% - %blog_title%'; +} +$defaultFormat = config('default.title.format'); +if (empty($defaultFormat)) { + $defaultFormat = '%page_title% - %blog_title%'; +} + ?>


@@ -21,6 +67,96 @@ if (file_exists($config_file)) {

+
+ +
+ +
+
+
+

Title formats

+
+ +
+ +
+ +

Available shortcode: %blog_title% %blog_tagline% %blog_description%

+
+
+
+ +
+ +

Available shortcode: %blog_title% %blog_tagline% %blog_description% %post_title% %post_description% %post_category% %post_tag% %post_author% %post_type%

+
+
+
+ +
+ +

Available shortcode: %blog_title% %blog_tagline% %blog_description% %page_title% %page_description%

+
+
+
+ +
+ +

Available shortcode: %blog_title% %blog_tagline% %blog_description% %category_title% %category_description%

+
+
+
+ +
+ +

Available shortcode: %blog_title% %blog_tagline% %blog_description% %tag_title% %tag_description%

+
+
+
+ +
+ +

Available shortcode: %blog_title% %blog_tagline% %blog_description% %archive_title% %archive_description%

+
+
+
+ +
+ +

Available shortcode: %blog_title% %blog_tagline% %blog_description% %search_title% %search_description%

+
+
+
+ +
+ +

Available shortcode: %blog_title% %blog_tagline% %blog_description% %type_title% %type_description%

+
+
+
+ +
+ +

Available shortcode: %blog_title% %blog_tagline% %blog_description% %author_name% %author_description%

+
+
+
+ +
+ +

Available shortcode: %blog_title% %blog_tagline% %blog_description%

+
+
+
+ +
+ +

Available shortcode: %blog_title% %blog_tagline% %blog_description% %page_title%

+
+
+
+

Miscellaneous

+
diff --git a/system/configList.json b/system/configList.json index e1052b1..4d3f07e 100644 --- a/system/configList.json +++ b/system/configList.json @@ -72,6 +72,18 @@ "toc.style", "toc.automatic", "toc.position", + "home.title.format", + "post.title.format", + "page.title.format", + "category.title.format", + "tag.title.format", + "archive.title.format", + "search.title.format", + "type.title.format", + "profile.title.format", + "blog.title.format", + "default.title.format", + "default.image", "views.root", "views.layout" ] \ No newline at end of file diff --git a/system/includes/functions.php b/system/includes/functions.php index 8d386f0..6e7d723 100644 --- a/system/includes/functions.php +++ b/system/includes/functions.php @@ -3714,57 +3714,90 @@ function automatic_toc($content, $id) function generate_title($type = null, $object = null) { if ($type == 'is_front') { - $format = '%blog_title% - %blog_tagline%'; + $format = config('home.title.format'); + if (empty($format)) { + $format = '%blog_title% - %blog_tagline%'; + } $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description()); $var = strtr($format, $var_map); return strip_tags($var); } elseif ($type == 'is_post') { - $format = '%post_title% - %blog_title%'; + $format = config('post.title.format'); + if (empty($format)) { + $format = '%post_title% - %blog_title%'; + } $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%post_title%' => $object->title, '%post_description%' => $object->description, '%post_category%' => $object->categoryTitle, '%post_tag%' => $object->tag, '%post_author%' => $object->authorName, '%post_type%' => ucfirst($object->type)); $var = strtr($format, $var_map); return strip_tags($var); } elseif ($type == 'is_page' || $type == 'is_subpage') { - $format = '%page_title% - %blog_title%'; + $format = config('page.title.format'); + if (empty($format)) { + $format = '%page_title% - %blog_title%'; + } $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%page_title%' => $object->title, '%page_description%' => $object->description); $var = strtr($format, $var_map); return strip_tags($var); } elseif ($type == 'is_profile') { - $format = '%author_name% - %blog_title%'; + $format = config('profile.title.format'); + if (empty($format)) { + $format = '%author_name% - %blog_title%'; + } $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%author_name%' => $object->title, '%author_description%' => $object->description); $var = strtr($format, $var_map); return strip_tags($var); } elseif ($type == 'is_category') { - $format = '%category_title% - %blog_title%'; + $format = config('category.title.format'); + if (empty($format)) { + $format = '%category_title% - %blog_title%'; + } $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%category_title%' => $object->title, '%category_description%' => $object->description); $var = strtr($format, $var_map); return strip_tags($var); } elseif ($type == 'is_tag') { - $format = '%tag_title% - %blog_title%'; + $format = config('tag.title.format'); + if (empty($format)) { + $format = '%tag_title% - %blog_title%'; + } $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%tag_title%' => $object->title, '%tag_description%' => $object->description); $var = strtr($format, $var_map); return strip_tags($var); } elseif ($type == 'is_archive') { - $format = '%archive_title% - %blog_title%'; + $format = config('archive.title.format'); + if (empty($format)) { + $format = '%archive_title% - %blog_title%'; + } $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%archive_title%' => $object->title, '%archive_description%' => $object->description); $var = strtr($format, $var_map); return strip_tags($var); } elseif ($type == 'is_search') { - $format = '%search_title% - %blog_title%'; + $format = config('search.title.format'); + if (empty($format)) { + $format = '%search_title% - %blog_title%'; + } $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%search_title%' => $object->title, '%search_description%' => $object->description); $var = strtr($format, $var_map); return strip_tags($var); } elseif ($type == 'is_type') { - $format = '%type_title% - %blog_title%'; + $format = config('type.title.format'); + if (empty($format)) { + $format = '%type_title% - %blog_title%'; + } $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%type_title%' => $object->title, '%type_description%' => $object->description); $var = strtr($format, $var_map); return strip_tags($var); } elseif ($type == 'is_blog') { - $format = 'Blog - %blog_title%'; + $format = config('blog.title.format'); + if (empty($format)) { + $format = 'Blog - %blog_title%'; + } $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description()); $var = strtr($format, $var_map); return strip_tags($var); } elseif ($type == 'is_default') { - $format = '%page_title% - %blog_title%'; + $format = config('default.title.format'); + if (empty($format)) { + $format = '%page_title% - %blog_title%'; + } $var_map = array('%blog_title%' => blog_title(), '%blog_tagline%' => blog_tagline(), '%blog_description%' => blog_description(), '%page_title%' => $object); $var = strtr($format, $var_map); return strip_tags($var);