$_W['uniaccount']['endtime'] && !in_array($_W['uniaccount']['endtime'], array(USER_ENDTIME_GROUP_EMPTY_TYPE, USER_ENDTIME_GROUP_UNLIMIT_TYPE))) { empty($_W['isajax']) ? itoast('抱歉,您的平台账号服务已过期,请及时联系管理员') : iajax(-1, '抱歉,您的平台账号服务已过期,请及时联系管理员'); } $_W['acid'] = $_W['account']['acid']; $_W['weid'] = $_W['uniacid']; } } $actions = array(); $actions_path = file_tree(IA_ROOT . '/web/source/' . $controller); foreach ($actions_path as $action_path) { $action_name = str_replace('.ctrl.php', '', basename($action_path)); $section = basename(dirname($action_path)); if ($section !== $controller) { $action_name = $section . '-' . $action_name; } $actions[] = $action_name; } //if (empty($actions)) { // header('location: ?refresh'); //} if (!in_array($action, $actions)) { $action = $action . '-' . $action; } if (!in_array($action, $actions)) { $action = $acl[$controller]['default'] ? $acl[$controller]['default'] : $actions[0]; } if (!defined('FRAME')) { define('FRAME', ''); } $_W['iscontroller'] = current_operate_is_controller(); if (is_array($acl[$controller]['direct']) && in_array($action, $acl[$controller]['direct'])) { require _forward($controller, $action); exit(); } checklogin($_W['siteurl']); if (ACCOUNT_MANAGE_NAME_FOUNDER != $_W['highest_role']) { if (ACCOUNT_MANAGE_NAME_UNBIND_USER == $_W['highest_role']) { itoast('', url('user/third-bind')); } if (empty($_W['uniacid']) && in_array(FRAME, array('account', 'wxapp')) && 'store' != $_GPC['module_name'] && !$_GPC['system_welcome']) { itoast('', url('account/display/platform'), 'info'); } $acl = permission_build(); if (in_array(FRAME, array('system', 'site', 'account_manage', 'platform', 'module', 'welcome', 'myself', 'user_manage', 'permission'))) { $checked_role = $_W['highest_role']; } else { $checked_role = $_W['role']; } if (empty($acl[$controller][$checked_role]) || (!in_array($controller . '*', $acl[$controller][$checked_role]) && !in_array($action, $acl[$controller][$checked_role]))) { empty($_W['isajax']) ? itoast('不能访问, 需要相应的权限才能访问!') : iajax('-1', '不能访问, 需要相应的权限才能访问!'); } unset($checked_role); } require _forward($controller, $action); define('ENDTIME', microtime()); function _forward($c, $a) { $file = IA_ROOT . '/web/source/' . $c . '/' . $a . '.ctrl.php'; if (!file_exists($file)) { list($section, $a) = explode('-', $a); $file = IA_ROOT . '/web/source/' . $c . '/' . $section . '/' . $a . '.ctrl.php'; } return $file; } function _calc_current_frames(&$frames) { global $_W, $controller, $action; $_W['page']['title'] = (isset($_W['page']['title']) && !empty($_W['page']['title'])) ? $_W['page']['title'] : ((2 == $frames['dimension'] && !('account' == $controller && 'welcome' == $action)) ? $frames['title'] : ''); if (in_array(FRAME, array('account', 'wxapp'))) { $_W['breadcrumb'] = $_W['account']['name']; } if (in_array(FRAME, array('myself', 'message'))) { $_W['breadcrumb'] = $frames['title']; } if (defined('IN_MODULE')) { $_W['breadcrumb'] = ($_W['current_module']['name'] == 'store' ? '' : ('' . $_W['account']['name'] . ' / ')) . $_W['current_module']['title']; } if (empty($frames['section']) || !is_array($frames['section'])) { return true; } foreach ($frames['section'] as &$frame) { if (empty($frame['menu'])) { continue; } $finished = false; foreach ($frame['menu'] as $key => &$menu) { if (defined('IN_MODULE') && $menu['multilevel']) { foreach ($menu['childs'] as $module_child_key => $module_child_menu) { $query = parse_url($module_child_menu['url'], PHP_URL_QUERY); $server_query = parse_url($_W['siteurl'], PHP_URL_QUERY); if (0 === strpos($server_query, $query)) { $menu['childs'][$module_child_key]['active'] = 'active'; break; } } } else { $query = parse_url($menu['url'], PHP_URL_QUERY); parse_str($query, $urls); if (empty($urls)) { continue; } if (defined('ACTIVE_FRAME_URL')) { $query = parse_url(ACTIVE_FRAME_URL, PHP_URL_QUERY); parse_str($query, $get); } else { $get = $_GET; $get['c'] = $controller; $get['a'] = $action; } if (!empty($do)) { $get['do'] = $do; } if (false !== strpos($get['do'], 'post') && !in_array($key, array('platform_menu', 'platform_masstask'))) { $_W['page']['title'] = ''; continue; } $diff = array_diff_assoc($urls, $get); if (empty($diff) || 'platform_menu' == $key && 'menu' == $get['a'] && in_array($get['do'], array('display')) || 'platform_site' == $key && in_array($get['a'], array('style', 'article', 'category')) || 'mc_member' == $key && in_array($get['a'], array('editor', 'group', 'fields')) || 'profile_setting' == $key && in_array($get['a'], array('passport', 'tplnotice', 'notify', 'common')) || 'profile_payment' == $key && in_array($get['a'], array('refund')) || 'statistics_visit' == $key && in_array($get['a'], array('site', 'setting')) || 'platform_reply' == $key && in_array($get['a'], array('reply-setting')) || 'system_setting_thirdlogin' == $key && in_array($get['a'], array('thirdlogin')) || 'system_cloud_sms' == $key && in_array($get['a'], array('profile')) || 'wxapp_profile_payment' == $key && in_array($get['a'], array('refund'))) { $menu['active'] = ' active'; $_W['page']['title'] = !empty($_W['page']['title']) ? $_W['page']['title'] : $menu['title']; $finished = true; break; } } } if ($finished) { break; } } return true; }