- 前端用户操作提示:用户在网站前台进行操作(如发表评论、提交表单、投稿等)时看到的消息框。
- 后端管理员操作提示:管理员在后台进行操作时看到的消息框。
修改这两类提示信息的方法和位置完全不同,下面我将分步为你讲解。
修改前端用户提示信息
前端提示信息通常位于 /include/common.func.php 文件中,这个文件是织梦的公共函数库,很多通用功能都在这里定义。
定位提示信息函数
织梦前端最常用的提示信息函数是 ShowMsg(),打开 /include/common.func.php 文件,你可以找到类似下面这样的函数定义:
/**
* 通用提示信息
*
* @param string $msg 提示信息
* @param string $gourl 跳转地址
* @param int $onlymsg 仅显示信息
* @param int $limittime 跳转等待时间
* @return void
*/
function ShowMsg($msg, $gourl = '', $onlymsg = 0, $limittime = 2000)
{
// ... 函数内部代码 ...
}
修改提示信息的HTML模板
ShowMsg 函数内部会生成一个HTML消息框,要修改这个消息框的样式和内容,你需要找到生成HTML的那部分代码,通常在函数的末尾。
示例代码(旧版织梦风格):
你可能会在 ShowMsg 函数中找到类似这样的代码:
// 在 ShowMsg 函数内部
if ($onlymsg == 0) {
// ... 跳转逻辑 ...
$htmlhead = "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=" . $cfg_soft_lang . "\" />\r\n<title>提示信息</title>\r\n";
$htmlhead .= "<base target='_self' />\r\n";
$htmlhead .= "<style>\r\nbody{font-family:Verdana,Arial,宋体;font-size:12px;background:#FFFFFF;margin-top:50px;}\r\na{color:#0066cc;text-decoration:underline;}\r\na:hover{color:#000000;text-decoration:none;}\r\n.main{width:600px;margin:0 auto;border:1px solid #e3e3e3;padding:10px;background:#f7f7f7;}\r\n.main h2{font-size:14px;font-weight:bold;margin:0 0 10px 0;padding:5px 0 5px 10px;border-bottom:1px solid #e3e3e3;}\r\n.main .success{color:#006600;}\r\n.main .error{color:#FF0000;}\r\n.main .notice{color:#FF6600;}\r\n.main .info{color:#0066CC;}\r\n.main .btn{padding:5px 10px 5px 10px;border:1px solid #e3e3e3;background:#f7f7f7;cursor:pointer;}\r\n</style>\r\n</head>\r\n<body>\r\n<div class=\"main\">\r\n";
$htmlfoot = "</div>\r\n</body>\r\n</html>";
// ... 拼接消息内容的代码 ...
echo $htmlhead . $msgstr . $htmlfoot;
} else {
echo $msgstr;
}
如何修改
你可以直接编辑这个 ShowMsg 函数中的HTML代码来自定义提示框的样式。
【修改示例:自定义一个漂亮的提示框】
假设你想把默认的灰色边框提示框,修改成一个更现代化的卡片式提示框。
- 打开文件:
/include/common.func.php - 找到
ShowMsg函数。 - 修改CSS样式部分:找到
<style>...</style>标签,修改其中的CSS规则。 - 修改HTML结构:找到生成
<div class="main">的部分,可以修改其class名或直接修改HTML结构。
修改前 (默认样式):
.main{width:600px;margin:0 auto;border:1px solid #e3e3e3;padding:10px;background:#f7f7f7;}
修改后 (示例):
/* 你可以给 .main 换个更独特的 class,.dede-msg-box */
.dede-msg-box {
width: 90%;
max-width: 500px;
margin: 100px auto;
padding: 20px;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
background-color: #fff;
font-family: 'Helvetica Neue', Arial, sans-serif;
}
.dede-msg-box h2 {
font-size: 18px;
margin-top: 0;
padding-bottom: 10px;
border-bottom: 1px solid #eee;
}
.dede-msg-box .success { color: #52c41a; }
.dede-msg-box .error { color: #f5222d; }
.dede-msg-box .notice { color: #fa8c16; }
.dede-msg-box .info { color: #1890ff; }
.dede-msg-box .btn {
margin-top: 15px;
padding: 8px 15px;
border: none;
border-radius: 4px;
background-color: #1890ff;
color: white;
cursor: pointer;
font-size: 14px;
}
你还需要将HTML中的 class="main" 改为 class="dede-msg-box"。
注意:直接修改核心文件 common.func.php 的风险是,下次升级织梦时,你的修改会被覆盖,修改前最好备份文件,或者考虑使用二次开发的方式(见下文)。
修改后端管理员提示信息
后台提示信息的修改方法与前端完全不同,它不通过函数,而是通过一个专门的模板文件。
定位提示信息模板文件
织梦后台的提示信息模板文件是:
/dede/templets/showmsg.htm
修改提示信息模板
这个文件就是纯HTML模板,你可以用任何HTML编辑器打开它,像修改普通网页一样修改它的结构和样式。
打开 showmsg.htm,你会看到类似这样的代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $cfg_soft_lang; ?>">提示信息</title>
<style>
body{font-family:Arial, Helvetica, sans-serif;font-size:12px;background:#FFF;margin-top:50px;}
.main{width:600px;margin:0 auto;border:1px solid #e3e3e3;padding:10px;background:#f7f7f7;}
.main h2{font-size:14px;font-weight:bold;margin:0 0 10px 0;padding:5px 0 5px 10px;border-bottom:1px solid #e3e3e3;}
.main .success{color:#006600;}
.main .error{color:#FF0000;}
.main .notice{color:#FF6600;}
.main .info{color:#0066CC;}
.main .btn{padding:5px 10px 5px 10px;border:1px solid #e3e3e3;background:#f7f7f7;cursor:pointer;}
</style>
</head>
<body>
<div class="main">
<h2 class="<?php echo $type; ?>"><?php echo $title; ?></h2>
<div class="<?php echo $type; ?>"><?php echo $msg; ?></div>
<div style="text-align:center; margin-top:20px;">
<?php
if($gourl=='-1')
{
echo "<a href='javascript:history.go(-1);'>如果您的浏览器没有自动跳转,请点击这里</a>";
}
else if($gourl=='')
{
echo "<input type=\"button\" class=\"btn\" value=\"返 回\" onclick=\"javascript:history.go(-1);\" />";
}
else
{
echo "<input type=\"button\" class=\"btn\" value=\"返 回\" onclick=\"window.location.href='".$gourl."';\" />";
}
?>
</div>
</div>
</body>
</html>
如何修改
你可以随心所欲地修改 showmsg.htm 文件:
- :
<h2 class="<?php echo $type; ?>"><?php echo $title; ?></h2>这行显示提示标题。 - :
<div class="<?php echo $type; ?>"><?php echo $msg; ?></div>这行显示提示内容。 - 修改样式:
<style>...</style>标签里的所有CSS都可以修改,改变颜色、字体、边框、背景等。 - 修改按钮:最下面的按钮逻辑也可以调整,比如改成更现代的样式。
【修改示例:简化后台提示】
假设你想把后台的提示框做得更简洁,去掉多余的边框和阴影。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $cfg_soft_lang; ?>">提示信息</title>
<style>
body{font-family:Arial, Helvetica, sans-serif;font-size:14px;background:#FFF; color:#333; text-align:center; padding-top:100px;}
.msg-box{display:inline-block; text-align:left; padding:20px 30px; border-radius:4px; background:#f9f9f9;}
.msg-box h2{font-size:16px; margin:0 0 10px 0; font-weight:normal;}
.msg-box .success{color:#52c41a;}
.msg-box .error{color:#f5222d;}
.msg-box .notice{color:#fa8c16;}
.msg-box .info{color:#1890ff;}
.msg-box .btn{margin-top:15px; padding:6px 15px; border:none; border-radius:3px; background:#1890ff; color:white; cursor:pointer; font-size:13px;}
</style>
</head>
<body>
<div class="msg-box">
<h2 class="<?php echo $type; ?>"><?php echo $title; ?></h2>
<div class="<?php echo $type; ?>"><?php echo $msg; ?></div>
<div>
<?php
if($gourl=='-1')
{
echo "<a href='javascript:history.go(-1);'>返回上一页</a>";
}
else if($gourl=='')
{
echo "<input type=\"button\" class=\"btn\" value=\"返回\" onclick=\"javascript:history.go(-1);\" />";
}
else
{
echo "<input type=\"button\" class=\"btn\" value=\"前往\" onclick=\"window.location.href='".$gourl."';\" />";
}
?>
</div>
</div>
</body>
</html>
最佳实践:二次开发(避免升级覆盖)
直接修改核心文件(如 common.func.php)或模板文件(如 showmsg.htm)虽然简单,但最大的问题是织梦系统升级后,你的修改会被覆盖。
为了解决这个问题,推荐使用二次开发的方法。
修改前端提示信息(二次开发)
- 创建新函数:在你的模板目录(如
/templets/your_template/)下创建一个新文件,my_functions.php。 - 复制并修改函数:将
/include/common.func.php中的ShowMsg函数完整复制到my_functions.php中,并将其重命名,MyShowMsg。 - 自定义样式:在
MyShowMsg函数中,将所有class="main"的地方改为你的自定义class,class="my-custom-msg-box"。 - 引入新函数:在你的模板文件(如
index.htm,article_article.htm等)的头部,引入这个新文件:{dede:include filename="my_functions.php"/}注意:
{dede:include}通常用于引入模板文件,my_functions.php是纯PHP文件,可能需要用PHP的include或require语句,或者确保织梦环境能正确识别,更稳妥的方式是在织梦的初始化脚本中引入,但这比较复杂,对于大多数情况,直接修改common.func.php是最直接的,但请务必备份。 - 替换调用:找到所有调用
ShowMsg的地方(通常在PHP处理文件中,如plus/feedback.php),将其改为调用你的新函数MyShowMsg。
修改后端提示信息(二次开发)
对于后台提示信息 showmsg.htm,由于它是一个模板文件,升级时通常会被覆盖,更推荐的做法是:
-
复制模板文件:将
/dede/templets/showmsg.htm复制一份。 -
重命名:将复制的文件重命名为你自己的名字,
my_showmsg.htm。 -
修改新文件:打开
my_showmsg.htm进行你想要的修改。 -
修改调用代码:找到织梦后台调用提示信息的PHP代码(通常在
/dede/目录下的各种PHP文件中,如login_action.php),找到类似ShowMsg()的函数调用,修改其第三个参数(模板文件名),将默认的showmsg.htm改为你的my_showmsg.htm。找到类似这样的代码:
ShowMsg('登录成功!', 'index.php', 0, 2000);修改为:
ShowMsg('登录成功!', 'index.php', 0, 2000, 'my_showmsg.htm');(注意:
ShowMsg函数的参数可能因版本不同而略有差异,请查阅具体函数定义。)
| 修改类型 | 文件位置 | 修改方法 | 风险与建议 |
|---|---|---|---|
| 前端用户提示 | /include/common.func.php (函数 ShowMsg) |
直接编辑函数内部的HTML和CSS代码。 | 高风险:升级会被覆盖。建议:备份文件,或采用二次开发创建新函数。 |
| 后端管理员提示 | /dede/templets/showmsg.htm |
直接编辑HTML模板文件。 | 中等风险:升级会被覆盖。建议:备份文件,或采用二次开发复制模板并修改调用代码。 |
希望这份详细的指南能帮助你成功自定义织梦的提示信息!
