Example #1
0
 public function resolve($url)
 {
     $site = $this->pagesys->getSite();
     $cl = strlen(self::$ConnectorUrl);
     if (strlen($url) > $cl && substr($url, 0, $cl) == self::$ConnectorUrl) {
         $page = CMSConnector::resolve($site, substr($url, $cl));
         if (isset($page)) {
             return $page;
         } else {
             return PageProvider::DECLINE;
         }
     } else {
         $cpage = CMSPage::loadPath($url);
         if (!isset($cpage)) {
             return PageProvider::DECLINE;
         }
         $type = $cpage->getType();
         if ($type == 'text/html') {
             $spage = new HTMLPage($site);
             $this->populateHTMLPage($cpage, $spage);
         } else {
             $spage = new Page($site, $type);
             $spage->setDataArray($cpage->data->serialize());
         }
         $tsys = null;
         foreach ($cpage->getNodeAreas() as $area) {
             $nodes = $cpage->getNodes($area);
             foreach ($nodes as $node) {
                 if (!isset($tsys)) {
                     $tsys = $site->modules->get('TemplateSystem');
                 }
                 $tmpl = $tsys->load('CMSNode://' . $node->id);
                 $spage->addToBuffer($area, $tmpl);
             }
         }
         return $spage;
     }
 }