织梦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.mzph.cn/bicheng/73602.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Science Advances 视触觉传感机制的交互装置,可以实时测量来自手不同部位的分布力

近日&#xff0c;由香港科技大学&#xff08;HKUST&#xff09;电子与计算机工程学系申亚京教授领导的研究团队&#xff0c;提出了一种基于数字通道的触觉交互系统&#xff0c;可以实时测量来自手不同部位的分布力&#xff0c;有望在医学评估、体育训练、机器人和虚拟现实&…

MySQL单表查询大全【SELECT】

山再高&#xff0c;往上攀&#xff0c;总能登顶&#xff1b;路再长&#xff0c;走下去&#xff0c;定能到达。 Mysql中Select 的用法 ------前言------【SELECT】0.【准备工作】0.1 创建一个库0.2 库中创建表0.3 表中加入一些数据 1.【查询全部】2.【查询指定列】2.1查询指定列…

Vue调用子组件init方法时报错Cannot read properties of undefined (reading ‘init‘)解决方法

调用init方法语句写在this.$nextTick(() > {});方法里&#xff0c;因为nextTick方法在页面元素加载完之后调用 this.$nextTick(() > {this.$refs.chartComponent.init();});如果还报错&#xff1a;Error in nextTick: "TypeError: Cannot read properties of undef…

怎么解决在Mac上每次打开文件夹都会弹出一个新窗口的问题

在Mac上每次打开文件夹都会弹出一个新窗口的问题&#xff0c;可以通过以下方法解决‌ ‌调整Finder设置‌&#xff1a; 打开Finder&#xff0c;点击“Finder”菜单&#xff0c;选择“偏好设置”。在偏好设置中&#xff0c;选择“通用”标签。取消勾选“在标签页中打开文件夹”或…

从 Prop Drilling 到 Context:React 状态管理的演进与抉择

Context的出现解决了什么问题&#xff1f; Vue中的provide/inject和React中的Context非常相似&#xff0c;具体区别如下&#xff1a; 可以看到实际上最大的区别在于Vue是响应式&#xff0c;React是非响应式 那么context具体解决了什么问题&#xff1f;我们先看下面这个例子&a…

考研408-数据结构完整代码 线性表的顺序存储结构 - 顺序表

线性表的顺序存储结构 - 顺序表 1. 顺序表的定义 ​ 用一组地址连续的存储单元依次存储线性表的数据元素&#xff0c;从而使逻辑上相邻的两个元素在物理位置上也相邻 2. 顺序表的特点 随机访问&#xff1a; 即通过首地址和元素序号可以在O(1) 时间内找到指定元素&#xff0…

【经验分享】SpringBoot集成WebSocket开发02 之 实现一个基本示例并Spring Bean注入的方式来组织代码

结合Spring Boot和WebSocket实现一个基本示例&#xff0c;并且使用Spring Bean注入的方式来组织代码。 1. 创建Spring Boot项目 首先&#xff0c;确保你有一个Spring Boot项目&#xff0c;并在pom.xml文件中引入了WebSocket相关的依赖。 <dependencies><!-- Spring…

DeepSeek-R1大模型微调技术深度解析:架构、方法与应用全解析

1. DeepSeek-R1大模型架构设计与技术特性 1.1 架构设计 DeepSeek-R1作为超大规模语言模型,其核心架构设计包含以下创新: 专家混合架构(MoE) 采用6710亿参数的混合专家架构(MoE),每个推理过程仅激活370亿参数,实现计算效率与资源利用率的突破性提升。 Transformer框架…

本地部署Hive集群

规划 服务机器Hive本体部署在Node1元数据服务所需的关系型数据库(MYSQL)部署在Node1 安装MYSQL数据库 # 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 安装Mysql yum库 rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.…

缓存之美:Guava Cache 相比于 Caffeine 差在哪里?

大家好&#xff0c;我是 方圆。本文将结合 Guava Cache 的源码来分析它的实现原理&#xff0c;并阐述它相比于 Caffeine Cache 在性能上的劣势。为了让大家对 Guava Cache 理解起来更容易&#xff0c;我们还是在开篇介绍它的原理&#xff1a; Guava Cache 通过分段&#xff08;…

2025年【广东省安全员C证第四批(专职安全生产管理人员)】考试及广东省安全员C证第四批(专职安全生产管理人员)模拟试题

安全生产是各行各业不可忽视的重要环节&#xff0c;特别是在广东省这样的经济大省&#xff0c;安全生产的重要性更是不言而喻。为了确保安全生产管理人员具备足够的专业知识和实际操作能力&#xff0c;广东省定期举办安全员C证考试。本文将详细介绍2025年广东省安全员C证第四批…

传输层自学

传输实体&#xff1a;完成传输层任务的硬件或软件 可能位于&#xff1a; 操作系统内核独立的用户进程绑定在网络应用中的链接库网络接口卡 1.功能&#xff1a; 网络层与传输层作用范围比较&#xff1f; 网络层负责把数据从源机送达到目的机 传输层负责把数据送达到具体的应…

【C语言】函数和数组实践与应用:开发简单的扫雷游戏

【C语言】函数和数组实践与应用&#xff1a;开发简单的扫雷游戏 1.扫雷游戏分析和设计1.1扫雷游戏的功能说明&#xff08;游戏规则&#xff09;1.2游戏的分析与设计1.2.1游戏的分析1.2.2 文件结构设计 2. 代码实现2.1 game.h文件2.2 game.c文件2.3 test.c文件 3. 游戏运行效果4…

Spring Cloud Config - 动态配置管理与高可用治理

引言&#xff1a;为什么需要配置中心&#xff1f; 在微服务架构中&#xff0c;配置管理面临分散化、多环境、动态更新三大挑战。传统基于application.yml等配置文件的硬编码方式&#xff0c;导致以下问题&#xff1a; • 环境差异&#xff1a;开发、测试、生产环境配置混杂&a…

Git 常用命令指南

本文档旨在提供 Git 的常用命令及其使用示例&#xff0c;涵盖全局参数配置、获取本地仓库、基本概念、本地仓库操作、远程仓库操作和分支操作等内容。 1. 全局参数配置 Git 允许用户配置全局参数&#xff0c;以便在所有的仓库中共享这些设置。 <BASH> # 设置用户名 gi…

基于Python+Flask+MySQL+HTML的爬取豆瓣电影top-250数据并进行可视化的数据可视化平台

FlaskMySQLHTML 项目采用前后端分离技术&#xff0c;包含完整的前端&#xff0c;以flask作为后端 Pyecharts、jieba进行前端图表展示 通过MySQL收集格列数据 通过Pyecharts制作数据图表 这是博主b站发布的详细讲解&#xff0c;感兴趣的可以去观看&#xff1a;【Python爬虫可…

rpc grpc

RPC Remote Procedure Call&#xff0c;远程过程调用&#xff0c;是用来屏蔽分布式计算中的各种调用细节&#xff0c;使得调用远端的方法就像调用本地的一样。 客户端与服务端沟通的过程 客户端发送数据(以字节流的方式)&#xff1b;&#xff08;编码&#xff09;服务端接受…

GStreamer —— 2.15、Windows下Qt加载GStreamer库后运行 - “播放教程 1:Playbin 使用“(附:完整源码)

运行效果 介绍 我们已经使用了这个元素&#xff0c;它能够构建一个完整的播放管道&#xff0c;而无需做太多工作。 本教程介绍如何进一步自定义&#xff0c;以防其默认值不适合我们的特定需求。将学习&#xff1a; • 如何确定文件包含多少个流&#xff0c;以及如何切换 其中。…

30、Vuex 为啥可以进行缓存处理

Vuex 状态管理基础与缓存的关联 Vuex 的核心概念&#xff1a; Vuex 主要由五个部分组成&#xff1a;state、mutations、actions、getters和modules。其中&#xff0c;state是存储数据的地方&#xff0c;类似于一个全局的数据仓库。在这个菜谱 APP 的例子中&#xff0c;缓存的数…

25届数字IC验证秋招总结

一、个人概况 双非本9硕&#xff0c;2024年初开始通过白皮书蓝皮书自学验证&#xff0c;半年实习经验&#xff0c;有竞赛无专利论文&#xff0c;在秋招期间投递企业130余家&#xff0c;绝大部分投递岗位为数字验证&#xff0c;面试20家&#xff0c;收到5个offer。因为背景和相关…