示例#1
0
文件: Page.php 项目: pompalini/emngo
 /**
  * 
  * 
  */
 public static function init()
 {
     self::$ci =& get_instance();
     // Models
     self::$ci->load->model(array('article_model', 'page_model', 'url_model'), '', TRUE);
     // Helpers
     self::$ci->load->helper('text');
     // Pages, Page
     self::register('pages', Pages::get_pages());
     self::register('page', self::get_current_page());
     // Current page
     $page = self::registry('page');
     // Last option : Even the 404 wasn't found...
     if (empty($page['id_page'])) {
         echo 'Not found';
         die;
     }
     if (!empty($page['link'])) {
         // External redirect
         if ($page['link_type'] == 'external') {
             redirect($page['link']);
             die;
         } else {
             self::$ci->load->helper('array_helper');
             // Page
             if ($page['link_type'] == 'page') {
                 if ($page = array_get(self::registry('pages'), $page['link_id'], 'id_page')) {
                     redirect($page['absolute_url']);
                 }
             }
             // Article
             if ($page['link_type'] == 'article') {
                 if (count(self::get_uri_segments()) == 1) {
                     redirect($page['absolute_url']);
                 }
             }
         }
     }
     // Can we get one article from the URL ?
     $entity = self::get_entity();
     if ($entity['type'] == 'article') {
         $article = self::$ci->article_model->get_by_id($entity['id_entity'], Settings::get_lang());
         $articles = array($article);
         TagManager_Article::init_articles_urls($articles);
         $article = $articles[0];
     }
     if (!empty($article)) {
         self::register('article', $article);
     }
     // Event : On before render
     $event_data = array('entity' => $entity, 'article' => self::registry('article'));
     Event::fire('Page.render.before', $event_data);
     self::$view = self::_get_page_view($page);
     self::render();
 }
示例#2
0
文件: Page.php 项目: nbourguig/ionize
 /**
  * 
  * 
  */
 public static function init()
 {
     // parent::init('Page');
     self::$ci =& get_instance();
     // Article model
     self::$ci->load->model('article_model');
     self::$ci->load->model('page_model');
     // Helpers
     self::$ci->load->helper('text');
     $uri = preg_replace("|/*(.+?)/*\$|", "\\1", self::$ci->uri->uri_string);
     self::$uri_segments = explode('/', $uri);
     // Get pages and add them to the context
     self::$context->globals->pages = Pages::get_pages();
     // Pagination URI
     //		$uri_config = self::$ci->config->item('special_uri');
     //		$uri_config = array_flip($uri_config);
     //		self::pagination_uri = $uri_config['pagination'];
     // Set self::$context->globals->page
     self::add_globals();
     // Current page
     $page = self::$context->globals->page;
     if (!empty($page['link'])) {
         // External redirect
         if ($page['link_type'] == 'external') {
             redirect($page['link']);
             die;
         } else {
             self::$ci->load->helper('array_helper');
             // Page
             if ($page['link_type'] == 'page') {
                 if ($page = array_get(self::$context->globals->pages, $page['link_id'], 'id_page')) {
                     redirect($page['absolute_url']);
                 }
             }
             // Article
             if ($page['link_type'] == 'article') {
                 if (count(self::$uri_segments) == 1) {
                     redirect($page['absolute_url']);
                 }
                 /*				
                 					$rel = explode('.', $page['link_id']);
                 
                 					if ($article_page = array_get(self::$context->globals->pages, $rel[0], 'id_page'))
                 					{
                 						$articles =  self::$ci->article_model->get_lang_list
                 						(
                 							array('id_article' => $rel[1]), 
                 							Settings::get_lang()
                 						);
                 						
                 						self::init_articles_urls($articles);
                 						$article = array_shift($articles);
                 
                 						if ($article['url'] != current_url())
                 						{
                 							redirect($article['url']);
                 						}
                 					}
                 */
             }
         }
     }
     // Can we get one article from the URL ?
     $article = self::get_article_from_url();
     if (!empty($article)) {
         self::$_article = $article;
         $page['view'] = $page['view_single'] != false ? $page['view_single'] : $page['view'];
     }
     self::$view = $page['view'] != false ? $page['view'] : Theme::get_default_view('page');
     self::render();
 }