当前位置:首页 > 行业动态 > 正文

如何在织梦DedeCms的搜索框中添加提示信息?

在织梦DedeCms的搜索框里显示提示信息,可以通过修改模板文件来实现。

在织梦DedeCms中,搜索框显示提示信息是一个常见的需求,通过自定义提示信息,不仅可以提升用户体验,还能增加网站的个性化,下面将详细讲解如何在织梦DedeCms的搜索框中显示提示信息。

修改提示信息的步骤

1. 找到并编辑common.func.php文件

需要找到织梦DedeCms根目录下的include/common.func.php文件,这个文件包含了处理提示信息的核心函数ShowMsg

2. 查找并修改ShowMsg函数

打开common.func.php文件后,使用编辑器(如Notepad++)查找“DEDECMS 提示信息!”这一字符串,这个字符串通常出现在两个地方,分别对应于前台和后台的提示信息。

function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=0) {
    if(empty($GLOBALS['cfg_plus_dir'])) $GLOBALS['cfg_plus_dir'] = '..';
    
    $htmlhead = "r
<script language="JavaScript" type="text/javascript">r
";
    $htmlhead .= "r
".(isset($GLOBALS['ucsynlogin']) ? $GLOBALS['ucsynlogin'] : '')."r
";
    $litime = ($limittime==0 ? 1000 : $limittime);
    $func = '';
    
    if($gourl=='1') {
        if($limittime==0) $litime = 5000;
        $gourl = "";
    }
    
    if($gourl=='' || $onlymsg==1) {
        $msg = "";
    } else {
        if(preg_match('/close::/',$gourl)) {
            $tgobj = trim(preg_replace('/close::/', '', $gourl));
            $gourl = 'javascript:;';
            $func .= "window.parent.document.getElementByIdx_x('{$tgobj}').style.display='none';r
";
        }
        $func .= " var pgo=0;
                   function JumpUrl(){
                    if(pgo==0){ location='$gourl'; pgo=1; }
                   }
                   r
";
        $rmsg = $func;
        $rmsg .= "document.write("<div class='dede_msg' style='width:90%; margin:auto;'>");r
";
        $rmsg .= "document.write("<h6>请稍后再试</h6></div><div class='modalbody'>");r
";
        $rmsg .= "document.write("");r
";
        $rmsg .= "document.write("".str_replace(""","“",$msg)."");r
";
        $rmsg .= "document.write("");r
";
        if($onlymsg==0) {
            if( $gourl != 'javascript:;' && $gourl != '') {
                $rmsg .= "<br />如果你的浏览器没反应,请点击这里...";
                $rmsg .= "<a href='javascript:JumpUrl()'>";
                $rmsg .= "onclick="this.style.behavior='url(#default#homepage)';"";
                $rmsg .= "style='color:#FFF; fontweight:bold;cursor:pointer' onFocus='this.blur();'>";
                $rmsg .= "title='点击这里继续';alt='点击这里继续';";
                $rmsg .= "name='syskefilter' id='syskefilter' value='点击这里继续'>";
                $rmsg .= "type='button'>";
                $rmsg .= "onClick="this.disabled=true;location='$gourl';return false;"";
                $rmsg .= ">点击这里继续...</a>";
                $rmsg .= "<script type='text/javascript'>";
                $rmsg .= "setTimeout('JumpUrl()',$litime);";
                $rmsg .= "</script>";
            }
        } else {
            $rmsg .= "r
";
        }
        $msg = $htmlhead.$rmsg.$htmlfoot;
    }
    echo $msg;
}

在上面的代码中,“请稍后再试”就是我们需要修改的提示信息,将其替换为您希望显示的提示内容,“搜索频率过快,请稍后再试!”。

3. 保存并测试

完成上述修改后,保存common.func.php文件,并在浏览器中刷新您的网站以查看效果,搜索框应该已经显示了您自定义的提示信息。

示例表格:常见提示信息及其应用场景

提示信息 应用场景
搜索频率过快,请稍后再试! 用户在短时间内多次进行搜索操作时触发
输入关键词过短,请重新输入! 用户输入的关键词长度不符合要求时触发
未找到相关结果,请检查关键词! 用户搜索的关键词没有匹配到任何结果时触发
系统维护中,请稍后再试! 当网站正在进行维护时触发

常见问题与解答(FAQs)

Q1. 如何更改提示信息的样式?

A1. 要更改提示信息的样式,可以直接在common.func.php文件中的ShowMsg函数内修改CSS样式,可以将默认的<div class='dede_msg' style='width:90%; margin:auto;'>改为<div class='custom_msg' style='backgroundcolor: #f0f0f0; border: 1px solid #ccc; width: 90%; margin: auto; padding: 10px; textalign: center;'>,这样就能改变提示信息的背景颜色、边框和文本对齐方式等。

Q2. 如果我不想显示提示信息怎么办?

A2. 如果您不希望显示提示信息,可以在common.func.php文件中的ShowMsg函数内,将生成提示信息的代码注释掉或删除,可以注释掉以下几行代码:

// $rmsg .= "document.write("<div class='dede_msg' style='width:90%; margin:auto;'>");r
";
// $rmsg .= "document.write("<h6>请稍后再试</h6></div><div class='modalbody'>");r
";
// $rmsg .= "document.write("");r
";
// $rmsg .= "document.write("".str_replace(""","“",$msg)."");r
";
// $rmsg .= "document.write("");r
";

这样,当触发提示信息时,页面上将不会显示任何提示内容,不过请注意,这样做可能会影响用户体验,建议谨慎使用。

通过以上步骤,您可以轻松地在织梦DedeCms的搜索框中显示自定义的提示信息,并根据需要调整其样式和行为,如果有任何疑问或需要进一步的帮助,请随时咨询专业的技术支持人员。

0