/** * 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); }