<?php
// header("Cache-Control:max-age=86400");

//set_time_limit(60);
error_reporting(0);
/*ini_set("display_errors", "On");
error_reporting(E_ALL | E_STRICT);*/

//ob_start("ob_gzip");

require_once(dirname(__FILE__)."/config/config.inc.php");

require_once(DIR_CMS_INCLUDES."/lib/Application.inc.php");

require_once(DIR_CMS_INCLUDES."/lib/CreateHtml.inc.php");

require_once(DIR_CMS_INCLUDES."/lib/Model.php");

require_once(DIR_ROOT."/lib/common.php");

$log = & new MondayLog(LOG_SERVER, DEFAULT_CHARSET, LOG_MODEL);
$log->beginCheckpoint("index.php");
$log->input('_REQUEST', replaceBackslashBeforeSlash(varDumpToString($_REQUEST)));
$log->input('_SERVER', replaceBackslashBeforeSlash(varDumpToString($_SERVER)));
$log->input('_GET', replaceBackslashBeforeSlash(varDumpToString($_GET)));
$log->input('_POST', replaceBackslashBeforeSlash(varDumpToString($_POST)));
$app = new Application();
$app->includeClass("UserAuth");
$app->includeClass("Category");
$app->includeClass("DB");

$app->includeClass("PageTurnRewrite");

$app->includeClass("DataSet");

$app->includeClass("Server");

$app->setDefaultModule("main");

$app->setModuleRoot(MODULE_DIR);
$app->run();
$log->endCheckpoint("index.php");
class Page
{

        var $app;

        var $db;

        var $err;

        var $lang;

        var $tpl;

        var $in;

        var $objDataSet;

        var $objCategory;

        var $objUserAuth;

        var $objOptHtml;

        var $objTblBlock;

        var $objStr;

        var $objServer;

        var $fromUrl;

        // add by LyuQiang, 2021.01.23
        protected $mlog;

    private $paths = array();


    function Page(& $app)

    {

        global $sys_objErr, $sys_objLang;

		$_SESSION['pageType'] = "rewrite";



        $this->app         = & $app;

        $this->db          = & $app->connectDb(HOST,USERNAME,PASSWORD,DATABASE);

        $this->err         = & $sys_objErr;

        $this->lang        = & $sys_objLang;

		

        //$this->tpl         = & $app->tpl($this->lang->lang,$this->lang->lang."_c","./");

        $this->tpl         = & $app->tpl("zh","zh_c","./");

        $this->in          = & $app->in;

        $this->objDataSet  = & $app->dataSet($this->db);

        $this->fromUrl     = & $app->fromUrl;

		$this->objUserAuth = & new UserAuth(TBL_USER,$this->db);

		$this->objServer   = & new Server();



        header('Content-Type: text/html; charset='.CHARSET);

        $this->tpl->set("charset",CHARSET);

		$this->tpl->set("SITE_NAME",SITE_NAME);

		$this->tpl->set("language",'zh');

		//设置登陆信息

		$this->tpl->set("_username",$_COOKIE['CKY_username']);

		$this->tpl->set("_uid",$_COOKIE['CKY_uid']);

		$this->tpl->set("_sign_",$_COOKIE['_sign']);

        $this->mlog = & new MondayLog(LOG_SERVER, DEFAULT_CHARSET, LOG_MODEL);
    }



    

    function page_err()

    {

        $tpl = & $this->tpl;



        $tpl->set("inc_content","err.htm");

        $tpl->parse('page.htm');



        $errMsg = $this->err->getMsg() ;

        if (empty($errMsg))return false;



        $tpl->set("inc_left",'');

        $tpl->set("inc_top",'');

        $tpl->set("title","错误信息");

        $tpl->set("errMsg",$errMsg);



        $this->err->reset();



        $tpl -> output();



        wdtechExit();
        return true;
    }



    function page_debug($debugMsg,$gotoUrl,$Delayed = 3000)

    {

        $tpl = & $this->tpl;



        $tpl->set("inc_content","debug.htm");

        $tpl->parse('page.htm');



        $tpl->set("inc_left",'');

        $tpl->set("inc_top",'');

        $tpl->set("title","Debug Msg");



        $tpl->set("debugMsg",$debugMsg);

        $tpl->set("gotoUrl",$gotoUrl);

        $tpl->set("Delayed",$Delayed);
		 $tpl -> set("theTitle",iconv("UTF-8","gbk//TRANSLIT","提示信息"));

  //      $tpl -> set("theTitle",iconv("gbk//TRANSLIT","UTF-8","提示信息"));

//	die($Delayed);

        $tpl -> output();

        wdtechExit();
    }



    function page_unload()

    {

        $this->db->close();

    }



    function getColumnStr($str,$orderfield,$arrow='')

    {

        if ($this->in['orderfield'] != $orderfield)$columnStr = '<a href="index.php?orderfield='.$orderfield.'&ordermode=asc&'.$this->objServer->getQueryString(array('orderfield','ordermode')).'">'.$str." ".$arrow.'</a>' ;

        else if ($this->in['ordermode'] == 'asc') $columnStr = '<a href="index.php?orderfield='.$orderfield.'&ordermode=desc&'.$this->objServer->getQueryString(array('orderfield','ordermode')).'">'.$str.' ↓</a>' ;

        else  $columnStr = '<a href="index.php?orderfield='.$orderfield.'&ordermode=asc&'.$this->objServer->getQueryString(array('orderfield','ordermode')).'">'.$str.' ↑</a>' ;

        return $columnStr;

    }

	/**

	 * 取得导航条

	 *

	 */

	function getNav($id,$module)

    {

        $NavData = $this->category->getnav($id);

		$NavStr = '';

		if(!is_array($NavData)) return false;

		foreach($NavData as $key => $val)

		{

			$NavStr .= "--<a href='index.php?module=$module&ClassID=".$val['ID']."'>".$val['Name']."</a>";

		}

        return $NavStr;

    }

	/**

	 * 读取顶极分类信息

	 *

	 */

	function getClassName($id = 0)

    {

		$id >0 ? $Nav = $this->category->getnav($id) 

			: $Name = '';

		if(is_array($Nav)){

			for($i=0,$n=count($Nav);$i<$n;$i++){

				if($Nav[$i]['PID'] == 0){

					$Name = $Nav[$i]['Name'];

					break;

				}

			}

		}else $Name = ''; 

    	return $Name;

	}

	

	//验证用户是否已登陆

	function validLogin()

	{

		$userInfo = $this -> isLogin();

		if(!$userInfo) {

			$this -> page_debug("请先登陆！","/login/login.shtml");

		}

		return $userInfo;

	}

	

	function isLogin()

	{

		$userInfo = explode("\n",authcode($_COOKIE['CKY_sid'],"DECODE"));

		if(empty($userInfo[2])) {

			return false;

		}

		return $userInfo;

	}

	

	function loadModel($model)

	{

		static $modelObj;

		

		if(!$modelObj[$model]) {

			require_once(DIR_ROOT."model/".$model.".php");

			$modelObj[$model] = new $model();

		}

		

		return $modelObj[$model];

	}

}//end class



function ob_gzip($content)// content就是要压缩的页面内容，或者说饼干原料

{

	if(!headers_sent()&&//如果页面头部信息还没有输出

	extension_loaded("zlib")&&//而且zlib扩展已经加载到PHP中

	strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip"))//而且浏览器说它可以接受GZIP的页面

	{

		$content=gzencode($content."\n//此页已压缩",9);//为准备压缩的内容贴上“//此页已压缩”的注释标签，然后用zlib提供的gzencode()函数执行级别为9的压缩，这个参数值范围是0-9，0表示无压缩，9表示最大压缩，当然压缩程度越高越费CPU。

		

		//然后用header()函数给浏览器发送一些头部信息，告诉浏览器这个页面已经用GZIP压缩过了！

		header("Content-Encoding:gzip");

		header("Vary:Accept-Encoding");

		header("Content-Length:".strlen($content));

	}

	return $content;//返回压缩的内容，或者说把压缩好的饼干送回工作台。

}
?>