基于YIi的三栏frameset框架后台管理页面的实现

admin 发表于 [PHP] 分类,标签: PHP开发框架 Yiiframework
0

前段时间和大家讨论过 yii后台管理页面结构实现方法的问题,现在我的项目接近收尾,向大家分享一下我的后台管理页面实现,
就是那种常见的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

发表我的评论