83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
class BaseController{
 | 
						|
	public $tplParams = array();
 | 
						|
	public $layout = NULL;
 | 
						|
	public $layoutTpl = true;
 | 
						|
	function __construct(){
 | 
						|
		//if token is expires clear it
 | 
						|
		if( $_SESSION['expiresTime'] && $_SESSION['expiresTime']  <= time() ){
 | 
						|
			$_SESSION = array();
 | 
						|
		}
 | 
						|
		if(isset($_GET['tokenString'])){
 | 
						|
			$tokenString=explode(".", $_GET['tokenString']);
 | 
						|
			$token= json_decode(base64_decode($tokenString[1]) , true );
 | 
						|
		}
 | 
						|
		if($token['oauth_token']){
 | 
						|
			Weibo::init( c('akey') , c('skey') ,$tokenInfo['oauth_token'] );
 | 
						|
			Weibo::setIp('202.110.0.5');
 | 
						|
			$res = Weibo::show_user_by_id( $tokenInfo['user_id'] );
 | 
						|
			if( $res && !isset( $res['error_code'] ) ){
 | 
						|
				foreach ($res as $key => $value) {
 | 
						|
					$_SESSION[$key] = $value;
 | 
						|
				}
 | 
						|
				$_SESSION['__SINA']['TOKEN'] = $tokenInfo['oauth_token'];
 | 
						|
				$_SESSION['expiresTime'] = $tokenInfo['expires'] + time();
 | 
						|
			}
 | 
						|
		}else{
 | 
						|
			Weibo::init( c('akey') , c('skey') ,$_SESSION['__SINA']['TOKEN'] );
 | 
						|
			Weibo::setIp('202.110.0.5');
 | 
						|
		}
 | 
						|
		//init weibo Class
 | 
						|
	}
 | 
						|
	protected function _add( $key , $value = NULL ){
 | 
						|
		if( $value == NULL && is_array($key) ){
 | 
						|
			$this->tplParams += $key;
 | 
						|
		}else{
 | 
						|
			$this->tplParams[$key] = $value;		
 | 
						|
		}
 | 
						|
	}
 | 
						|
	protected function showMessage( $message , $type = 'notice' , $show = true ){
 | 
						|
		$message = '<message type="'.$type.'">'.$message.'</message>';
 | 
						|
		if( $show ){
 | 
						|
			echo $message;
 | 
						|
		}else{
 | 
						|
			return $message;	
 | 
						|
		}
 | 
						|
	}
 | 
						|
	protected function render( $tplName = NULL , $data = array() ){
 | 
						|
		if( $data && is_array( $data )  ){
 | 
						|
			$data = array_merge( $data ,  $this->tplParams );
 | 
						|
		}else{
 | 
						|
			$data = $this->tplParams;
 | 
						|
		}
 | 
						|
		if( !$tplName ){
 | 
						|
			$tpl = $tplName?$tplName:get_class($this);
 | 
						|
			if( Url::getMethod() != c('default_method') ){
 | 
						|
				$tpl .= '_'.Url::getMethod();
 | 
						|
			}
 | 
						|
		}else{
 | 
						|
			$tpl = $tplName;
 | 
						|
		}
 | 
						|
		
 | 
						|
		render( $data , $tpl , $this->layout , $this->layoutTpl );
 | 
						|
	}
 | 
						|
	protected function getAjax( $method , $extra = array() ){
 | 
						|
		if( !method_exists(  $this , $method ) ) die('Ajax method is not exists' );
 | 
						|
		//save  info
 | 
						|
		$url = Url::getUrl();
 | 
						|
		
 | 
						|
		$extra['method'] = $method;
 | 
						|
		$GLOBALS['__isAjax'] = true;
 | 
						|
		
 | 
						|
		Url::setUrl( Url::make($extra) );
 | 
						|
 | 
						|
		ob_start();
 | 
						|
		$this->$method();
 | 
						|
		$html = ob_get_clean();
 | 
						|
		//replace back
 | 
						|
		unset($GLOBALS['__isAjax']);
 | 
						|
		Url::setUrl( $url );
 | 
						|
		
 | 
						|
		return $html;
 | 
						|
	}
 | 
						|
} |