mandys Codeigniter 后台配置

Codeigniter 2.0.0 已经发布快一个月了,关于新版本的一些变化大家可以查看CI中国网站有详细说明,本文主要讲述多目录配置以及URL设置这两个问题。

目标一:CI 2.0 多目录(应用程序)配置。

多目录的意思是指在同一个网站中有多套程序,最简单的例子就是网站的前台展示与后台管理。二者由于在网站功能中分属不同部分,通常会有不同的界面, 用到images/stylesheet/javavascript基本是分开的,所以设置不同目录。直观的例子来看,形如以下:

网站前台URL:http://www.aaa.com 网站后台管理URL::http://www.aaa.com/admin

CI 2.0源码下载解压后文件结构如下图,默认是只有一个目录的。

\

为了达成多目录共享一个CodeIgniter的目标,我们要完成以下步骤:

1、 在application目录下新建子目录admin,将上图中红框标注的5个文件夹复制到admin下。这五个文件夹的的作用简单描述一下,详细说明可参考CI官网:

admin/config:基本配置文件

autoload.php 可设置本目录程序默认加载哪些类库;

config.php 可设置仅限本目录程序的一些全局变量;

database.php 可设置仅限本目录程序的数据库连接(DSN)变量;

routes.php  可设置本目录程序的默认加载控制器。

admin/controllers:存放本目录控制器

admin/libraris:存放本目录CI类库

admin/models:存放本目录的模型文件,这个地方有必要解释一下,通常前台后台用到的数据表(table)是相同的,但是对数据表的基本 操作是不同的,现在的做法用来将各部分常用的数据模型操作写成function分别存放,当然也不排除两部分会有相同情况,如都可以自定义方法 get_all()用来读取当前模型(table)的所有数据。

admin/view:存放本目录的视图,可以理解为page。

2、设置入口文件。因为根目录下的index.php默认是去找applcation下的controllers下的控制器,为了读取 applcation/admin/controllers下的控制器,我们需要在网站根目录下新建admin文件,并将根目录下的index.php复 制至此,接下来编辑此index.php,找到:

$system_path = "system";   //改为 $system_path = "../system";
$application_folder="application";  //改为 $application_folder = "../application/admin";

另外此目录可能用到的css/js/images 文件夹 也可以放在新建的admin之下。

此时的程序目录结构如下:

\

至此,第一个目标已经实现,我把两个目录的默认控制器加载的视图分别做了一下修改,现在给大家展示下我们第一个目标的成果。

前台:

\
后台:
\

目标二:设置友好简洁的URL。

第一个目标完成之后,现在通过URL http://ci.home/admin 可以去读取当前应用程序里面配置文件中默认设置好的控制器welcome,但是对于非默认的控制器读取url就有些略长了,比如在admin/applcation/controllers里有一个login控制器(对应程序就是login类)用来显示后台登陆页面,需要通过这个url才能访问 http://ci.home/admin/index.php/login/index ,根据CI规则,如果url中不写类的方法会默认读取index()方法,所以上面这个url也可以通过http://ci.home/admin/index.php/login访问。

要实现的目标显然不是上面这个,这个URL中还有一个index.php是看着不舒服的,真正的目标是把它去掉。实现方式其实很简单,那就是通过.htaccess文件对URL重写(rewrite)。接下来在根目录下admin文件里里面创建一个.htaccess文件,内容如下:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|scripts|robots\.txt|)
RewriteRule ^(.*)$ index.php/$1 [L]

不熟悉apache .htaccess文件重写规则的可以去查一下文档,此处规则是将对admin的访问除images、css、js、scripts外都转向此目录下的index.php。

codeigniter 实现登陆 后台auth权限 管理员管理 项目文件请参考 根目录下的CI文件夹 个人娱乐,使用CI框架进行开发一个含有登陆,auth权限验证,后台管理员管理登陆的简单项目 1:数据库结构如下(使用mysql) /* Navicat Premium Data Transfer Source Server : mysql_localhot Source Server Type : MySQL Source Server Version : 50624 Source Host : localhost Source Database : codeigniter Target Server Type : MySQL Target Server Version : 50624 File Encoding : utf-8 Date: 09/28/2015 17:07:46 PM */ SET FOREIGN_KEY_CHECKS = 0; -- Table structure for auth_group DROP TABLE IF EXISTS auth_group; CREATE TABLE auth_group ( id mediumint(8) unsigned NOT NULL AUTO_INCREMENT, title char(100) NOT NULL DEFAULT '', status tinyint(1) NOT NULL DEFAULT '1', rules varchar(256) NOT NULL DEFAULT '', PRIMARY KEY (id) ) ENGINE=MyISAM AUTO_INCREMENT=44 DEFAULT CHARSET=utf8; -- Table structure for auth_group_access DROP TABLE IF EXISTS auth_group_access; CREATE TABLE auth_group_access ( uid mediumint(8) unsigned NOT NULL, group_id mediumint(8) unsigned NOT NULL, UNIQUE KEY uid_group_id (uid,group_id), KEY uid (uid), KEY group_id (group_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- Table structure for auth_rule DROP TABLE IF EXISTS auth_rule; CREATE TABLE auth_rule ( id mediumint(8) unsigned NOT NULL AUTO_INCREMENT, name char(80) NOT NULL DEFAULT '', title varchar(255) NOT NULL DEFAULT '', type tinyint(1) NOT NULL DEFAULT '1', status tinyint(1) NOT NULL DEFAULT '1', condition char(100) NOT NULL DEFAULT '', parent_id mediumint(8) DEFAULT '0', sort mediumint(8) DEFAULT '1', display tinyint(1) NOT NULL DEFAULT '1' COMMENT '1:显示 0:不显示', class varchar(64) DEFAULT NULL, PRIMARY KEY (id), UNIQUE KEY name (name) ) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; -- Table structure for user DROP TABLE IF EXISTS user; CREATE TABLE user ( id int(11) unsigned NOT NULL AUTO_INCREMENT, username varchar(255) NOT NULL, password varchar(64) NOT NULL, email char(100) DEFAULT NULL, mobile char(15) DEFAULT NULL, reg_ip varchar(15) DEFAULT NULL, reg_time int(10) DEFAULT NULL, last_login_time int(10) DEFAULT NULL, last_login_ip varchar(15) DEFAULT NULL, login_count int(11) DEFAULT NULL, update_time int(10) DEFAULT NULL, status enum('1','0') DEFAULT '1' COMMENT '1:激活 0:禁用', del enum('0','1') DEFAULT '0' COMMENT '1:删除', role tinyint(2) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; SET FOREIGN_KEY_CHECKS = 1; 2:了解该项目主要是如何熟悉一个新框架的工作原理,如果快速开发,怎样搭建一个项目。 1):框架的layout(网上查找,主要有两种方式,比较方便是通过写layout类),如下:admin/libraries/Layout.php 在Controller中定义公共类My_Controller继承CI_Controller,在构造函数中直接加载,如下:admin/controllers/MY_Controller.php 2):在ci如何加载css,js,image等等公共文件,在对应的模块中helper中可以扩展url,我的扩展如下(我是使用bootstrap进行搭建后台):admin/helpers/MY_url_helper.php 3):在layout定义layout视图文件,具体看code 注意:加载url中助手类中自定义方法,需要$this->load->helper('url');例如 3,具体的ci项目是如何进行工作,参考codeigniter手册以及项目代码 4,时间匆忙,也属于学习ci框架阶段,可能有错误或者code有问题的地方,尽请谅解,后面继续完善
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值