Exemplo n.º 1
0
 /**
  * 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);
 }