/** * สร้างเมนูตามตำแหน่งของเมนู (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; }
/** * 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); }
/** * 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); }
public function inint($modules = null) { // สร้างเมนู return \Core\Gcms::createClass('Menu\\View')->render($modules); }
/** * 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); }