diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index ab0cbbdbdfb..fc2a90bbeb1 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -607,7 +607,7 @@ function dolSavePageContent($filetpl, $object, $objectpage) $tplcontent =''; $tplcontent.= "defaultlang; // Becasue we must init with a value, but real value is the lang of main parent container + // Load tmppage if we have $websitepagefile defined + $tmppage=new WebsitePage($this->db); + + $pageid = 0; if (! empty($websitepagefile)) { $pageid = str_replace(array('.tpl.php', 'page'), array('', ''), basename($websitepagefile)); if ($pageid > 0) { - $tmppage=new WebsitePage($this->db); $tmppage->fetch($pageid); + } + } + + // Fill with existing translation, nothing if none + if (! is_array($languagecodes) && $pageid > 0) + { + $languagecodes = array(); + + $sql ="SELECT wp.rowid, wp.lang, wp.pageurl, wp.fk_page"; + $sql.=" FROM ".MAIN_DB_PREFIX."website_page as wp"; + $sql.=" WHERE wp.fk_website = ".$website->id; + $sql.=" AND (wp.fk_page = ".$pageid." OR wp.rowid = ".$pageid; + if ($tmppage->fk_page > 0) $sql.=" OR wp.fk_page = ".$tmppage->fk_page." OR wp.rowid = ".$tmppage->fk_page; + $sql.=")"; + + $resql = $this->db->query($sql); + if ($resql) + { + while ($obj = $this->db->fetch_object($resql)) + { + $newlang = $obj->lang; + if ($obj->rowid == $pageid) $newlang = $obj->lang; + if (! in_array($newlang, $languagecodes)) $languagecodes[]=$newlang; + } + } + } + // Now $languagecodes is always an array + + $languagecodeselected= $weblangs->defaultlang; // Because we must init with a value, but real value is the lang of main parent container + if (! empty($websitepagefile)) + { + $pageid = str_replace(array('.tpl.php', 'page'), array('', ''), basename($websitepagefile)); + if ($pageid > 0) + { $languagecodeselected=$tmppage->lang; - $languagecodes[]=$tmppage->lang; // We add language code of page into combo list + if (! in_array($tmppage->lang, $languagecodes)) $languagecodes[]=$tmppage->lang; // We add language code of page into combo list } }