From b6bb08ec2e490665dd27e52ee320a4107df69ece Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 19 Dec 2020 13:44:15 +0100 Subject: [PATCH] Fix management of hreflang --- htdocs/core/lib/website2.lib.php | 2 ++ htdocs/website/index.php | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/website2.lib.php b/htdocs/core/lib/website2.lib.php index 1ed80ece372..3462212ee25 100644 --- a/htdocs/core/lib/website2.lib.php +++ b/htdocs/core/lib/website2.lib.php @@ -129,6 +129,7 @@ function dolSavePageContent($filetpl, Website $object, WebsitePage $objectpage) $shortlangcode = ''; if ($objectpage->lang) $shortlangcode = substr($objectpage->lang, 0, 2); // en_US or en-US -> en + if (empty($shortlangcode)) $shortlangcode = substr($object->lang, 0, 2); // en_US or en-US -> en $tplcontent = ''; $tplcontent .= "id > 0) { $tmpshortlangcode = ''; if ($tmppage->lang) $tmpshortlangcode = preg_replace('/[_-].*$/', '', $tmppage->lang); // en_US or en-US -> en + if (empty($tmpshortlangcode)) $tmpshortlangcode = preg_replace('/[_-].*$/', '', $object->lang); // en_US or en-US -> en if ($tmpshortlangcode != $shortlangcode) { $tplcontent .= ''."\n"; } diff --git a/htdocs/website/index.php b/htdocs/website/index.php index c1fe6f84c77..1b477a0272b 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -940,13 +940,24 @@ if ($action == 'addcontainer') $objectpage->keywords = str_replace(array('<', '>'), '', GETPOST('WEBSITE_KEYWORDS', 'alphanohtml')); $objectpage->allowed_in_frames = GETPOST('WEBSITE_ALLOWED_IN_FRAMES', 'aZ09'); $objectpage->htmlheader = GETPOST('htmlheader', 'none'); - $objectpage->fk_page = (GETPOST('pageidfortranslation', 'int') > 0 ? GETPOST('pageidfortranslation', 'int') : 0); $objectpage->author_alias = GETPOST('WEBSITE_AUTHORALIAS', 'alphanohtml'); $objectpage->object_type = GETPOST('WEBSITE_OBJECTCLASS'); $objectpage->fk_object = GETPOST('WEBSITE_OBJECTID'); $substitutionarray = array(); $substitutionarray['__WEBSITE_CREATE_BY__'] = $user->getFullName($langs); + // Define id of page the new page is translation of + $pageidfortranslation = (GETPOST('pageidfortranslation', 'int') > 0 ? GETPOST('pageidfortranslation', 'int') : 0); + if ($pageidfortranslation > 0) { + // Check if the page we are translation of is alreayd a translation of a source page. if yes, we will use source id instead + $objectpagetmp = new WebsitePage($db); + $objectpagetmp->fetch($pageidfortranslation); + if ($objectpagetmp->fk_page > 0) { + $pageidfortranslation = $objectpagetmp->fk_page; + } + } + $objectpage->fk_page = $pageidfortranslation; + $sample = GETPOST('sample', 'alpha'); if (empty($sample)) $sample = 'empty';