您的位置:首页 > 编程语言 > PHP开发

Yii学习笔记:进一步简化,提示信息跳转页面

2014-06-24 06:32 507 查看
http://my.oschina.net/cxz001/blog/188593

在Yii类里加三个方法,Yii类是初始化的那个类,可以看我之前的博文《扩展YiiBase类》,主要目的是为了能够使用Yii::success()
Yii::error()这样的调用方式。

废话不多说,在Yii类中加三个方法如下:

01
class
Yii
extends
YiiBase{
02
 
03
/**
04
 
*
 成功提示
05
 
*
 @param type $msg 提示信息
06
 
*
 @param type $jumpurl 跳转url
07
 
*
 @param type $wait 等待时间
08
 
*/
09
static
function
success(
$msg
=
""
,
$jumpurl
=
""
,
$wait
=3){
10
self::_jump(
$msg
,
$jumpurl
,
$wait
,
 1);
11
}
12
/**
13
 
*
 错误提示
14
 
*
 @param type $msg 提示信息
15
 
*
 @param type $jumpurl 跳转url
16
 
*
 @param type $wait 等待时间
17
 
*/
18
static
function
error(
$msg
=
""
,
$jumpurl
=
""
,
$wait
=3){
19
self::_jump(
$msg
,
$jumpurl
,
$wait
,
 0);
20
}
21
/**
22
 
*
 最终跳转处理
23
 
*
 @param type $msg 提示信息
24
 
*
 @param type $jumpurl 跳转url
25
 
*
 @param type $wait 等待时间
26
 
*
 @param int $type 消息类型 0或1
27
 
*/
28
static
private
function
_jump(
$msg
=
""
,
$jumpurl
=
""
,
$wait
=3,
$type
=0){
29
$data
=
array
(
30
'msg'
=>
$msg
,
31
'jumpurl'
=>
$jumpurl
,
32
'wait'
=>
$wait
,
33
'type'
=>
$type
34
);
35
$data
[
'title'
]
=(
$type
==1)
 ?
"提示信息"
:
"错误信息"
;
36
if
(
empty
(
$jumpurl
)){
37
if
(
$type
==1){
38
$data
[
'jumpurl'
]=isset(
$_SERVER
[
'HTTP_REFERER'
])?
$_SERVER
[
'HTTP_REFERER'
]:
"javascript:window.close();"
;
39
}
else
{
40
$data
[
'jumpurl'
]
=
"javascript:history.back(-1);"
;
41
}
42
}
43
$cc
=
new
CController(
'showmessage'
);
44
$cc
->renderPartial(
"//show_message"
,
$data
);
45
}
46
}
看最后一行

1
$cc
->renderPartial(
"//show_message"
,
$data
);
这个是渲染提示信息模板,所以我们还需要一个模板文件 show_message.php,将它放到 protected/views 目录下即可,模板代码如下:

01
<!DOCTYPE
 html PUBLIC
"-//W3C//DTD
 XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
02
<html
 xmlns=
"http://www.w3.org/1999/xhtml"
>
03
<head>
04
<meta
 http-equiv=
"Content-Type"
content=
"text/html;
 charset=utf-8"
/>
05
<title>跳转提示</title>
06
<style
 type=
"text/css"
>
07
*{
padding:0; margin:0; }
08
body{
background:#fff; font-family:
'微软雅黑'
;
color:#333; font-size:16px; }
09
.system-message{
 width:500px;height:100px; margin:auto;border:6px solid #999;text-align:center; position:relative;top:50px;}
10
.system-message
 legend{font-size:24px;font-weight:bold;color:#999;margin:auto;width:100px;}
11
.system-message
h1{ font-size:100px; font-weight:normal; line-height:120px; margin-bottom:12px; }
12
.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;}
13
.system-message
.jump a{ color:#333;}
14
.system-message
.success,.system-message .error{ line-height:1.8em; font-size:15px }
15
.system-message
.detail{ font-size:12px; line-height:20px; margin-top:12px; display:none}
16
</style>
17
</head>
18
<body>
19
<fieldset
class
=
"system-message"
>
20
<legend><?php
echo
$title
;?></legend>
21
<div
 style=
"text-align:left;padding-left:10px;height:75px;width:490px; 
 "
>
22
 
23
<?php
if
(
$type
==1):?>
24
<p
class
=
"success"
>恭喜^_^!~<?php
echo
(
$msg
);
 ?></p>
25
<?php
else
:?>
26
<p
class
=
"error"
>Sorry!~<?php
echo
(
$msg
);
 ?></p>
27
<?php
endif
;?>
28
<p
class
=
"detail"
></p>
29
 
30
</div>
31
<p
class
=
"jump"
>
32
页面自动
 <a id=
"href"
href=
"<?php
 echo($jumpurl); ?>"
>跳转</a>
 等待时间: <b id=
"wait"
><?php
echo
(
$wait
);
 ?></b>
33
</p>
34
</fieldset>
35
<script
 type=
"text/javascript"
>
36
 
37
(
function
(){
38
var
wait
=document.getElementById(
'wait'
),href
=document.getElementById(
'href'
).href;
39
totaltime=parseInt(wait.innerHTML);
40
var
interval
=setInterval(
function
(){
41
var
time
=--totaltime;
42
wait.innerHTML=
""
+time;
43
if
(time
===0) {
44
location.href
=href;
45
clearInterval(interval);
46
};
47
},
 1000);
48
})();
49
50
</script>
51
</body>
52
</html>
使用方法:

1
Yii::success(
"提示信息内容"
,
"跳转链接"
,
"停留时间,单位秒"
);
2
Yii::error();
//参数同上
例:

01
<?php
02
class
PublicController
extends
CustomController
 {
03
public
function
actionLogin(){
04
$this
->title
=
"商户后台登录"
;
05
if
(Yii::app()->request->isPostRequest){
06
$identify
=
new
CustomIdentity(
"admin"
,
"passwd"
);
07
if
(
$identify
->authenticate()
==true){
08
Yii:app()->user->login(
$identify
);
09
}
else
{
10
Yii::error(
"用户名或密码错误"
);
11
}
12
}
else
{
13
$this
->render(
'login'
);
14
}
15
}
16
}
效果图:




easy吧~~

原创,转载请注明出处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: