用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5907|回复: 14
收起左侧

添加了diliCMS关于 libraries 的较详细注释,给需要的朋友参考

  [复制链接]
发表于 2012-2-16 16:58:27 | 显示全部楼层 |阅读模式
最近正在研究 diliCMS 的源码,看原来的注释做的不是太好,就自己加了注,刚把 libraies 里的加完,正在研究 model 部分,coronterll 部分也随后上传,如果想深入研究一下 diliCMS 的朋友,可以参考一下.

见附件,本人不平有限,有些可能理解不正确,暂作抛砖引玉吧!

libraries_dili.rar (33.63 KB, 下载次数: 186)
 楼主| 发表于 2012-2-16 17:03:37 | 显示全部楼层
PHP复制代码
<?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);
        }
复制代码
发表于 2012-2-17 09:54:50 | 显示全部楼层
支持 大侠发布一个前台应用的实例吧 万谢   
发表于 2012-3-6 16:34:37 | 显示全部楼层
谢谢了!
发表于 2012-3-9 15:22:26 | 显示全部楼层
kuailewang 发表于 2012-2-17 09:54
支持 大侠发布一个前台应用的实例吧 万谢

同求
发表于 2012-3-13 10:52:40 | 显示全部楼层
等待model controller的注释 谢谢
发表于 2012-3-16 15:00:49 | 显示全部楼层
前台。。。。。支持
发表于 2012-3-16 23:04:10 | 显示全部楼层
这个好东西啊。。
对研究代码很有帮助。
发表于 2012-3-22 15:09:54 | 显示全部楼层
。。。

评分

参与人数 1威望 -3 收起 理由
jeongee -3 不要灌水啊

查看全部评分

发表于 2012-4-9 15:36:08 | 显示全部楼层
正在看,不错,算是国产的基于CI的CMS

本版积分规则