示例#1
0
 public function getPage($url = null)
 {
     if ($url === null) {
         $url = wa()->getRouting()->getCurrentUrl();
     }
     $route = wa()->getRouting()->getRoute('url');
     $page_model = new sitePageModel();
     if (substr($url, -1) !== '/' && strpos(substr($url, -5), '.') === false) {
         if ($page = $page_model->getByUrl($this->getDomainId(), $route, $url . '/')) {
             $url = waSystem::getInstance()->getConfig()->getRequestUrl(false);
             if (($i = strpos($url, '?')) === false) {
                 wa()->getResponse()->redirect($url . '/');
             } else {
                 wa()->getResponse()->redirect(substr($url, 0, $i) . '/' . substr($url, $i));
             }
         }
     }
     $page = $page_model->getByUrl($this->getDomainId(), $route, $url);
     if (!$page) {
         return array();
     }
     if (!$page['status']) {
         $app_settings_model = new waAppSettingsModel();
         $hash = $app_settings_model->get('site', 'preview_hash');
         if (!$hash || md5($hash) != waRequest::get('preview')) {
             return array();
         }
     }
     $params_model = new sitePageParamsModel();
     if ($params = $params_model->getById($page['id'])) {
         $page += $params;
     }
     if (!$page['title']) {
         $page['title'] = $page['name'];
     }
     //$page['url'] = wa()->getAppUrl().$page['url'];
     foreach ($page as $k => $v) {
         if ($k != 'content') {
             $page[$k] = htmlspecialchars($v);
         }
     }
     return $page;
 }