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

织梦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源代码,功能较单一。根据自己的实际需要选择任意一种都可以,两种方法有冲突。

相关文章:

  • 【NLP】 3. Distributional Similarity in NLP(分布式相似性)
  • AI数字人分身系统(Digital Human System)的源码开发、SaaS平台模型技术方案和开发步骤
  • 自由学习记录(44)
  • 2.4滑动窗口专题:将 x 减到 0 的最小操作数
  • GOC学习
  • LeetCode 3340.检查平衡字符串:模拟
  • C++模板特化与偏特化
  • 315周六复盘(118)本周回顾
  • Java中类和对象
  • R语言的移动应用开发
  • 对称加密算法及其在网页逆向分析中的应用
  • BT-Basic函数之首字母F
  • 六十天前端强化训练之第二十天React Router 基础详解
  • Redis学习
  • 栈区、堆区、静态区
  • STL之关联容器(map ,set)
  • 【AI 加持下的 Python 编程实战 2_03】第二章:Copilot 辅助编程入门——环境搭建、基本工作流程以及数据分析案例演示(含本地实测)
  • PAT甲级(Advanced Level) Practice 1021 Deepest Root
  • 通达信软件+条件选股+code
  • Atcoder ABC397-D 题解
  • 东洋学人|滨田青陵:近代日本考古学第一人
  • 保证断电、碰撞等事故中车门系统能够开启!隐藏式门把手将迎来强制性国家标准
  • 港理大研究揭示:塑胶废物潜藏微生物群落或引发生态危机
  • 菲护卫艇企图侵闯中国黄岩岛领海,南部战区:依法依规跟踪监视、警告驱离
  • 4月深圳新房、二手房成交同比均上涨,“5月有望延续积极向好的发展态势”
  • 溢价率19.48%,民企番禺置业3.07亿元竞得广州番禺融媒体中心北侧地块