添加了diliCMS关于 libraries 的较详细注释,给需要的朋友参考
最近正在研究 diliCMS 的源码,看原来的注释做的不是太好,就自己加了注,刚把 libraies 里的加完,正在研究 model 部分,coronterll 部分也随后上传,如果想深入研究一下 diliCMS 的朋友,可以参考一下.见附件,本人不平有限,有些可能理解不正确,暂作抛砖引玉吧!
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
define('IN_DiliCMS',TRUE);
define('DiliCMS_VERSION','V2.0.0');
define('DiliCMS_BUILDTIME','2011年11月16日 20:01:37');
if(!defined('EXT')) { define('EXT','.php'); } //CI从2.0.3开始放弃该常量,这里做个兼容
/**
* 控制器基类
*/
abstract class Dili_Controller extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->library('dili/platform');
$this->load->library('dili/settings');
$this->load->helper('url');
}
}
/**
* 原注:前台控制器扩展例子
*/
abstract class Front_Controller extends Dili_Controller {
function __construct() {
parent::__construct();
$this->load->switch_theme('on',setting('site_theme'));
}
function _template($template, $data = array()) {
$data['tpl'] = $template;
$this->load->view('default',$data);
}
}
/**
* dili 本身后台基类
* 原注:后台控制器扩展,如果您不了解其作用,请不要随意更改此处
*/
abstract class Admin_Controller extends Dili_Controller {
/**
* 构造函数
*/
function __construct() {
parent::__construct();
date_default_timezone_set('PRC');//强制时区为PRC,以后可增加配置变量
$this->settings->load('backend');
$this->load->switch_theme('on',setting('backend_theme'),'admincp/');
//设置session参数
$this->config->set_item('sess_cookie_name' ,'dili_session');
$this->config->set_item('sess_expiration' , 7200);
$this->config->set_item('sess_expire_on_close' ,FALSE);
$this->config->set_item('sess_encrypt_cookie' ,FALSE);
$this->config->set_item('sess_use_database' ,TRUE);
$this->config->set_item('sess_table_name' ,'dili_sessions') ;
$this->config->set_item('sess_match_ip' ,FALSE) ;
$this->config->set_item('sess_match_useragent' ,TRUE) ;
$this->config->set_item('sess_time_to_update' ,300) ;
//
$this->load->database();
$this->load->library('session');
$this->_check_login(); //检测是否登录
$this->load->library('dili/acl'); //处理访问权限
$this->load->library('dili/plugin_manager'); //处理插件
}
/**
* 检测是否登录
*/
function _check_login() {
if(! $this->session->userdata('uid')) {//如果没有用户登录过,则转向登录页面
redirect(setting('backend_access_point').'/login');
}
else { //否则取用户信息、角色等相关信息
$this->_admin = $this->db->select('dili_admins.uid , dili_admins.username, dili_admins.role , dili_roles.name')
->from('dili_admins')
->join('dili_roles','dili_roles.id = dili_admins.role')
->where('dili_admins.uid' , $this->session->userdata('uid') )
->get()
->row();
}
}
/**
* 设置渲染模板
*
* @param string $template 模板名称
* @param array $data 渲染数据
*/
function _template($template, $data = array()) {
$data['tpl'] = $template;
$this->load->view('sys_entry',$data);
}
/**
* 检测某个方法的访问权限
*
* @param string $action 方法(动作)名称
*/
function _check_permit($action = '') {
if(!$this->acl->permit($action)) {
$this->_message('对不起,你没有访问这里的权限!','',false);
}
}
/**
* 打印信息并转向
*
* @param string $msg 显示信息
* @param string $goto 转向地址
* @param bool $auto 是否有自动跳转,比如 js 读秒
* @param string $fix URL的附加信息
*/
function _message($msg, $goto = '',$auto = true,$fix = '') {
if($goto == ''){ //如果没有设置转向页面,则返回,如果不能获取来源页,则返回首页
$goto = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : site_url();
}
else { //如果没有设置 http 前缀,则添加
$goto = strpos($goto,'http') !== false ? $goto : backend_url($goto);
}
$goto .= $fix;
$this->_template('sys_message',array('msg'=>$msg,'goto'=>$goto,'auto'=>$auto));
echo $this->output->get_output();
exit();
}
}
/**
* 后台URI生成函数
*
* @param string $uri 基本url地址
* @param string $qs 附加的字符串
* @return string 生成的地址
*/
function backend_url($uri,$qs = '') {
return site_url(setting('backend_access_point').'/'.$uri).($qs == '' ? '' : '?'.$qs);
} 支持 大侠发布一个前台应用的实例吧 万谢 :D谢谢了! kuailewang 发表于 2012-2-17 09:54 static/image/common/back.gif
支持 大侠发布一个前台应用的实例吧 万谢
同求 等待model controller的注释 谢谢 前台。。。。。支持 这个好东西啊。。
对研究代码很有帮助。:D 。。。:@ 正在看,不错,算是国产的基于CI的CMS
页:
[1]
2