/** * 渲染HTML页面 * @param string $templateFile 模板文件路径 * @param string $charset 字符集,默认为UTF8 * @param string $contentType 内容类型,默认为text/html * @return string HTML页面数据 */ public function fetch($templateFile = '', $charset = 'utf-8', $contentType = 'text/html') { if (!is_file($templateFile)) { $templateFile = realpath($this->path . DIRECTORY_SEPARATOR . "html" . DIRECTORY_SEPARATOR . $templateFile . '.html'); } // 获取当前Js语言包 $this->langJsList = setLangJavsScript(); $this->assign('langJsList', $this->langJsList); return fetch($templateFile, $this->tVar, $charset, $contentType, false); }
public function core_display_tpl() { if (!$this->checkAvailability()) { return; } $config = $config ? $config : model('AddonData')->lget('beautifyLogin'); if (!$config['template']) { $config['template'] = 1; } if (!$config['color']) { $config['color'] = "FFFFFF"; } switch ($config['template']) { case 1: // By Zue $templateFile = dirname(dirname(__FILE__)) . '/html/zue/login.html'; break; case 2: // By Cali $templateFile = dirname(dirname(__FILE__)) . '/html/cali/login.html'; break; } $siteConf = model('Xdata')->get('admin_Config:site'); $config['login_bg'] = getImageUrlByAttachId($siteConf['login_bg']); $config['_title'] = $siteConf['site_slogan']; $config['_keywords'] = $siteConf['site_header_keywords']; $config['_description'] = $siteConf['site_header_description']; $config['site']['site_slogan'] = $siteConf['site_slogan']; $config['site']['site_name'] = $siteConf['site_name']; $config['site']['logo'] = getSiteLogo($siteConf['site_logo']); $config['site']['sys_version'] = $siteConf['sys_version']; // 获取当前Js语言包 $this->langJsList = setLangJavsScript(); $config['langJsList'] = $this->langJsList; echo fetch($templateFile, $config, $param['charset'], $param['contentType']); exit; }
/** * 站点信息初始化 */ private function initSite() { //初始化语言包 $cacheFile = DATA_PATH . '/lang/_initSiteLang.lock'; if (!file_exists($cacheFile)) { model('Lang')->initSiteLang(); } $GLOBALS['time_run_detail']['action_init_site_start'] = microtime(true); //载入网站全局配置 $this->site = F('global_site_config'); if ($this->site === false) { //载入站点配置全局变量 $this->site = model('Xdata')->get('admin_Config:site'); $GLOBALS['time_run_detail']['action_init_site_siteconfig'] = microtime(true); $GLOBALS['time_run_detail']['action_init_site_language'] = microtime(true); //LOGO处理 $this->site['logo'] = getSiteLogo($this->site['site_logo']); $GLOBALS['time_run_detail']['action_init_site_logo'] = microtime(true); //默认登录后首页 if (intval($this->site['home_page'])) { $appInfo = model('App')->where('app_id=' . intval($this->site['home_page']))->find(); $this->site['home_url'] = U($appInfo['app_name'] . '/' . $appInfo['app_entry']); } else { $this->site['home_url'] = U('public/Index/index'); } $GLOBALS['time_run_detail']['action_init_site_homepage'] = microtime(true); //网站导航 $this->site['site_top_nav'] = model('Navi')->getTopNav(); $this->site['site_bottom_nav'] = model('Navi')->getBottomNav(); $this->site['site_bottom_child_nav'] = model('Navi')->getBottomChildNav($GLOBALS['ts']['site_bottom_nav']); if (!$this->mid) { //游客导航 $this->site['site_guest_nav'] = model('Navi')->getGuestNav(); } $GLOBALS['time_run_detail']['action_init_site_language'] = microtime(true); //获取可搜索的内容列表 $this->site['search_menu_list'] = D('SearchSelect')->findAll(); $GLOBALS['time_run_detail']['action_init_site_search'] = microtime(true); //网站所有的应用 $this->site['site_nav_apps'] = model('App')->getAppList(array('status' => 1, 'add_front_top' => 1), 9); $GLOBALS['time_run_detail']['action_init_site_applist'] = microtime(true); //获取当前Js语言包 $this->site['langJsList'] = setLangJavsScript(); //分享字数 $this->site['initNums'] = model('Xdata')->getConfig('weibo_nums', 'feed'); //赋值给全局变量 F('global_site_config', $this->site); } //检查站点是否关闭 if ($this->site['site_closed'] == 0 && APP_NAME != 'admin') { $this->page404($this->site['site_closed_reason']); exit; } // 检查网页端是否关闭 if ($this->site['web_closed'] == 0 && APP_NAME != 'admin' && APP_NAME != 'w3g' && IS_GET) { $this->page404('网页版已经关闭'); exit; } $GLOBALS['time_run_detail']['action_init_site_closed'] = microtime(true); //检查是否启用IP控制 // if (!isIpAccess('ipaccess') && APP_NAME !='admin') { // $this->site['site_closed'] = 0; // $this->page404('你的IP地址已被禁止'); exit(); // } // $GLOBALS['time_run_detail']['action_init_site_ipaccess'] = microtime(true); //检查是否启用rewrite if (isset($this->site['site_rewrite_on'])) { C('URL_ROUTER_ON', $this->site['site_rewrite_on'] == 1); } $GLOBALS['time_run_detail']['action_init_site_rewrite'] = microtime(true); $this->langJsList = $this->site['langJsList']; $this->site['sys_version'] = C('VERSION'); $GLOBALS['ts']['site'] = $this->site; //网站全局变量过滤插件 Addons::hook('core_filter_init_site'); $this->assign('site', $this->site); $this->assign('site_top_nav', $this->site['site_top_nav']); $this->assign('site_bottom_nav', $this->site['site_bottom_nav']); $this->assign('site_bottom_child_nav', $this->site['site_bottom_child_nav']); $this->assign('site_guest_nav', $this->site['site_guest_nav']); $this->assign('site_nav_apps', $this->site['site_nav_apps']); $this->assign('menuList', $this->site['search_menu_list']); $this->assign('initNums', $this->site['initNums']); $GLOBALS['time_run_detail']['action_init_site_end'] = microtime(true); return true; }
public function core_display_tpl() { if (!$this->checkPage()) { return; } $this->mid = $GLOBALS['ts']['mid']; $this->uid = $this->getUserUid(); $user_info = model('User')->getUserInfo($this->uid); // 添加积分 model('Credit')->setUserCredit($this->uid, 'space_access'); // 获取头部相关信息 $data = $this->_top(); // 获取用户_tab_menu信息 $data['appArr'] = $this->_tab_menu(); // 用户uid $data['uid'] = $this->uid; // 用户信息 $data['user_info'][$this->uid] = $user_info; $data['initNums'] = model('Xdata')->getConfig('weibo_nums', 'feed'); // 用户为空,则跳转用户不存在 if (empty($user_info)) { $this->error(L('PUBLIC_USER_NOEXIST')); } // 判断隐私设置 $userPrivacy = $this->privacy($this->uid); if ($userPrivacy['space'] !== 1) { // 右边栏信息_sidebar $data['sidebar'] = $this->_sidebar(); // 加载微博筛选信息 $d['feed_type'] = t($_REQUEST['feed_type']) ? t($_REQUEST['feed_type']) : ''; $d['feed_key'] = t($_REQUEST['feed_key']) ? t($_REQUEST['feed_key']) : ''; $data['feed_type'] = $d['feed_type']; $data['feed_key'] = $d['feed_key']; } else { $data['sidebar']['user_info'] = $this->_assignUserInfo($this->uid); } $data['userPrivacy'] = $userPrivacy; $data['mid'] = $this->mid; $data['user'] = model('User')->getUserInfo($this->mid); $data['site_top_nav'] = model('Navi')->getTopNav(); $data['site_nav_apps'] = $GLOBALS['ts']['site_nav_apps']; $data['site_bottom_nav'] = model('Navi')->getBottomNav(); $data['site_bottom_child_nav'] = model('Navi')->getBottomChildNav($GLOBALS['ts']['site_bottom_nav']); // seo $siteConf = model('Xdata')->get('admin_Config:site'); $seo = model('Xdata')->get("admin_Config:seo_user_profile"); $replace['uname'] = $user_info['uname']; if ($feed_id = model('Feed')->where('uid=' . $this->uid)->order('publish_time desc')->limit(1)->getField('feed_id')) { $replace['lastFeed'] = D('feed_data')->where('feed_id=' . $feed_id)->getField('feed_content'); } $replaces = array_keys($replace); foreach ($replaces as &$v) { $v = "{" . $v . "}"; } $seo['title'] = str_replace($replaces, $replace, $seo['title']); $seo['keywords'] = str_replace($replaces, $replace, $seo['keywords']); $seo['des'] = str_replace($replaces, $replace, $seo['des']); $data['_title'] = !empty($seo['title']) ? $seo['title'] : $siteConf['site_slogan']; $data['_keywords'] = !empty($seo['keywords']) ? $seo['keywords'] : $siteConf['site_header_keywords']; $data['_description'] = !empty($seo['des']) ? $seo['des'] : $siteConf['site_header_description']; $data['site']['site_slogan'] = $siteConf['site_slogan']; $data['site']['site_name'] = $siteConf['site_name']; $data['site']['logo'] = getSiteLogo($siteConf['site_logo']); $data['site']['sys_version'] = $siteConf['sys_version']; // 获取当前Js语言包 $this->langJsList = setLangJavsScript(); $data['langJsList'] = $this->langJsList; // 显示模板 if (ACTION_NAME == 'index') { $templateFile = dirname(dirname(__FILE__)) . '/html/index.html'; } else { if (ACTION_NAME == 'follower') { $data['follower_list'] = $this->follower(); $data['_title'] = $data['follower_list']['user_info'][$this->uid]['uname'] . '的粉丝'; $data['_keywords'] = $data['follower_list']['user_info'][$this->uid]['uname'] . '的粉丝'; $templateFile = dirname(dirname(__FILE__)) . '/html/follower.html'; } else { if (ACTION_NAME == 'following') { $data['following_list'] = $this->following(); $data['_title'] = $data['following_list']['user_info'][$this->uid]['uname'] . '的关注'; $data['_keywords'] = $data['following_list']['user_info'][$this->uid]['uname'] . '的关注'; $templateFile = dirname(dirname(__FILE__)) . '/html/following.html'; } else { if (ACTION_NAME == 'appList') { $data['appList'] = $this->appList(); $data['_title'] = $data['user_info'][$this->uid]['uname'] . '的' . $data['appArr'][$data['appList']['type']]; $data['_keywords'] = $data['user_info'][$this->uid]['uname'] . '的' . $data['appArr'][$data['appList']['type']]; $templateFile = dirname(dirname(__FILE__)) . '/html/appList.html'; } else { if (ACTION_NAME == 'feed') { $data['feed'] = $this->feed(); $data['_title'] = $data['user_info'][$this->uid]['uname'] . '的微博'; $data['_keywords'] = $data['user_info'][$this->uid]['uname'] . '的微博'; $templateFile = dirname(dirname(__FILE__)) . '/html/feed.html'; } else { $data['data'] = $this->data(); $data['_title'] = $data['user_info'][$this->uid]['uname'] . '的资料'; $data['_keywords'] = $data['user_info'][$this->uid]['uname'] . '的资料'; $templateFile = dirname(dirname(__FILE__)) . '/html/data.html'; } } } } } echo fetch($templateFile, $data, $param['charset'], $param['contentType']); exit; }
/** * 用户信息初始化 * @access private * @return void */ private function initUser() { // 验证登陆 if (model('Passport')->needLogin()) { if (defined('LOGIN_URL')) { redirect(LOGIN_URL); } else { if (APP_NAME == 'admin') { if (MODULE_NAME != "Public" && !model('Passport')->checkAdminLogin()) { redirect(U('admin/Public/login')); exit; } } else { // 邀请跳转 if (isset($_GET['invite'])) { redirect(U('public/Register/index', array('invite' => t($_GET['invite'])))); exit; } redirect(U('public/Passport/login')); exit; } } } //判断登录有效期 /* $activeTime = cookie('ST_ACTIVE_TIME'); if($activeTime < time() && APP_NAME != 'admin' && ACTION_NAME !='login'){ unset($_SESSION['mid']); cookie('TSV3_LOGGED_USER',null); $this->assign('jumpUrl',U('public/Passport/login')); $this->error(L('PUBLIC_TIME_OUT'));exit(); }else{ cookie('TSV3_ACTIVE_TIME',time()+60*60*24); }*/ //当前登录者uid $GLOBALS['ts']['mid'] = $this->mid = intval($_SESSION['mid']); //当前访问对象的uid $GLOBALS['ts']['uid'] = $this->uid = intval($_REQUEST['uid'] == 0 ? $this->mid : $_REQUEST['uid']); // 验证站点访问权限 // 验证应用访问权限 // 获取用户基本资料 $GLOBALS['ts']['user'] = !empty($this->mid) ? $this->user = model('User')->getUserInfo($this->mid) : array(); if ($this->mid != $this->uid) { $GLOBALS['ts']['_user'] = !empty($this->uid) ? model('User')->getUserInfo($this->uid) : array(); } else { $GLOBALS['ts']['_user'] = $GLOBALS['ts']['user']; } // 未初始化 if (0 < $this->mid && 0 == $this->user['is_init']) { if (APP_NAME != 'admin') { if (MODULE_NAME != 'Register' && MODULE_NAME != 'Passport' && MODULE_NAME != "Account") { // 注册完成后就开启此功能 if ($this->user['is_active'] == '0') { U('public/Register/waitForActivation', 'uid=' . $this->mid, true); } else { $init_config = model('Xdata')->get('admin_Config:register'); if ($init_config['photo_open']) { U('public/Register/step2', '', true); } else { if ($init_config['tag_open']) { U('public/Register/step3', '', true); } else { if ($init_config['interester_open']) { U('public/Register/step4', '', true); } else { model('Register')->overUserInit($GLOBALS['ts']['mid']); U('public/Register/index', '', true); } } } } exit; } } } //应用权限判断 if (!empty($this->app) && $this->app['status'] == 0) { $this->error('此应用已经关闭'); } if ($this->uid > 0) { //当前用户的所有已添加的应用 // $GLOBALS['ts']['_userApp'] = $userApp = model('UserApp')->getUserApp($this->uid); //当前用户的统计数据 $GLOBALS['ts']['_userData'] = $userData = model('UserData')->getUserData($this->uid); $userCredit = model('Credit')->getUserCredit($this->uid); $this->assign('userCredit', $userCredit); $this->assign('_userData', $userData); $this->assign('_userApp', $userApp); } // 获取当前Js语言包 $this->langJsList = setLangJavsScript(); $this->assign('mid', $this->mid); //登录者 $this->assign('uid', $this->uid); //访问对象 $this->assign('user', $this->user); //当前登陆的人 $this->assign('initNums', model('Xdata')->getConfig('weibo_nums', 'feed')); Addons::hook('core_filter_init_user'); return true; }