在使用Dedecms进行网站开发时,美化提示信息框是一个非常实用的功能。通过修改核心文件,可以显著提升用户体验。以下是具体的操作步骤和代码示例:
首先,打开/include/common.func.php 文件,找到大约在278行的函数 ShowMsg。
原始代码如下:
function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=0)
{
// 中间代码省略...
}
接下来,将整个函数替换为以下代码:
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
{
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(\\"\\");/r/n;";
$rmsg .= "document.write(\\"";
$rmsg .= "提示信息
\\");/r/n";
$rmsg .= "document.write(\\"\\");/r/n";
$rmsg .= "document.write(\\"".str_replace("\\"","",$msg)."\\");/r/n";
$rmsg .= "document.write(\\"";
if($onlymsg==0)
{
if( $gourl != 'javascript:;' && $gourl != '')
{
$rmsg .= "点击跳转";
$rmsg .= "
\\");/r/n";
$rmsg .= "setTimeout('JumpUrl()',$litime);";
}
else
{
$rmsg .= "
\\");/r/n";
}
}
else
{
$rmsg .= "
