| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418 | 
							- <?php
 
- /**
 
-  *
 
-  * Base (前台公共模块)
 
-  *
 
-  */
 
- if(!defined("Ainaphp")) exit("Access Denied");
 
- class BaseAction extends Action
 
- {
 
- 	protected   $Config ,$sysConfig,$categorys,$module,$moduleid,$mod,$dao,$Type,$Role,$_userid,$_groupid,$_email,$_username ,$forward ,$user_menu,$Lang,$member_config;
 
-     public function _initialize() {
 
- 			$this->sysConfig = F('sys.config');
 
- 			$this->module = F('Module');
 
- 			$this->Role = F('Role');
 
- 			$this->Type =F('Type');
 
- 			$this->mod= F('Mod');
 
- 			$this->moduleid=$this->mod[MODULE_NAME];
 
- 			if(APP_LANG){
 
- 				$this->Lang = F('Lang');
 
- 				$this->assign('Lang',$this->Lang);
 
- 				if(get_safe_replace($_GET['l'])){
 
- 					if(!$this->Lang[$_GET['l']]['status'])$this->error ( L ( 'NO_LANG' ) );
 
- 					$lang=$_GET['l'];
 
- 				}else{
 
- 					$lang=$this->sysConfig['DEFAULT_LANG'];
 
- 				}
 
- 				define('LANG_NAME', $lang);
 
- 				define('LANG_ID', $this->Lang[$lang]['id']);
 
- 				$this->categorys = F('Category_'.$lang);
 
- 				$this->Config = F('Config_'.$lang);
 
- 				$this->assign('l',$lang);
 
- 				$this->assign('langid',LANG_ID);
 
- 				$T = F('config_'.$lang,'', APP_PATH.'Tpl/Home/'.$this->sysConfig['DEFAULT_THEME'].'/');
 
- 				C('TMPL_CACHFILE_SUFFIX','_'.$lang.'.php');
 
- 				cookie('think_language',$lang);
 
- 			}else{
 
- 				$T = F('config_'.$this->sysConfig['DEFAULT_LANG'],'',  APP_PATH.'Tpl/Home/'.$this->sysConfig['DEFAULT_THEME'].'/');
 
- 				$this->categorys = F('Category');
 
- 				$this->Config = F('Config');
 
- 				cookie('think_language',$this->sysConfig['DEFAULT_LANG']);
 
- 			}
 
- 			$this->assign('T',$T);
 
- 			$this->assign($this->Config);
 
- 			$this->assign('Role',$this->Role);
 
- 			$this->assign('Type',$this->Type);
 
- 			$this->assign('Module',$this->module);
 
- 			$this->assign('Categorys',$this->categorys);
 
- 			import("@.ORG.Form");
 
- 			$this->assign ( 'form',new Form());
 
- 			C('HOME_ISHTML',$this->sysConfig['HOME_ISHTML']);
 
- 			C('PAGE_LISTROWS',$this->sysConfig['PAGE_LISTROWS']);
 
- 			C('URL_M',$this->sysConfig['URL_MODEL']);
 
- 			C('URL_M_PATHINFO_DEPR',$this->sysConfig['URL_PATHINFO_DEPR']);
 
- 			C('URL_M_HTML_SUFFIX',$this->sysConfig['URL_HTML_SUFFIX']);
 
- 			C('URL_LANG',$this->sysConfig['DEFAULT_LANG']);
 
- 			C('DEFAULT_THEME_NAME',$this->sysConfig['DEFAULT_THEME']);
 
- 			import("@.ORG.Online");
 
- 			$session = new Online();
 
- 			if(cookie('auth')){
 
- 				$yourphp_auth_key = sysmd5($this->sysConfig['ADMIN_ACCESS'].$_SERVER['HTTP_USER_AGENT']);
 
- 				list($userid,$groupid, $password) = explode("-", authcode(cookie('auth'), 'DECODE', $yourphp_auth_key));
 
- 				$this->_userid = $userid;
 
- 				$this->_username =  cookie('username');
 
- 				$this->_groupid = $groupid;
 
- 				$this->_email =  cookie('email');
 
- 			}else{
 
- 				$this->_groupid = cookie('groupid') ?  cookie('groupid') : 4;
 
- 				$this->_userid =0;
 
- 			}
 
- 			foreach((array)$this->module as $r){
 
- 				if($r['issearch'])$search_module[$r['name']] = L($r['name']);
 
- 				if($r['ispost'] && (in_array($this->_groupid,explode(',',$r['postgroup']))))$this->user_menu[$r['id']]=$r;
 
- 			}
 
- 			if(GROUP_NAME=='User'){
 
- 				$langext = $lang ? '_'.$lang : '';
 
- 				$this->member_config=F('member.config'.$langext);
 
- 				$this->assign('member_config',$this->member_config);
 
- 				$this->assign('user_menu',$this->user_menu);
 
- 				if($this->_groupid=='5' &&  MODULE_NAME!='Login'){
 
- 					$this->assign('jumpUrl',URL('User-Login/emailcheck'));
 
- 					$this->assign('waitSecond',3);
 
- 					$this->success(L('no_regcheckemail'));
 
- 					exit;
 
- 				}
 
- 				$this->assign('header',TMPL_PATH.'Home/'.THEME_NAME.'/Home_header.html');
 
- 			}
 
- 			if($_GET['forward'] || $_POST['forward']){
 
- 				$this->forward = get_safe_replace($_GET['forward'].$_POST['forward']);
 
- 			}else{
 
- 				if(MODULE_NAME!='Register' || MODULE_NAME!='Login' )
 
- 				$this->forward =isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] :  $this->Config['site_url'];
 
- 			}
 
- 			$this->assign('forward',$this->forward);
 
- 			$this->assign('search_module',$search_module);
 
- 			$this->assign('module_name',MODULE_NAME);
 
- 			$this->assign('group_name',GROUP_NAME);
 
- 			$this->assign('action_name',ACTION_NAME);
 
- 	}
 
-     public function index($catid='',$module='')
 
-     {
 
- 		$this->Urlrule =F('Urlrule');
 
- 		if(empty($catid)) $catid =  intval($_REQUEST['id']);
 
- 		$p= max(intval($_REQUEST[C('VAR_PAGE')]),1);
 
- 		if($catid){
 
- 			$cat = $this->categorys[$catid];
 
- 			$bcid = explode(",",$cat['arrparentid']);
 
- 			$bcid = $bcid[1];
 
- 			if($bcid == '') $bcid=intval($catid);
 
- 			if(empty($module))$module=$cat['module'];
 
- 			$this->assign('module_name',$module);
 
- 			unset($cat['id']);
 
- 			$this->assign($cat);
 
- 			$cat['id']=$catid;
 
- 			$this->assign('catid',$catid);
 
- 			$this->assign('bcid',$bcid);
 
- 		}
 
- 		if($cat['readgroup'] && $this->_groupid!=1 && !in_array($this->_groupid,explode(',',$cat['readgroup']))){$this->assign('jumpUrl',URL('User-Login/index'));$this->error (L('NO_READ'));}
 
- 		$fields = F($this->mod[$module].'_Field');
 
- 		foreach($fields as $key=>$r){
 
- 			$fields[$key]['setup'] =string2array($fields[$key]['setup']);
 
- 		}
 
- 		$this->assign ( 'fields', $fields);
 
- 		$seo_title = $cat['title'] ? $cat['title'] : $cat['catname'];
 
- 		$this->assign ('seo_title',$seo_title);
 
- 		$this->assign ('seo_keywords',$cat['keywords']);
 
- 		$this->assign ('seo_description',$cat['description']);
 
- 		if($module=='Guestbook'){
 
- 			$where['status']=array('eq',1);
 
- 			$this->dao= M($module);
 
- 			$count = $this->dao->where($where)->count();
 
- 			if($count){
 
- 				import ( "@.ORG.Page_home" );
 
- 				$listRows =  !empty($cat['pagesize']) ? $cat['pagesize'] : C('PAGE_LISTROWS');
 
- 				$page = new Page_home ( $count, $listRows );
 
- 				$page->urlrule = geturl($cat,'');
 
- 				$pages = $page->show();
 
- 				$field =  $this->module[$cat['moduleid']]['listfields'];
 
- 				$field =  $field ? $field : '*';
 
- 				$list = $this->dao->field($field)->where($where)->order('listorder desc,id desc')->limit($page->firstRow . ',' . $page->listRows)->select();
 
- 				$this->assign('pages',$pages);
 
- 				$this->assign('list',$list);
 
- 			}
 
- 			$template = $cat['module']=='Guestbook' && $cat['template_list'] ? $cat['template_list'] : 'index';
 
- 			$this->display(THEME_PATH.$module.'_'.$template.'.html');
 
- 		}elseif($module=='Page'){
 
- 			$modle=M('Page');
 
- 			$data = $modle->find($catid);
 
- 			unset($data['id']);
 
- 			//分页
 
- 			$CONTENT_POS = strpos($data['content'], '[page]');
 
- 			if($CONTENT_POS !== false) {
 
- 				$urlrule = geturl($cat,'',$this->Urlrule);
 
- 				$urlrule[0] =  urldecode($urlrule[0]);
 
- 				$urlrule[1] =  urldecode($urlrule[1]);
 
- 				$contents = array_filter(explode('[page]',$data['content']));
 
- 				$pagenumber = count($contents);
 
- 				for($i=1; $i<=$pagenumber; $i++) {
 
- 					$pageurls[$i] = str_replace('{$page}',$i,$urlrule);
 
- 				}
 
- 				$pages = content_pages($pagenumber,$p, $pageurls);
 
- 				//判断[page]出现的位置
 
- 				if($CONTENT_POS<7) {
 
- 					$data['content'] = $contents[$p];
 
- 				} else {
 
- 					$data['content'] = $contents[$p-1];
 
- 				}
 
- 				$this->assign ('pages',$pages);
 
- 			}
 
- 			$template = $cat['template_list'] ? $cat['template_list'] :  'index' ;
 
- 			$this->assign ($data);
 
- 			$this->display(THEME_PATH.$module.'_'.$template.'.html');
 
- 		}else{
 
- 			if($catid){
 
- 				$seo_title = $cat['title'] ? $cat['title'] : $cat['catname'];
 
- 				$this->assign ('seo_title',$seo_title);
 
- 				$this->assign ('seo_keywords',$cat['keywords']);
 
- 				$this->assign ('seo_description',$cat['description']);
 
- 				$where = " status=1 ";
 
- 				if($cat['child']){
 
- 					$where .= " and catid in(".$cat['arrchildid'].")";
 
- 				}else{
 
- 					$where .=  " and catid=".$catid;
 
- 				}
 
- 				
 
- 				
 
- 				$chengshi = $_GET['chengshi'];
 
- 				$app = $_GET['app'];
 
- 				$wangzhan = $_GET['wangzhan'];
 
- 				$xiaochengxu = $_GET['xiaochengxu'];
 
- 				
 
- 				if($module == "Aticle" && $chengshi){
 
- 					$where .=" and chengshi = {$chengshi}";
 
- 				}
 
- 				if($module == "Aticle" && $app){
 
- 					$where .=" and app = {$app}";
 
- 				}
 
- 				if($module == "Aticle" && $wangzhan){
 
- 					$where .=" and wangzhan = {$wangzhan}";
 
- 				}
 
- 				if($module == "Aticle" && $xiaochengxu){
 
- 					$where .=" and xiaochengxu = {$xiaochengxu}";
 
- 				}
 
- 					
 
- 					
 
- 				if(empty($cat['listtype'])){
 
- 					$this->dao= M($module);
 
- 					$count = $this->dao->where($where)->count();
 
- 					if($count){
 
- 						import ( "@.ORG.Page_home" );
 
- 						$listRows =  !empty($cat['pagesize']) ? $cat['pagesize'] : C('PAGE_LISTROWS');
 
- 						$page = new Page_home ( $count, $listRows );
 
- 						$page->urlrule = geturl($cat,'',$this->Urlrule);
 
- 						$pages = $page->show();
 
- 						$field =  $this->module[$this->mod[$module]]['listfields'];
 
- 						$field =  $field ? $field : 'id,catid,userid,url,username,title,title_style,keywords,description,thumb,createtime,hits';
 
- 						$list = $this->dao->field($field)->where($where)->order('listorder desc,id desc')->limit($page->firstRow . ',' . $page->listRows)->select();
 
- 						$this->assign('pages',$pages);
 
- 						$this->assign('list',$list);
 
- 					}
 
- 					$template_r = 'list';
 
- 				}else{
 
- 					$template_r = 'index';
 
- 				}
 
- 			}else{
 
- 				$template_r = 'list';
 
- 			}
 
- 			$template = $cat['template_list'] ? $cat['template_list'] : $template_r;
 
- 			$this->display($module.':'.$template);
 
- 		}
 
-     }
 
- 	public function show($id='',$module='')
 
-     {
 
- 		$this->Urlrule =F('Urlrule');
 
- 		$p= max(intval($_REQUEST[C('VAR_PAGE')]),1);
 
- 		$id = $id ? $id : intval($_REQUEST['id']);
 
- 		$module = $module ? $module : MODULE_NAME;
 
- 		$this->assign('module_name',$module);
 
- 		$this->dao= M($module);;
 
- 		$data = $this->dao->find($id);
 
- 		$catid = $data['catid'];
 
- 		$cat = $this->categorys[$data['catid']];
 
- 		if(empty($cat['ishtml']))$this->dao->where("id=".$id)->setInc('hits'); //添加点击次数
 
- 		$bcid = explode(",",$cat['arrparentid']);
 
- 		$bcid = $bcid[1];
 
- 		if($bcid == '') $bcid=intval($catid);
 
- 		if($data['readgroup']){
 
- 			if($this->_groupid!=1 && !in_array($this->_groupid,explode(',',$data['readgroup'])) )$noread=1;
 
- 		}elseif($cat['readgroup']){
 
- 			if($this->_groupid!=1 && !in_array($this->_groupid,explode(',',$cat['readgroup'])) )$noread=1;
 
- 		}
 
- 		if($noread==1){$this->assign('jumpUrl',URL('User-Login/index'));$this->error (L('NO_READ'));}
 
- 		$chargepoint = $data['readpoint'] ? $data['readpoint'] : $cat['chargepoint'];
 
- 		if($chargepoint && $data['userid'] !=$this->_userid){
 
- 			$user = M('User');
 
- 			$userdata =$user->find($this->_userid);
 
- 			if($cat['paytype']==1 && $userdata['point']>=$chargepoint){
 
- 				$chargepointok = $user->where("id=".$this->_userid)->setDec('point',$chargepoint);
 
- 			}elseif($cat['paytype']==2 && $userdata['amount']>=$chargepoint){
 
- 				$chargepointok = $user->where("id=".$this->_userid)->setDec('amount',$chargepoint);
 
- 			}else{
 
- 				$this->error (L('NO_READ'));
 
- 			}
 
- 		}
 
- 		$seo_title = $data['title'].'-'.$cat['catname'];
 
- 		$this->assign ('seo_title',$seo_title);
 
- 		$this->assign ('seo_keywords',$data['keywords']);
 
- 		$this->assign ('seo_description',$data['description']);
 
- 		$this->assign ( 'fields', F($cat['moduleid'].'_Field') );
 
- 		$fields = F($this->mod[$module].'_Field');
 
- 		foreach($data as $key=>$c_d){
 
- 			$setup='';
 
- 			$fields[$key]['setup'] =$setup=string2array($fields[$key]['setup']);
 
- 			if($setup['fieldtype']=='varchar' && $fields[$key]['type']!='text'){
 
- 				$data[$key.'_old_val'] =$data[$key];
 
- 				$data[$key]=fieldoption($fields[$key],$data[$key]);
 
- 			}elseif($fields[$key]['type']=='images' || $fields[$key]['type']=='files'){
 
- 				if(!empty($data[$key])){
 
- 					$p_data=explode(':::',$data[$key]);
 
- 					$data[$key]=array();
 
- 					foreach($p_data as $k=>$res){
 
- 						$p_data_arr=explode('|',$res);
 
- 						$data[$key][$k]['filepath'] = $p_data_arr[0];
 
- 						$data[$key][$k]['filename'] = $p_data_arr[1];
 
- 					}
 
- 					unset($p_data);
 
- 					unset($p_data_arr);
 
- 				}
 
- 			}
 
- 			unset($setup);
 
- 		}
 
- 		$this->assign('fields',$fields);
 
- 		//手动分页
 
- 		$CONTENT_POS = strpos($data['content'], '[page]');
 
- 		if($CONTENT_POS !== false) {
 
- 			$urlrule = geturl($cat,$data,$this->Urlrule);
 
- 			$urlrule =  str_replace('%7B%24page%7D','{$page}',$urlrule);
 
- 			$contents = array_filter(explode('[page]',$data['content']));
 
- 			$pagenumber = count($contents);
 
- 			for($i=1; $i<=$pagenumber; $i++) {
 
- 				$pageurls[$i] = str_replace('{$page}',$i,$urlrule);
 
- 			}
 
- 			$pages = content_pages($pagenumber,$p, $pageurls);
 
- 			//判断[page]出现的位置是否在文章开始
 
- 			if($CONTENT_POS<7) {
 
- 				$data['content'] = $contents[$p];
 
- 			} else {
 
- 				$data['content'] = $contents[$p-1];
 
- 			}
 
- 			$this->assign ('pages',$pages);
 
- 		}
 
- 		if(!empty($data['template'])){
 
- 			$template = $data['template'];
 
- 		}elseif(!empty($cat['template_show'])){
 
- 			$template = $cat['template_show'];
 
- 		}else{
 
- 			$template =  'show';
 
- 		}
 
- 		$this->assign('catid',$catid);
 
- 		$this->assign ($cat);
 
- 		$this->assign('bcid',$bcid);
 
- 		$this->assign ($data);
 
- 		$this->display($module.':'.$template);
 
-     }
 
- 	public function down()
 
- 	{
 
- 		$module = $module ? $module : MODULE_NAME;
 
- 		$id = $id ? $id : intval($_REQUEST['id']);
 
- 		$this->dao= M($module);
 
- 		$filepath = $this->dao->where("id=".$id)->getField('file');
 
- 		$this->dao->where("id=".$id)->setInc('downs');
 
- 		if(strpos($filepath, ':/')) {
 
- 			header("Location: $filepath");
 
- 		} else {
 
- 			$filepath = '.'.$filepath;
 
- 			if(!$filename) $filename = basename($filepath);
 
- 			$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
 
- 			if(strpos($useragent, 'msie ') !== false) $filename = rawurlencode($filename);
 
- 			$filetype = strtolower(trim(substr(strrchr($filename, '.'), 1, 10)));
 
- 			$filesize = sprintf("%u", filesize($filepath));
 
- 			if(ob_get_length() !== false) @ob_end_clean();
 
- 			header('Pragma: public');
 
- 			header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
 
- 			header('Cache-Control: no-store, no-cache, must-revalidate');
 
- 			header('Cache-Control: pre-check=0, post-check=0, max-age=0');
 
- 			header('Content-Transfer-Encoding: binary');
 
- 			header('Content-Encoding: none');
 
- 			header('Content-type: '.$filetype);
 
- 			header('Content-Disposition: attachment; filename="'.$filename.'"');
 
- 			header('Content-length: '.$filesize);
 
- 			readfile($filepath);
 
- 		}
 
- 		exit;
 
- 	}
 
- 	public function hits()
 
- 	{
 
- 		$module = $module ? $module : MODULE_NAME;
 
- 		$id = $id ? $id : intval($_REQUEST['id']);
 
- 		$this->dao= M($module);
 
- 		$this->dao->where("id=".$id)->setInc('hits');
 
- 		if($module=='Download'){
 
- 			$r = $this->dao->find($id);
 
- 			echo '$("#hits").html('.$r['hits'].');$("#downs").html('.$r['downs'].');';
 
- 		}else{
 
- 			$hits = $this->dao->where("id=".$id)->getField('hits');
 
- 			echo '$("#hits").html('.$hits.');';
 
- 		}
 
- 		exit;
 
- 	}
 
- 	public function verify()
 
-     {
 
- 		header('Content-type: image/jpeg');
 
-         $type	 =	 isset($_GET['type'])? get_safe_replace($_GET['type']):'jpeg';
 
-         import("@.ORG.Image");
 
-         Image::buildImageVerify(4,1,$type);
 
-     }
 
- }
 
- ?>
 
 
  |