自定织梦提示信息修改

99ANYc3cd6
预计阅读时长 34 分钟
位置: 首页 织梦建站 正文
  1. 前端用户操作提示:用户在网站前台进行操作(如发表评论、提交表单、投稿等)时看到的消息框。
  2. 后端管理员操作提示:管理员在后台进行操作时看到的消息框。

修改这两类提示信息的方法和位置完全不同,下面我将分步为你讲解。


修改前端用户提示信息

前端提示信息通常位于 /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代码来自定义提示框的样式。

【修改示例:自定义一个漂亮的提示框】

假设你想把默认的灰色边框提示框,修改成一个更现代化的卡片式提示框。

  1. 打开文件/include/common.func.php
  2. 找到 ShowMsg 函数
  3. 修改CSS样式部分:找到 <style> ... </style> 标签,修改其中的CSS规则。
  4. 修改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)虽然简单,但最大的问题是织梦系统升级后,你的修改会被覆盖

为了解决这个问题,推荐使用二次开发的方法。

修改前端提示信息(二次开发)

  1. 创建新函数:在你的模板目录(如 /templets/your_template/)下创建一个新文件,my_functions.php
  2. 复制并修改函数:将 /include/common.func.php 中的 ShowMsg 函数完整复制到 my_functions.php 中,并将其重命名,MyShowMsg
  3. 自定义样式:在 MyShowMsg 函数中,将所有 class="main" 的地方改为你的自定义class,class="my-custom-msg-box"
  4. 引入新函数:在你的模板文件(如 index.htm, article_article.htm 等)的头部,引入这个新文件:
    {dede:include filename="my_functions.php"/}

    注意:{dede:include} 通常用于引入模板文件,my_functions.php 是纯PHP文件,可能需要用PHP的 includerequire 语句,或者确保织梦环境能正确识别,更稳妥的方式是在织梦的初始化脚本中引入,但这比较复杂,对于大多数情况,直接修改 common.func.php 是最直接的,但请务必备份。

  5. 替换调用:找到所有调用 ShowMsg 的地方(通常在PHP处理文件中,如 plus/feedback.php),将其改为调用你的新函数 MyShowMsg

修改后端提示信息(二次开发)

对于后台提示信息 showmsg.htm,由于它是一个模板文件,升级时通常会被覆盖,更推荐的做法是:

  1. 复制模板文件:将 /dede/templets/showmsg.htm 复制一份。

  2. 重命名:将复制的文件重命名为你自己的名字,my_showmsg.htm

  3. 修改新文件:打开 my_showmsg.htm 进行你想要的修改。

  4. 修改调用代码:找到织梦后台调用提示信息的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模板文件。 中等风险:升级会被覆盖。建议:备份文件,或采用二次开发复制模板并修改调用代码。

希望这份详细的指南能帮助你成功自定义织梦的提示信息!

-- 展开阅读全文 --
头像
dede如何调用文章字段?
« 上一篇 03-29
C语言如何高效计算1到100的和?
下一篇 » 03-29

相关文章

取消
微信二维码
支付宝二维码

目录[+]