关于网站前后台的第二种制作方法 [ 技术分享 ]
第一步:用GII会成一个admin的模块[attach]137[/attach]这是目录结构这个用GII就可以创建出来,这步大家都会使用,我不再详细讲解其使用。 第二步:打开(模块名+Module.php)的文件,我这里是oldweeklyadminModule.php文件进行编辑 里面有一个OldweeklyadminModule的类继承于CWebModule 首先我们调用init的方法
public function init()
{
parent::init();//这步是调用main.php里的配置文件
//当Module创建时这个方法就会被调用
// 我们可以修改代码来定制Module
// import the module-level models and components
$this->setImport(array(
'oldweeklyadmin.models.*',
'oldweeklyadmin.components.*',
));
//这里重写父类里的组件
//如有需要还可以参考API添加相应组件
Yii::app()->setComponents(array(
'errorHandler'=>array(
'class'=>'CErrorHandler',
'errorAction'=>'oldweeklyadmin/default/error',
),
'user'=>array(
'class'=>'CWebUser',
'stateKeyPrefix'=>'oldweeklyadmin',
'loginUrl'=>Yii::app()->createUrl('oldweeklyadmin/default/login'),
),
), false);
$this->generatorPaths[]='oldweeklyadmin.generators';
$this->controllerMap=$this->findGenerators();
}
如果进入module的时候要进行密码验证并且和前台登录分开 就要进行设置对执行的动作进行识别
public function beforeControllerAction($controller, $action)
{
if(parent::beforeControllerAction($controller, $action))
{
$route=$controller->id.'/'.$action->id;
if(!$this->allowIp(Yii::app()->request->userHostAddress) && $route!=='default/error')
throw new CHttpException(403,"You are not allowed to access this page.");
$publicPages=array(
'default/login',
'default/error',
);
if(Yii::app()->user->isGuest && !in_array($route,$publicPages))
Yii::app()->user->loginRequired();
else
return true;
}
return false;
}
protected function allowIp($ip)
{
if(empty($this->ipFilters))
return true;
foreach($this->ipFilters as $filter)
{
if($filter==='*' || $filter===$ip || (($pos=strpos($filter,'*'))!==false && !strncmp($ip,$filter,$pos)))
return true;
}
return false;
}
设置资源文件路径
public function getAssetsUrl()
{
if($this->_assetsUrl===null)
$this->_assetsUrl=Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('oldweeklyadmin.assets'));
return $this->_assetsUrl;
}
public function setAssetsUrl($value)
{
$this->_assetsUrl=$value;
}
总结:YII里提供给我们不少有用的源码,e.g:GII模块,这个例子的来源于GII的写法
共 23 条回复
落叶 江苏南京
注册时间:2011-03-29
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝8
- 金钱1190
- 威望10
- 积分1290