分享

织梦DedeCMS提示信息框的修改,修改ShowMsg方法函数

 地图阿甘 2014-04-08

织梦DedeCMS系统,处处都在用到提示信息,但是这个提示框,前台后台一层不变,太死板了,可能有很多人都有过去修改它的想法,只是苦于不知道去哪里改。今天我就来说说这个吧,DedeCMS的所有提示信息都是用ShowMsg方法进行处理的,这个函数存放在/include/common.func.php  源代码如下:

01/**
02 *  短消息函数,可以在某个动作处理后友好的提示信息
03 *
04 * @param     string  $msg      消息提示信息
05 * @param     string  $gourl    跳转地址
06 * @param     int     $onlymsg  仅显示信息
07 * @param     int     $limittime  限制时间
08 * @return    void
09 */
10function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=0)
11{
12    if(empty($GLOBALS['cfg_plus_dir'])) $GLOBALS['cfg_plus_dir'] = '..';
13 
14    $htmlhead  = "<html>\r\n<head>\r\n<title>DedeCMS提示信息</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />\r\n";
15    $htmlhead .= "<base target='_self'/>\r\n<style>div{line-height:160%;}</style></head>\r\n<body leftmargin='0' topmargin='0' bgcolor='#FFFFFF'>".(isset($GLOBALS['ucsynlogin']) ? $GLOBALS['ucsynlogin'] : '')."\r\n<center>\r\n<script>\r\n";
16    $htmlfoot  = "</script>\r\n</center>\r\n</body>\r\n</html>\r\n";
17 
18    $litime = ($limittime==0 ? 1000 : $limittime);
19    $func = '';
20 
21    if($gourl=='-1')
22    {
23        if($limittime==0) $litime = 5000;
24        $gourl = "javascript:history.go(-1);";
25    }
26 
27    if($gourl=='' || $onlymsg==1)
28    {
29        $msg = "<script>alert(\"".str_replace("\"","“",$msg)."\");</script>";
30    }
31    else
32    {
33        //当网址为:close::objname 时, 关闭父框架的id=objname元素
34        if(preg_match('/close::/',$gourl))
35        {
36            $tgobj = trim(preg_replace('/close::/', '', $gourl));
37            $gourl = 'javascript:;';
38            $func .= "window.parent.document.getElementById('{$tgobj}').style.display='none';\r\n";
39        }
40         
41        $func .= "      var pgo=0;
42      function JumpUrl(){
43        if(pgo==0){ location='$gourl'; pgo=1; }
44      }\r\n";
45        $rmsg = $func;
46        $rmsg .= "document.write(\"<br /><div style='width:450px;padding:0px;border:1px solid #DADADA;'>";
47        $rmsg .= "<div style='padding:6px;font-size:12px;border-bottom:1px solid #DADADA;background:#DBEEBD url({$GLOBALS['cfg_plus_dir']}/img/wbg.gif)';'><b>DedeCMS 提示信息!</b></div>\");\r\n";
48        $rmsg .= "document.write(\"<div style='height:130px;font-size:10pt;background:#ffffff'><br />\");\r\n";
49        $rmsg .= "document.write(\"".str_replace("\"","“",$msg)."\");\r\n";
50        $rmsg .= "document.write(\"";
51         
52        if($onlymsg==0)
53        {
54            if( $gourl != 'javascript:;' && $gourl != '')
55            {
56                $rmsg .= "<br /><a href='{$gourl}'>如果你的浏览器没反应,请点击这里...</a>";
57                $rmsg .= "<br/></div>\");\r\n";
58                $rmsg .= "setTimeout('JumpUrl()',$litime);";
59            }
60            else
61            {
62                $rmsg .= "<br/></div>\");\r\n";
63            }
64        }
65        else
66        {
67            $rmsg .= "<br/><br/></div>\");\r\n";
68        }
69        $msg  = $htmlhead.$rmsg.$htmlfoot;
70    }
71    echo $msg;
72}

可以看出ShowMsg有四个参数,第一个参数是提示的信息,第二个就参数是跳转的地址,如果设置为-1的话,就是返回上一个页面,第三个参数其它就是定义是用alert()弹出提示框,还是显示提示信息,第四个参数就是信息提示页面显示多久再进行跳转,默认是1秒种。修改这个提示框比较简单了,直接替换对应的文字

这个提示框的CSS也是写在内部的,如果我们需要修改,可以在这里直接修改源码,甚至我们还可以为这个ShowMsg函数增加一个参数,然后根据这个参数,显示不同的效果。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多