在實現Yii::success()這樣的調用方式以前,你可能須要閱讀個人這篇博文: javascript
《Yii學習筆記:擴展YiiBase入口類》 php
以後請繼續往下看: css
首先咱們在yii.php的Yii類裏面添加兩個方法: html
/** * 成功提示 * @param type $msg 提示信息 * @param type $jumpurl 跳轉url * @param type $wait 等待時間 */ static function success($msg="",$jumpurl="",$wait=3){ self::_jump($msg, $jumpurl, $wait, 1); } /** * 錯誤提示 * @param type $msg 提示信息 * @param type $jumpurl 跳轉url * @param type $wait 等待時間 */ static function error($msg="",$jumpurl="",$wait=3){ self::_jump($msg, $jumpurl, $wait, 0); } /** * 最終跳轉處理 * @param type $msg 提示信息 * @param type $jumpurl 跳轉url * @param type $wait 等待時間 * @param int $type 消息類型 0或1 */ static private function _jump($msg="",$jumpurl="",$wait=3,$type=0){ $info = array( 'msg' => $msg, 'jumpurl' => $jumpurl, 'wait' => $wait, 'type' => $type ); Yii::app()->user->setFlash('showmessage',$info); Yii::app()->runController("Site/ShowMessage"); }
繼續,在應用默認的 SiteController 中添加以下方法: java
/** * 提示信息 */ public function actionShowMessage(){ $data = Yii::app()->user->getFlash('showmessage');//flash中讀取提示信息 if(empty($data) || !is_array($data) || !isset($data['msg']) || $data['msg']==""){ Yii::app()->end(); } if(!isset($data['wait'])){ $data['wait'] = 3; } if(!isset($data['type'])){ $data['type'] = 1; } $data['title'] = ($data['type']==1) ? "提示信息" : "錯誤信息"; if(!isset($data['jumpurl']) || empty($data['jumpurl'])){ if($data['type']==1){ $data['jumpurl']=isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:"javascript:window.close();"; }else{ $data['jumpurl'] = "javascript:history.back(-1);"; } } $this->renderPartial("show_message",$data); }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>跳轉提示</title> <style type="text/css"> *{ padding: 0; margin: 0; } body{ background: #fff; font-family: '微軟雅黑'; color: #333; font-size: 16px; } .system-message{ width:500px;height:100px; margin:auto;border:6px solid #999;text-align:center; position:relative;top:50px;} .system-message legend{font-size:24px;font-weight:bold;color:#999;margin:auto;width:100px;} .system-message h1{ font-size: 100px; font-weight: normal; line-height: 120px; margin-bottom: 12px; } .system-message .jump{ padding-right:10px;height:25px;line-height:25px;font-size:14px;position:absolute;bottom:0px;left:0px;background-color:#e6e6e1 ; display:block;width:490px;text-align:right;} .system-message .jump a{ color: #333;} .system-message .success,.system-message .error{ line-height: 1.8em; font-size: 15px } .system-message .detail{ font-size: 12px; line-height: 20px; margin-top: 12px; display:none} </style> </head> <body> <fieldset class="system-message"> <legend><?php echo $title;?></legend> <div style="text-align:left;padding-left:10px;height:75px;width:490px; "> <?php if($type==1):?> <p class="success">恭喜^_^!~<?php echo($msg); ?></p> <?php else:?> <p class="error">Sorry!~<?php echo($msg); ?></p> <?php endif;?> <p class="detail"></p> </div> <p class="jump"> 頁面自動 <a id="href" href="<?php echo($jumpurl); ?>">跳轉</a> 等待時間: <b id="wait"><?php echo($wait); ?></b> </p> </fieldset> <script type="text/javascript"> (function(){ var wait = document.getElementById('wait'),href = document.getElementById('href').href; totaltime=parseInt(wait.innerHTML); var interval = setInterval(function(){ var time = --totaltime; wait.innerHTML=""+time; if(time === 0) { location.href = href; clearInterval(interval); }; }, 1000); })(); </script> </body> </html>
到這裏就完成了。 app
實例: yii
<?php class PublicController extends CustomController { public function actionLogin(){ $this->title = "商戶後臺登陸"; if(Yii::app()->request->isPostRequest){ $identify = new CustomIdentity("admin","passwd"); if($identify->authenticate() == true){ Yii:app()->user->login($identify); }else{ Yii::error("用戶名或密碼錯誤"); } }else{ $this->render('login'); } } }
效果圖: ide
文章原創,轉載請註明出處 學習