From bf0093b56ac160c54d32f5c325aeadc4f76417e1 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Sun, 27 Oct 2024 22:50:02 +0900 Subject: [PATCH] Move most meta tags above the to below it #2419 --- classes/context/Context.class.php | 17 ++++++++--------- classes/display/HTMLDisplayHandler.php | 14 +++++++------- classes/module/ModuleHandler.class.php | 15 ++++++++------- common/tpl/common_layout.html | 9 ++++++++- 4 files changed, 31 insertions(+), 24 deletions(-) diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 1d5dcc37c..e1edbf63c 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -2879,14 +2879,10 @@ class Context { return isset(self::$_instance->meta_tags[$name]) ? self::$_instance->meta_tags[$name]['content'] : null; } - - $ret = array(); - foreach(self::$_instance->meta_tags as $name => $content) + else { - $ret[] = array('name' => $name, 'is_http_equiv' => $content['is_http_equiv'], 'content' => escape($content['content'], false)); + return array_values(self::$_instance->meta_tags); } - - return $ret; } /** @@ -2894,14 +2890,17 @@ class Context * * @param string $name name of meta tag * @param string $content content of meta tag - * @param mixed $is_http_equiv value of http_equiv + * @param bool $is_http_equiv + * @param bool $is_before_title * @return void */ - public static function addMetaTag($name, $content, $is_http_equiv = false) + public static function addMetaTag($name, $content, $is_http_equiv = false, $is_before_title = true) { self::$_instance->meta_tags[$name] = array( + 'name' => $name, + 'content' => escape(self::replaceUserLang($content, true), false), 'is_http_equiv' => (bool)$is_http_equiv, - 'content' => self::replaceUserLang($content, true), + 'is_before_title' => (bool)$is_before_title, ); } diff --git a/classes/display/HTMLDisplayHandler.php b/classes/display/HTMLDisplayHandler.php index 52e5f697d..33dc2fd83 100644 --- a/classes/display/HTMLDisplayHandler.php +++ b/classes/display/HTMLDisplayHandler.php @@ -506,7 +506,7 @@ class HTMLDisplayHandler $description = Context::getMetaTag('description'); } Context::addOpenGraphData('og:description', $description); - Context::addMetaTag('description', $description); + Context::addMetaTag('description', $description, false, false); } // Add metadata about this page. @@ -641,7 +641,7 @@ class HTMLDisplayHandler { if ($tag !== '') { - Context::addOpenGraphData('og:article:tag', $tag, false); + Context::addOpenGraphData('og:article:tag', $tag); } } @@ -663,7 +663,7 @@ class HTMLDisplayHandler // Add author name for articles. if ($page_type === 'article' && $permitted && config('seo.og_use_nick_name')) { - Context::addMetaTag('author', $oDocument->getNickName()); + Context::addMetaTag('author', $oDocument->getNickName(), false, false); Context::addOpenGraphData('og:article:author', $oDocument->getNickName()); } @@ -683,21 +683,21 @@ class HTMLDisplayHandler function _addTwitterMetadata() { $card_type = $this->_image_type === 'document' ? 'summary_large_image' : 'summary'; - Context::addMetaTag('twitter:card', $card_type); + Context::addMetaTag('twitter:card', $card_type, false, false); foreach(Context::getOpenGraphData() as $val) { if ($val['property'] === 'og:title') { - Context::addMetaTag('twitter:title', $val['content']); + Context::addMetaTag('twitter:title', $val['content'], false, false); } if ($val['property'] === 'og:description') { - Context::addMetaTag('twitter:description', $val['content']); + Context::addMetaTag('twitter:description', $val['content'], false, false); } if ($val['property'] === 'og:image' && $this->_image_type === 'document') { - Context::addMetaTag('twitter:image', $val['content']); + Context::addMetaTag('twitter:image', $val['content'], false, false); } } } diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 7d518befa..42615a800 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -693,7 +693,8 @@ class ModuleHandler extends Handler } } - if ($kind === 'admin') { + if ($kind === 'admin') + { Context::addMetaTag('robots', 'noindex'); } @@ -865,29 +866,29 @@ class ModuleHandler extends Handler $module_config = ModuleModel::getModuleConfig('module'); if (!empty($module_info->meta_keywords)) { - Context::addMetaTag('keywords', $module_info->meta_keywords); + Context::addMetaTag('keywords', $module_info->meta_keywords, false, false); } elseif (!empty($site_module_info->settings->meta_keywords)) { - Context::addMetaTag('keywords', $site_module_info->settings->meta_keywords); + Context::addMetaTag('keywords', $site_module_info->settings->meta_keywords, false, false); } elseif (!empty($module_config->meta_keywords)) { - Context::addMetaTag('keywords', $module_config->meta_keywords); + Context::addMetaTag('keywords', $module_config->meta_keywords, false, false); } // Set meta description. if (!empty($module_info->meta_description)) { - Context::addMetaTag('description', $module_info->meta_description); + Context::addMetaTag('description', $module_info->meta_description, false, false); } elseif (!empty($site_module_info->settings->meta_description)) { - Context::addMetaTag('description', $site_module_info->settings->meta_description); + Context::addMetaTag('description', $site_module_info->settings->meta_description, false, false); } elseif (!empty($module_config->meta_description)) { - Context::addMetaTag('description', $module_config->meta_description); + Context::addMetaTag('description', $module_config->meta_description, false, false); } } diff --git a/common/tpl/common_layout.html b/common/tpl/common_layout.html index 04a7e326d..2e5c093dd 100644 --- a/common/tpl/common_layout.html +++ b/common/tpl/common_layout.html @@ -7,11 +7,13 @@ <meta charset="utf-8"> <meta name="generator" content="Rhymix"> <meta name="viewport" content="{{ config('mobile.viewport') ?? HTMLDisplayHandler::DEFAULT_VIEWPORT }}" /> +<meta name="csrf-token" content="{!! \Rhymix\Framework\Session::getGenericToken() !!}" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> @foreach (Context::getMetaTag() as $val) +@if ($val['is_before_title']) <meta http-equiv="{{ $val['name'] }}"|if="$val['is_http_equiv']" name="{{ $val['name'] }}"|if="!$val['is_http_equiv']" content="{{ $val['content'] }}" /> +@endif @endforeach -<meta name="csrf-token" content="{!! \Rhymix\Framework\Session::getGenericToken() !!}" /> <!-- TITLE --> <title>{{ Context::getBrowserTitle() }} @@ -55,6 +57,11 @@ @endforeach +@foreach (Context::getMetaTag() as $val) +@if (!$val['is_before_title']) + +@endif +@endforeach @foreach (Context::getOpenGraphData() as $og_metadata) @endforeach