/** * Returns the website of a page * Static function * * @param mixed CMS_page or pageID $page : The page we want the website of * @return CMS_website or false on failure * @access public */ static function getPageWebsite($page) { //check argument is a page if (is_object($page)) { $pageID = $page->getID(); } elseif (sensitiveIO::isPositiveInteger($page)) { $pageID = $page; } else { CMS_grandFather::raiseError('Page must be instance of CMS_page or valid page ID'); return false; } $nearestWebsite = false; //get the full lineage of queried page $lineage = CMS_tree::getLineage(APPLICATION_ROOT_PAGE_ID, $pageID, false); if (!$lineage) { CMS_grandFather::raiseError('Lineage error for page : ' . $pageID); return false; } else { $lineage = array_reverse($lineage); foreach ($lineage as $ancestor) { if (CMS_websitesCatalog::isWebsiteRoot($ancestor)) { $nearestWebsite = $ancestor; break; } } } if (!$nearestWebsite) { return false; } return CMS_websitesCatalog::getWebsiteFromRoot($nearestWebsite); }