前段时间和大家讨论过 yii后台管理页面结构实现方法的问题,现在我的项目接近收尾,向大家分享一下我的后台管理页面实现,
就是那种常见的frameset三栏布局,主要代码如下:
SiteController.php
views/site/default.php
其它相关的layout和view文件就不提供了,就是简单的html
就是那种常见的frameset三栏布局,主要代码如下:
SiteController.php
<?php class SiteController extends CController { /** * Declares class-based actions. */ public function actions() { return array( // captcha action renders the CAPTCHA image // this is used by the contact page 'captcha'=>array( 'class'=>'CCaptchaAction', 'backColor'=>0xEBF4FB, ), ); } /** * This is the default 'index' action that is invoked * when an action is not explicitly requested by users. */ public function actionIndex() { // renders the view file 'protected/views/site/index.php' // using the default layout 'protected/views/layouts/main.php' //注意运行yiic shell前需要改回$this->render('index'); 否则无法进入shell $this->render('index'); } /** * Displays the contact page */ public function actionContact() { $contact=new ContactForm; if(isset($_POST['ContactForm'])) { $contact->attributes=$_POST['ContactForm']; if($contact->validate()) { $headers="From: {$contact->email}/r/nReply-To: {$contact->email}"; mail(Yii::app()->params['adminEmail'],$contact->subject,$contact->body,$headers); Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.'); $this->refresh(); } } $this->render('contact',array('contact'=>$contact)); } /** * Displays the login page */ public function actionLogin() { $form=new LoginForm; // collect user input data if(isset($_POST['LoginForm'])) { $form->attributes=$_POST['LoginForm']; // validate user input and redirect to previous page if valid if($form->validate()) $this->redirect(Yii::app()->user->returnUrl); } // display the login form $this->layout='login'; $this->render('login',array('form'=>$form)); } /** * Logout the current user and redirect to homepage. */ public function actionLogout() { Yii::app()->user->logout(); $this->redirect(Yii::app()->homeUrl); } /** * 管理框架页 */ public function actionDefault() { if(Yii::app()->user->isGuest){ $this->redirect(array('site/login')); } else{ $this->renderPartial('default'); } } /** * 管理框架页 Head */ public function actionHead() { if(Yii::app()->user->isGuest){ $this->redirect(array('site/login')); } else{ $this->renderPartial('head'); } } /** * 管理框架页 left */ public function actionLeft() { if(Yii::app()->user->isGuest){ $this->redirect(array('site/login')); } else{ Yii::app()->getClientScript()->registerCoreScript('jquery'); $this->layout='left'; $this->render('left'); } } }
views/site/default.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<frameset rows="92,*" cols="*" frameborder="no" border="0" framespacing="0">
<frame src="<?php echo Yii::app()->request->baseUrl; ?>/index.php/site/head" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" />
<frameset cols="215,*" frameborder="no" border="0" framespacing="0">
<frame src="<?php echo Yii::app()->request->baseUrl; ?>/index.php/site/left" scrolling="no" noresize="noresize" id="leftFrame" />
<frame src="" name="mainFrame" id="mainFrame" />
</frameset>
</frameset>
<noframes><body>
</body>
</noframes></html>
其它相关的layout和view文件就不提供了,就是简单的html