Exemplo n.º 1
0
 /**
  * สร้างเมนูตามตำแหน่งของเมนู (parent)
  *
  * @return array รายการเมนูทั้งหมด
  */
 public function render()
 {
     $view = \Core\Gcms::createClass('Menu\\View');
     $result = array();
     foreach ($this->menu->items() as $parent => $items) {
         if ($parent != '') {
             $result[$parent] = $view->render($items);
         }
     }
     return $result;
 }
Exemplo n.º 2
0
 /**
  * inint Controller.
  *
  * @param array $modules
  */
 public function inint($modules = null)
 {
     // ถ้าไม่มีโมดูลเลือกหน้า home
     $modules['module'] = empty($modules['module']) ? 'home' : $modules['module'];
     // สร้าง View
     $view = \Core\Gcms::createClass('Site\\View');
     // สร้างเมนู
     $Menu = \Core\Gcms::createClass('Menu\\Controller');
     $view->set(array('MENU' => $Menu->inint($modules), 'TITLE' => 'Welcome to GCMS++', 'CONTENT' => $view->loadTemplate('', '', $modules['module'])));
     // โหลดไฟล์ index.html
     $template = $view->loadTemplate('', '', 'index');
     // output เป็น HTML
     $view->renderHTML($template);
 }
Exemplo n.º 3
0
 /**
  * inint Controller.
  *
  * @param array $modules
  */
 public function inint($modules = null)
 {
     // cache 1 month
     $expire = 2592000;
     \Core\Gcms::header(array('Content-type' => 'text/css; charset: UTF-8', 'Cache-Control' => 'max-age=' . $expire . ', must-revalidate, public', 'Expires' => gmdate('D, d M Y H:i:s', time() + $expire) . ' GMT', 'Last-Modified' => gmdate('D, d M Y H:i:s', time() - $expire) . ' GMT'));
     // โหลด css หลัก
     $data = preg_replace('/url\\(([\'"])?fonts\\//isu', "url(\\1" . WEB_URL . '/skin/fonts/', file_get_contents(ROOT_PATH . 'skin/fonts.css'));
     $data .= file_get_contents(ROOT_PATH . 'skin/gcss.css');
     // โหลดจาก template
     $template = str_replace(ROOT_PATH, '', \Core\Gcms::get('config', 'template_root'));
     $skin = 'skin/' . \Core\Gcms::get('config', 'skin');
     $data2 = file_get_contents(ROOT_PATH . $template . $skin . '/style.css');
     $data2 = preg_replace('/url\\(([\'"])?(img|fonts)\\//isu', "url(\\1" . WEB_URL . '/' . $skin . '/\\2/', $data2);
     // compress css
     $data = preg_replace(array('!/\\*[^*]*\\*+([^/][^*]*\\*+)*/!', '/\\s?([:;,>\\{\\}])\\s?/s'), array('', '\\1', ' '), $data . $data2);
     // ตัด > ใน ie ต่ำกว่า 7
     if (preg_match('|MSIE ([0-9].[0-9]{1,2})|', \Core\Gcms::get($_SERVER, 'HTTP_USER_AGENT'), $matched)) {
         if ((int) $matched[1] < 7) {
             $data = str_replace('>', ' ', $data);
         }
     }
     // render
     \Core\Gcms::createClass('Css\\View')->render($data);
 }
Exemplo n.º 4
0
 public function inint($modules = null)
 {
     // สร้างเมนู
     return \Core\Gcms::createClass('Menu\\View')->render($modules);
 }
Exemplo n.º 5
0
 /**
  * inint Controller.
  *
  * @param array $modules
  */
 public function inint($modules = null)
 {
     $install_modules = array();
     $install_owners = array();
     $module_list = array();
     $site_model = \Core\Gcms::createClass('Site\\Model');
     $site_view = \Core\Gcms::createClass('Site\\View');
     $menu_controller = \Core\Gcms::createClass('Menu\\Controller');
     // เมนูที่ติดตั้ง
     foreach ($menu_controller->inint() as $item) {
         if (!empty($item['module']) && !isset($install_modules[$item['module']])) {
             $install_modules[$item['module']] = $item;
             $install_owners[$item['owner']][] = $item['module'];
         }
     }
     // โมดูลทั้งหมดที่ติดตั้ง
     foreach ($site_model->inint() as $item) {
         if (!isset($install_modules[$item['module']])) {
             $install_modules[$item['module']] = $item;
             $install_owners[$item['owner']][] = $item['module'];
         }
     }
     // รายชื่อโมดูลทั้งหมด
     $module_list = array_keys($install_modules);
     // รายการ home
     $home = $menu_controller->homeMenu();
     // ถ้าไม่มีโมดูล เลือกเมนูรายการแรก
     if (empty($modules['module'])) {
         if (!empty($home['menu_url'])) {
             $url = \Core\Gcms::createUrl($home['menu_url']);
             foreach ($url->get('query') as $k => $v) {
                 $modules[$k] = $v;
             }
             if (empty($modules['module'])) {
                 \Core\Router::parseRoutes($url->get('path'), $modules);
             }
         }
         if (empty($modules['module']) && !empty($home['module'])) {
             $modules['module'] = $home['module'];
         }
     }
     // ถ้าไม่มีโมดูลหรือ เลือกโมดูลแรกสุด
     if (empty($modules['module']) && !empty($module_list)) {
         $modules['module'] = $module_list[0];
     }
     if (empty($module_list) || !in_array($modules['module'], $module_list)) {
         // ไม่พบโมดูลที่เรียก 404
         $modules['module'] = '404';
     }
     // หน้าที่เรียก
     $page = $site_model->getModule($modules['module']);
     // โหลดเมนูใส่ template
     $site_view->set($menu_controller->render());
     // เนื้อหาทั่วไป
     $site_view->set(array('CONTENT' => $page['detail'], 'TITLE' => $page['topic'], 'DESCRIPTION' => $page['description'], 'KEYWORDS' => $page['keywords'], 'QURIES' => \Core\Gcms::database()->queryCount()));
     // widget+ภาษา
     $site_view->set(array('/{WIDGET_([A-Z]+)(([\\s_])(.*))?}/e' => '\\Core\\Gcms::getWidgets(array(1=>"$1",3=>"$3",4=>"$4"))', '/{(LNG_[A-Z0-9_]+)}/e' => '\\Core\\Language::get(array(1=>"$1"))'), FORMAT_PCRE);
     // โหลดไฟล์ index.html
     $template = $site_view->loadTemplate('', '', 'index');
     // output เป็น HTML
     $site_view->renderHTML($template);
 }