当前位置: 首页 > article >正文

织梦dedecmsV5.7提示信息提示框美化(带安装教程和效果展示)

一、效果展示

1、安装前效果

2、安装后效果

二、安装说明

1、安装测试版本:DedeCMS-V5.7.117-UTF8;

2、必须在修改代码之前请做好文件备份,以免误操无法恢复;

3、为了兼容其他版本,请在安装时,最好将替换前的代码和替换后的代码对比一下,除模版代码之外是否有其他改动;

4、安装后效果作用于前台和后台

三、安装教程

第一步、打开修改文件

找到并打开文件【/include/common.func.php

第二步、找到要替换的代码

⇩⇩⇩开始代码(大约在288行)

function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=0)

{

中间代码省略部分……

   echo $msg;

}

⇧⇧⇧结束代码(大约在351行)

 ⇩⇩⇩开始⇩⇩⇩

 ⇩⇩⇩结束⇩⇩⇩

第三步:替换并修改代码

将下面美化的代码替换上面这段代码:

function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=0)
        {
            if(empty($GLOBALS['cfg_plus_dir'])) $GLOBALS['cfg_plus_dir'] = '..';
        
            $htmlhead  = "<html>\r\n<head>\r\n<title>提示信息</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\">\r\n<meta name=\"renderer\" content=\"webkit\">\r\n<meta http-equiv=\"Cache-Control\" content=\"no-siteapp\" />";
            $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";
            $htmlfoot  = "</script>\r\n</center>\r\n</body>\r\n</html>\r\n";
        
            $litime = ($limittime==0 ? 1000 : $limittime);
            $func = '';
        
            if($gourl=='-1')
            {
                if($limittime==0) $litime = 5000;
                $gourl = "javascript:history.go(-1);";
            }
        
            if($gourl=='' || $onlymsg==1)
            {
                $msg = "<script>alert(\"".str_replace("\"","“",$msg)."\");</script>";
            }
            else
            {
                //当网址为:close::objname 时, 关闭父框架的id=objname元素
                if(preg_match('/close::/',$gourl))
                {
                    $tgobj = trim(preg_replace('/close::/', '', $gourl));
                    $gourl = 'javascript:;';
                    $func .= "window.parent.document.getElementById('{$tgobj}').style.display='none';\r\n";
                }
        
                $func .= "      var pgo=0;
              function JumpUrl(){
                if(pgo==0){ location='$gourl'; pgo=1; }
              }\r\n";
                $rmsg = $func;
                $rmsg .= "document.write(\"<style>body{background:#F6F6F6}.tips-box{margin-top:50px;padding:0;width:450px;border:10px solid #E8E8E8;background:#fff;color:#444;font-family:微软雅黑}.tips .title{margin:0 20px;padding:15px 0;border-bottom:1px dotted #DDD;text-align:left;font-size:15px}.tips .title p{padding-left:10px;height:18px;border-left:2px solid #009688;font-weight:600;line-height:18px;margin: 0;}.tips .content{position:relative;padding:30px;height:120px;background:#fff;color:#666;font-size:15px}.tips .content p.tip{color:#999;font-size:1px}.tips .content a.go{display:block;margin:15px auto 0;padding:6px 10px;width:80px;border:1px solid #019688;border-radius:3px;color:#1AA094;text-decoration:blink;font-size:13px}.tips .content a:hover{background:#1AA094;color:#fff}</style>\");\r\n;";
                $rmsg .= "document.write(\"<div class='tips tips-box'>";
                $rmsg .= "<div class='title'><p>提示信息</p></div>\");\r\n";
                $rmsg .= "document.write(\"<div class='content'>\");\r\n";
                $rmsg .= "document.write(\"".str_replace("\"","“",$msg)."\");\r\n";
                $rmsg .= "document.write(\"";
        
                if($onlymsg==0)
                {
                    if( $gourl != 'javascript:;' && $gourl != '')
                    {
                        $rmsg .= "<a href='{$gourl}' class='go'>点击跳转</a>";
                        $rmsg .= "<br/></div>\");\r\n";
                        $rmsg .= "setTimeout('JumpUrl()',$litime);";
                    }
                    else
                    {
                        $rmsg .= "<br/></div>\");\r\n";
                    }
                }
                else
                {
                    $rmsg .= "<br/><br/></div>\");\r\n";
                }
                $msg  = $htmlhead.$rmsg.$htmlfoot;
            }
            echo $msg;
        }

第四步、保存并上传文件

将替换好的【/include/common.func.php】文件,保存并上传到你的站点;

第五步、测试效果

1、前台测试效果:进入搜索页,在3秒内连续点击两次搜索,会有提示弹出;

2、后台测试效果:直接登录后台管理员,会有登录成功提示;

以上美化已经完成。

四、仅优化 "DedeCMS 提示信息!”标题

1、如果你不想美化提示界面,只想修改“DedeCMS提示信息”标题

2、还是这个文件,找【DedeCMS 提示信息】关键词,有2处要修改

3、直接修改成你自己定义的标题名称即可;

五、其他ShowMsg函数说明

关于Dede Cms系统提示方式修改以及ShowMsg函数说明

DedeCMS的所有提示信息都是用ShowMsg方法进行处理的,我们先来了解一下ShowMsg函数

源码格式:

/**
 *  短消息函数,可以在某个动作处理后友好的提示信息
 *
 * @param     string  $msg      消息提示信息
 * @param     string  $gourl    跳转地址
 * @param     int     $onlymsg  仅显示信息
 * @param     int     $limittime  限制时间
 * @return    void
 */
function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=0)

格式:ShowMsg($msg, $gourl, $onlymsg=0, $limittime=0)

$msg:参数是要返回的信息,也就是提示的问题;

$gourl:参数是提示完成后要返回的页面,参数有:
① -1 代表返回上一页;
② 直接写页面名称,如【index.php】 表示返回指定的index.php页面;
ShowMsg(“成功登录,5秒钟后转向系统主页…”,“index.php”,0,2000);
javascript:window.opener=null;window.open(’’,’_self’);window.close(); 关闭当前跳转的提示窗口;

$limittime:参数是提示停留的秒数,以毫秒为单位;1000就是1秒。

$onlymsg:参数是提示的显示方式,具体参数有:
① $onlymsg=0 为0,则以跳转到新页面显示;
② $onlymsg<>0 不为0,则以弹出对话框的形式进行显示
如果gourl为空,或者onlymsg==1,跳转的页面是空白;

下面举例说明两种修改方法;

DedeCMS的提示信息默认的是跳转,好处是防止有些浏览器禁止了弹出窗口,但用户体验稍差,可以修改提示信息为弹窗更友好,制作做两种修改方法:

方法一:举个表单提交的例子:

① 表单字段为空,弹出对话框提示信息,不提交表单,返回;
② 表单信息完整无误,更改点击提交后的跳转为弹出“成功提交”对话框信息,关闭当前窗口并刷新;

修改如下:

1、找到

$msg = "<script>alert(\"".str_replace("\"","“",$msg)."\");</script>";

修改为:

$msg = "<script>history.go(-1);location.reload()</script>";

 让$gourl值为1时,就能实现返回上级(历史)页面并刷新,但并不提示任何信息。
这样做的好处是:htm页面内编写JS判断字段数据是否规范,不满足条件不能提交,不必提示信息跳转。
结合点击或回车事件,在所需要修改的模板之前增加代码
对应的提交(确定)按钮,需要增加onclick鼠标点击效果。
确定
当然如果希望输入某个字段(如name=“uname”)后回车就需要在对应的input增加代码

<input type="text" id="" name="uname" onkeypress="
if(event.keyCode==13){
record();//执行click事件,多个事件之间用英文的";"隔开
return false;//不执行表单提交
}"/>

以上可以实现用点击按钮或者回车实现提示信息为弹出对话框,点击确定后才真正提交内容。
判断所字段是否为空

方法二:举个购物车提交的例子

用户提交商品到购物车后不跳转到购物车,直接返回原页面并刷新该页面

1、打开【include/common.fun.php】,找到

if($gourl=='' || $onlymsg==1)
{
 $msg = "<script>alert(\"".str_replace("\"","“",$msg)."\");</script>";
}

替换成:

if($gourl=='' || $onlymsg==1)
{
 $msg = "<script>alert(\"".str_replace("\"","“",$msg)."\");self.location=document.referrer;</script>";
}

2、打开【plus/posttocar.php】,找到

ShowMsg("已添加加到购物车,<a href='car.php'>查看购物车</a>","car.php");

替换成:

ShowMsg("已添加加到购物车,<a href='car.php'>查看购物车</a>");

DedeCMS跳转提示信息修改总结
第一种是利用原生JavaScript与DedeCMS源代码,功能较强大,可以对字段进行筛选、判断是否空等操作,根据自己的实际需要进行修改;
另一种是只利用了DedeCMS源代码,功能较单一。根据自己的实际需要选择任意一种都可以,两种方法有冲突。


http://www.kler.cn/a/588447.html

相关文章:

  • python中print函数的flush如何使用
  • kubernetes|云原生|部署单master的kubernetes 1.25.5版本集群完全记录(使用contained 运行时)
  • 【VUE2】第五期——VueCli创建项目、Vuex多组件共享数据、json-server——模拟服务端api
  • CSS3学习教程,从入门到精通,CSS3 文字样式语法知识点及案例代码(7)
  • 消息队列的特性与使用场景:Kafka、ActiveMQ、RabbitMQ与RocketMQ的深度剖析
  • 图论之cruskal算法(克鲁斯卡尔)
  • Bash语言的进程管理
  • 数字化转型 - 数据驱动
  • 出现缓存雪崩、缓存穿透、缓存预热、缓存更新和缓存降级的场景,以及如何解决
  • 【数据结构与算法】Java描述:第四节:二叉树
  • DVWA 命令注入从 Low 到 Impossible 教程及源码分析
  • 监控易对各类服务器硬件的广泛支持和深入监控能力
  • pybind11出现的问题
  • 每天五分钟深度学习框架pytorch:常见神经网络层的维度信息总结
  • Linux mount和SSD分区
  • 垃圾回收机制是什么 ?JVM 核心结构?
  • Linux-进程概念
  • 麒麟服务器操作系统Sqlite部署手册
  • 笔记:代码随想录算法训练营day48:739. 每日温度\496.下一个更大元素 I\503.下一个更大元素II
  • 【专项测试】限流测试