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; } }