Files
xinhu/include/Action.php
2024-10-18 15:27:40 +08:00

231 lines
5.8 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
*****************************************************************
* 联系QQ 290802026/1073744729 *
* 版 本: V2.0 *
* 开发者:雨中磐石工作室 *
* 邮 箱: admin@rockoa.com *
* 网 址: http://www.rockoa.com/ *
* 说 明: 主控制器处理 *
* 备 注: 未经允许不得商业出售,代码欢迎参考纠正 *
*****************************************************************
*/
abstract class mainAction{
public $rock;
public $db;
public $smarty;
public $smartydata = array(); //模版数据
public $assigndata = array();
public $display = true; //是否显示模板
public $bodytitle = ''; //副标题
public $keywords = ''; //关键词
public $description = ''; //说明
public $linkdb = true; //是否连接数据库
public $params = array(); //参数
public $now;
public $date;
public $ip;
public $web;
public $title = TITLE;
public $titles = '';
public $option;
public $jm;
public $table;
public $extentid = 0;
public $importjs = '';
public $perfix = '';
public $tplname = ''; //模板文件
public $tplpath = ''; //模板文件路径
public $tpltype = 'tpl';
public $tpldom = 'html';
public $displayfile = '';
public $bodyMessage = ''; //返回的内容
public function __construct()
{
$this->rock = $GLOBALS['rock'];
$this->smarty = $GLOBALS['smarty'];
$this->jm = c('jm', true);
$_obj = c('lang');if($_obj!=NULL && method_exists($_obj,'initLang'))$_obj->initLang();
$this->now = $this->rock->now();
$this->date = $this->rock->date;
$this->ip = $this->rock->ip;
$this->web = $this->rock->web;
$this->perfix = PREFIX;
$this->display = true;
$this->initMysql();
$this->initConstruct();
$this->getTheme();
$this->initProject();
$this->initAction();
}
public function defaultAction(){}
public function initAction(){}
public function initProject(){}
public function afterAction(){}
public function initMysql(){}
public function beforeAction(){}
public function T($n)
{
return $this->perfix.''.$n;
}
public function assign($k, $v)
{
$this->assigndata[$k]=$v;
}
private function initConstruct()
{
$linkdb = $this->rock->get('linkdb','true');
$this->params = explode('-', $this->rock->get('s')); //参数
if($linkdb == 'true' && $this->linkdb){
$this->initMysqllink();
}
}
private function initMysqllink()
{
$this->db = import(DB_DRIVE);
$GLOBALS['db'] = $this->db;
include_once(''.ROOT_PATH.'/include/Model.php');
$this->option = m('option');
}
private function setBasedata()
{
$this->smartydata['bodytitle'] = $this->bodytitle;
$this->smartydata['keywords'] = $this->keywords;
$this->smartydata['description']= $this->description;
$this->smartydata['title'] = $this->title;
$this->smartydata['titles'] = $this->titles;
$this->smartydata['rewrite'] = REWRITE;
$this->smartydata['now'] = $this->now;
$this->smartydata['web'] = $this->rock->web;
$this->smartydata['ip'] = $this->ip;
$this->smartydata['url'] = URL;
$this->smartydata['urly'] = URLY;
$web = $this->rock->web;
$this->assign('web', $web);
$showheader = 1;
$hide = $this->get('hideheader', $this->getsession('hideheader'));
if($hide=='true')$this->rock->savesession(array('hideheader' => $hide));
if($this->rock->iswebbro(0)
|| $this->rock->iswebbro(1)
|| $this->rock->iswebbro(4)
|| $this->rock->iswebbro(7)
|| $hide=='true'
|| $this->get('headerhide')=='true'
|| $this->rock->iswebbro(2))$showheader = 0; //隐藏头部
if($this->get('showheader')=='true')$showheader = 1;
$this->assign('showheader', $showheader);
$nowtime = $this->getsession('nowtime');
if(!$nowtime || getconfig('systype')=='dev'){
$nowtime = time();
$this->rock->setsession('nowtime', $nowtime);
}
$this->assign('nowtime', $nowtime);
}
//主题颜色处理
public function getTheme()
{
$theme = $this->get('apptheme');
if($theme){
$this->rock->setsession('apptheme', $theme);
}else{
$theme = $this->getsession('apptheme');
}
if($theme)$theme = '#'.$theme.'';
if(!$theme || strlen($theme)!=7)$theme = getconfig('apptheme', '#1389D3'); //默认颜色
$this->assign('apptheme', $theme);
return substr($theme, 1);
}
public function setSmartyData()
{
$this->setBasedata();
}
public function setHtmlData()
{
$this->setBasedata();
}
public function getsession($name,$dev='')
{
return $this->rock->session($name, $dev);
}
public function post($na, $dev='', $lx=0)
{
return $this->rock->post($na, $dev, $lx);
}
public function get($na, $dev='', $lx=0)
{
return $this->rock->get($na, $dev, $lx);
}
public function request($na, $dev='', $lx=0)
{
return $this->rock->request($na, $dev, $lx);
}
public function isempt($str)
{
return $this->rock->isempt($str);
}
public function contain($str, $a)
{
return $this->rock->contain($str, $a);
}
public function getcookie($name, $dev='')
{
return $this->rock->cookie($name, $dev);
}
public function stringformat($str, $arr=array())
{
return $this->rock->stringformat($str, $arr);
}
public function getcan($i,$dev='')
{
$val = '';
if(isset($this->params[$i]))$val=$this->params[$i];
if($this->rock->isempt($val)){
$val=$dev;
}else{
$val=str_replace('[a]','-',$val);
}
return $val;
}
public function getmnumAjax()
{
$mnum = $this->rock->request('mnum');
$rows = $this->option->getmnum($mnum);
echo json_encode($rows);
}
public function returnjson($arr)
{
echo json_encode($arr);
exit();
}
public function showreturn($arr='', $msg='', $code=200)
{
showreturn($arr, $msg, $code);
}
}