isset_request('statistic_' . NV_LANG_DATA, 'cookie')) { require NV_ROOTDIR . '/includes/core/stat.php'; } } // Referer + Gqueries if ($client_info['is_myreferer'] === 0 AND !defined('NV_IS_MY_USER_AGENT')) { require NV_ROOTDIR . '/includes/core/referer.php'; } // Google Sitemap if ($nv_Request->isset_request(NV_NAME_VARIABLE, 'get') AND $nv_Request->get_string(NV_NAME_VARIABLE, 'get') == 'SitemapIndex') { if (file_exists(NV_ROOTDIR . '/sitemap.xml')) { $content = file_get_contents(NV_ROOTDIR . '/sitemap.xml'); nv_xmlOutput($content, NV_CURRENTTIME); exit(); } nv_xmlSitemapIndex_generate(); die(); } if ($nv_Request->isset_request(NV_NAME_VARIABLE, 'get') OR $nv_Request->isset_request(NV_NAME_VARIABLE, 'post')) { $module_name = $nv_Request->get_string(NV_NAME_VARIABLE, 'post,get'); if (empty($module_name)) { $module_name = $global_config['rewrite_op_mod']; } } else { $module_name = $global_config['site_home_module']; } $home = ($module_name == $global_config['site_home_module']) ? 1 : 0; if (preg_match($global_config['check_module'], $module_name)) { $site_mods = nv_site_mods(); // IMG thong ke truy cap + online if ($global_config['statistic'] AND isset($sys_mods['statistics']) AND $nv_Request->get_string('second', 'get') == 'statimg') { include_once NV_ROOTDIR . '/includes/core/statimg.php'; } // ==== $op = $nv_Request->get_string(NV_OP_VARIABLE, 'post,get', ''); if (empty($op)) { $op = 'main'; } if ($home AND $op != 'main') { $home = 0; } if (!empty($global_config['rewrite_op_mod']) AND !isset($sys_mods[$module_name])) { $op = ($op == 'main') ? $module_name : $module_name . '/' . $op; $module_name = $global_config['rewrite_op_mod']; } // Kiểm tra module có trong hệ thống hay không if (isset($site_mods[$module_name])) { // SSL if ($global_config['ssl_https'] === 3 AND !empty($global_config['ssl_https_modules']) AND in_array($module_name, $global_config['ssl_https_modules']) AND (!isset($_SERVER['HTTPS']) OR $_SERVER['HTTPS'] == 'off')) { header("HTTP/1.1 301 Moved Permanently"); header("Location: https://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]); exit(); } // Global variable for module $module_info = $site_mods[$module_name]; $module_file = $module_info['module_file']; $module_data = $module_info['module_data']; $module_upload = $module_info['module_upload']; $include_file = NV_ROOTDIR . '/modules/' . $module_file . '/funcs/main.php'; if (file_exists($include_file)) { if (empty($global_config['switch_mobi_des'])) { $global_config['array_theme_type'] = array_diff($global_config['array_theme_type'], array('m')); } // Tuy chon kieu giao dien if ($nv_Request->isset_request('nv' . NV_LANG_DATA . 'themever', 'get')) { $theme_type = $nv_Request->get_title('nv' . NV_LANG_DATA . 'themever', 'get', '', 1); if (in_array($theme_type, $global_config['array_theme_type'])) { $nv_Request->set_Cookie('nv' . NV_LANG_DATA . 'themever', $theme_type, NV_LIVE_COOKIE_TIME); } $nv_redirect = nv_get_redirect('get', true); if (empty($nv_redirect)) { $nv_redirect = NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA; } Header('Location: ' . nv_url_rewrite($nv_redirect)); die(); } // Xac dinh cac $op, $array_op $array_op = array(); if (!preg_match('/^[a-z0-9\-\_\/\+]+$/i', $op)) { Header('Location: ' . nv_url_rewrite(NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name, true)); die(); } if ($op != 'main' AND !isset($module_info['funcs'][$op])) { $array_op = explode('/', $op); $op = (isset($module_info['funcs'][$array_op[0]])) ? $array_op[0] : 'main'; } // Xac dinh quyen dieu hanh module if ($module_info['is_modadmin']) { define('NV_IS_MODADMIN', true); } if (defined('NV_IS_MODADMIN')) { $drag_block = $nv_Request->get_int('drag_block', 'session', 0); if ($nv_Request->isset_request('drag_block', 'get')) { $drag_block = $nv_Request->get_int('drag_block', 'get', 0); $nv_Request->set_Session('drag_block', $drag_block); $nv_redirect = nv_get_redirect('get', true); if (empty($nv_redirect)) { $nv_redirect = NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=' . $module_name; } Header('Location: ' . nv_url_rewrite($nv_redirect, true)); die(); } if ($drag_block) { define('NV_IS_DRAG_BLOCK', true); $adm_int_lang = $nv_Request->get_string('int_lang', 'cookie'); if ($adm_int_lang != NV_LANG_DATA) { $nv_Request->set_Cookie('int_lang', NV_LANG_DATA, NV_LIVE_COOKIE_TIME); } } } // Ket noi ngon ngu cua module if (file_exists(NV_ROOTDIR . '/modules/' . $module_file . '/language/' . NV_LANG_INTERFACE . '.php')) { require NV_ROOTDIR . '/modules/' . $module_file . '/language/' . NV_LANG_INTERFACE . '.php'; } elseif (file_exists(NV_ROOTDIR . '/modules/' . $module_file . '/language/' . $global_config['site_lang'] . '.php')) { require NV_ROOTDIR . '/modules/' . $module_file . '/language/' . $global_config['site_lang'] . '.php'; } // Xac dinh kieu giao dien mac dinh $global_config['current_theme_type'] = $nv_Request->get_string('nv' . NV_LANG_DATA . 'themever', 'cookie', ''); if(!in_array($global_config['current_theme_type'],$global_config['array_theme_type'])) { $global_config['current_theme_type'] = ''; $nv_Request->set_Cookie('nv' . NV_LANG_DATA . 'themever', '', NV_LIVE_COOKIE_TIME); } // Xac dinh giao dien chung $is_mobile = false; $theme_type = ''; $_theme_mobile = empty($module_info['mobile']) ? $global_config['mobile_theme'] : (($module_info['mobile'] == ':pcsite') ? $global_config['site_theme'] : (($module_info['mobile'] == ':pcmod') ? $module_info['theme'] : $module_info['mobile'])); if ((($client_info['is_mobile'] AND (empty($global_config['current_theme_type']) OR empty($global_config['switch_mobi_des']))) OR ($global_config['current_theme_type'] == 'm' AND !empty($global_config['switch_mobi_des']))) AND !empty($_theme_mobile) AND file_exists(NV_ROOTDIR . '/themes/' . $_theme_mobile . '/theme.php')) { $global_config['module_theme'] = $_theme_mobile; $is_mobile = true; $theme_type = 'm'; } else { if (empty($global_config['current_theme_type']) AND ($client_info['is_mobile'] OR empty($_theme_mobile))) { $global_config['current_theme_type'] = 'r'; } $_theme = (!empty($module_info['theme'])) ? $module_info['theme'] : $global_config['site_theme']; if (!empty($_theme) AND file_exists(NV_ROOTDIR . '/themes/' . $_theme . '/theme.php')) { $global_config['module_theme'] = $_theme; $theme_type = $global_config['current_theme_type']; } elseif (file_exists(NV_ROOTDIR . '/themes/default/theme.php')) { $global_config['module_theme'] = 'default'; $theme_type = $global_config['current_theme_type']; } else { trigger_error('Error! Does not exist themes default', 256); } } // Xac lap lai giao kieu giao dien hien tai if ($theme_type != $global_config['current_theme_type']) { $global_config['current_theme_type'] = $theme_type; $nv_Request->set_Cookie('nv' . NV_LANG_DATA . 'themever', $theme_type, NV_LIVE_COOKIE_TIME); } unset($theme_type); // Xac dinh layout funcs cua module $cache_file = NV_LANG_DATA . '_' . md5($module_name . '_' . $global_config['module_theme']) . '_' . NV_CACHE_PREFIX . '.cache'; if (($cache = $nv_Cache->getItem('modules', $cache_file)) != false) { $module_info['layout_funcs'] = unserialize($cache); } else { $module_info['layout_funcs'] = array(); $sth = $db->prepare('SELECT f.alias, t.layout FROM ' . NV_MODFUNCS_TABLE . ' f INNER JOIN ' . NV_PREFIXLANG . '_modthemes t ON f.func_id=t.func_id WHERE f.in_module = :module AND t.theme= :theme'); $sth->bindParam(':module', $module_name, PDO::PARAM_STR); $sth->bindParam(':theme', $global_config['module_theme'], PDO::PARAM_STR); $sth->execute(); while ($row = $sth->fetch()) { $module_info['layout_funcs'][$row['alias']] = $row['layout']; } $sth->closeCursor(); $cache = serialize($module_info['layout_funcs']); $nv_Cache->setItem('modules', $cache_file, $cache); } // Doc file cau hinh giao dien $themeConfig = nv_object2array(simplexml_load_file(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/config.ini')); require NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/theme.php'; // Ket noi ngon ngu theo theme if (file_exists(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/language/' . NV_LANG_INTERFACE . '.php')) { require NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/language/' . NV_LANG_INTERFACE . '.php'; } elseif (file_exists(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/language/en.php')) { require NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/language/en.php'; } // Xac dinh template module $module_info['template'] = $global_config['module_theme']; if (!file_exists(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/modules/' . $module_info['module_theme'])) { if (file_exists(NV_ROOTDIR . '/themes/default/modules/' . $module_info['module_theme'])) { $module_info['template'] = 'default'; } } // Ket noi voi file functions.php của module if (file_exists(NV_ROOTDIR . '/modules/' . $module_file . '/functions.php')) { require NV_ROOTDIR . '/modules/' . $module_file . '/functions.php'; } // thay đổi title theo module $meta_property['og:title'] = $global_config['site_name']; // Xac dinh op file $op_file = 'main'; if (isset($module_info['funcs'][$op])) { $op_file = $module_info['funcs'][$op]['func_file']; } else { foreach ($module_data['funcs'] as $_func) { if ($_func['func_name'] == $op) { $op_file = $_func['func_file']; } } } if (file_exists(NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/modules/' . $module_info['module_theme'] . '/theme.php')) { require NV_ROOTDIR . '/themes/' . $global_config['module_theme'] . '/modules/' . $module_info['module_theme'] . '/theme.php'; } elseif (file_exists(NV_ROOTDIR . '/modules/' . $module_file . '/theme.php')) { require NV_ROOTDIR . '/modules/' . $module_file . '/theme.php'; } // Ket noi voi cac op cua module de thuc hien if ($is_mobile AND file_exists(NV_ROOTDIR . '/modules/' . $module_file . '/mobile/' . $op_file . '.php')) { require NV_ROOTDIR . '/modules/' . $module_file . '/mobile/' . $op_file . '.php'; } else { require NV_ROOTDIR . '/modules/' . $module_file . '/funcs/' . $op_file . '.php'; } exit(); } elseif (isset($module_info['funcs']['main'])) { $sth = $db->prepare('UPDATE ' . NV_MODULES_TABLE . ' SET act=2 WHERE title= :title'); $sth->bindParam(':title', $module_name, PDO::PARAM_STR); $sth->execute(); nv_insert_notification('modules', 'auto_deactive_module', array( 'custom_title' => $site_mods[$module_name]['custom_title'] )); $nv_Cache->delMod('modules'); } } elseif (isset($sys_mods[$module_name])) { $groups_view = (string) $sys_mods[$module_name]['groups_view']; if (!defined('NV_IS_USER') AND $groups_view == '4') { Header('Location: ' . nv_url_rewrite(NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&' . NV_NAME_VARIABLE . '=users&' . NV_OP_VARIABLE . '=login&nv_redirect=' . nv_redirect_encrypt($client_info['selfurl']), true)); die(); } elseif (!defined('NV_IS_ADMIN') AND ($groups_view == '2' OR $groups_view == '1')) { // Exit nv_info_die($lang_global['error_404_title'], $lang_global['site_info'], $lang_global['module_for_admin'], 404); } elseif (defined('NV_IS_USER') AND !nv_user_in_groups($groups_view)) { nv_info_die($lang_global['error_404_title'], $lang_global['error_404_title'], $lang_global['error_404_content'], 404); } } } nv_info_die($lang_global['error_404_title'], $lang_global['error_404_title'], $lang_global['error_404_content'], 404);