From d58a6a7d9a5f31bd6397955645ba47d89e487a4e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 7 Dec 2019 16:59:35 +0100 Subject: [PATCH] Fix hreflang is more complete --- htdocs/core/lib/website2.lib.php | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/website2.lib.php b/htdocs/core/lib/website2.lib.php index 48ef724e4dc..2ef48e94bda 100644 --- a/htdocs/core/lib/website2.lib.php +++ b/htdocs/core/lib/website2.lib.php @@ -124,7 +124,9 @@ function dolSavePageContent($filetpl, Website $object, WebsitePage $objectpage) $tplcontent .= ''."\n"; // Add translation reference (main language) if ($object->isMultiLang()) { + // Add myself $tplcontent .= ''."\n"; + // Add page "translation of" $translationof = $objectpage->fk_page; if ($translationof) { $tmppage = new WebsitePage($db); @@ -132,9 +134,30 @@ function dolSavePageContent($filetpl, Website $object, WebsitePage $objectpage) if ($tmppage->id > 0) { $tmpshortlangcode = ''; if ($tmppage->lang) $tmpshortlangcode = preg_replace('/[_-].*$/', '', $tmppage->lang); // en_US or en-US -> en - $tplcontent .= ''."\n"; + if ($tmpshortlangcode != $shortlangcode) { + $tplcontent .= ''."\n"; + } } } + // Add "has translation pages" + $sql = 'SELECT rowid as id, lang, pageurl from '.MAIN_DB_PREFIX.'website_page where fk_page IN ('.$objectpage->id.($translationof ? ", ".$translationof : "").")"; + $resql = $db->query($sql); + if ($resql) + { + $num_rows = $db->num_rows($resql); + if ($num_rows > 0) + { + while ($obj = $db->fetch_object($resql)) + { + $tmpshortlangcode = ''; + if ($obj->lang) $tmpshortlangcode = preg_replace('/[_-].*$/', '', $obj->lang); // en_US or en-US -> en + if ($tmpshortlangcode != $shortlangcode) { + $tplcontent .= ''."\n"; + } + } + } + } + else dol_print_error($db); } // Add canonical reference $tplcontent .= ''."\n";