Esempio n. 1
0
 /**
  * 渲染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;
 }
Esempio n. 3
0
 /**
  * 站点信息初始化
  */
 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;
 }
Esempio n. 5
0
 /**
  * 用户信息初始化
  * @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;
 }