在components/Controller类里加三个方法,主要目的是为了能够在控制器中使用$this->success() $this->error()这样的调用方式。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
class
Controller
extends
CController{
/**
* 成功提示
* @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){
$data
=
array
(
'msg'
=>
$msg
,
'jumpurl'
=>
$jumpUrl
,
'wait'
=>
$wait
,
'type'
=>
$type
);
$data
[
'title'
] = (
$type
==1) ?
"提示信息"
:
"错误信息"
;
if
(
empty
(
$jumpUrl
)){
if
(
$type
==1){
$data
[
'jumpUrl'
]=isset(
$_SERVER
[
'HTTP_REFERER'
])?
$_SERVER
[
'HTTP_REFERER'
]:
"javascript:window.close();"
;
}
else
{
$data
[
'jumpUrl'
] =
"javascript:history.back(-1);"
;
}
}else{
$data['jumpUrl'] = Yii::app()->createUrl($jumpUrl);
}
$this
->renderPartial(
"//show_message"
,
$data
);
}
}
|
我们还需要一个模板文件 show_message.php,将它放到layouts目录下即可,模板代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
<!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{
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:50%;margin-top:-50px;left:50%;margin-left:-250px;background-color:#FFF;}
.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"
><?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>
|
使用方法:
1
2
|
$this->success(
"提示信息内容"
,
"index/index"
,
"停留时间,单位秒"
);
$this->error();
//参数同上
|
例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?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'
);
}
}
}
|
效果图: