关于ecshop显示报错Call to undefined function insert_searchkeywords

2017-04-16 20:44 来源:www.chinab4c.com 作者:ecshop专家

 ecshop显示报错:Fatal error: Call to undefined function insert_searchkeywords() in

E:\\phpnow\\htdocs\\ecshoptemplate.com\\includes\\cls_template.php on line 1140
这个英文意思在cls_template.php  文件中缺少函数 insert_searchkeywords
要解决的话补充这个函数就行。这个函数本身是解决:ECSHOP首页热门搜索关键词实现随机 的
教程如下:
1、

打开 include/lib_main.php 文件,找到下面这段代码,删除之(大概在1652行左右)
 
if (!empty($GLOBALS['_CFG']['search_keywords']))
    {
        $searchkeywords = explode(',', trim($GLOBALS['_CFG']['search_keywords']));
    }
    else
    {
        $searchkeywords = array();
    }
    $smarty->assign('searchkeywords', $searchkeywords);

2 、

打开 include/lib_insert.php 文件 ,在文件最下边加入下面这个函数
 
 
function insert_searchkeywords() {
    if (!empty($GLOBALS['_CFG']['search_keywords']))
    {
        $searchkeywords = explode(',', trim($GLOBALS['_CFG']['search_keywords']));
        $rand = array_rand($searchkeywords,3);//后面的 3 是设置显示的数量
        for($i=0;$i<3;$i++) {
            $search[] = $searchkeywords[$rand[$i]];
        }
        $searchkeywords = $search;
    }
    else
    {
        $searchkeywords = array();
    }
    $GLOBALS['smarty']->assign('searchkeywords', $searchkeywords);
    $val = $GLOBALS['smarty']->fetch('library/search.lbi');  //这里要在你的模板里面创建一个search.lbi
    return $val;
}


3 、

在你的“/themes/ECSHOP模板文件夹/library/” 下面创建一个名为 search.lbi  的文件,文件内容如下:
 
{if $searchkeywords}
   {$lang.hot_search} :
   {foreach from=$searchkeywords item=val}
   <a href="search.php?keywords={$val|escape:url}">{$val}</a>
   {/foreach}
   {/if}

4.、

打开你的“/themes/ECSHOP模板文件夹/library/page_header.lbi ”,找到下面这段代码
 
{if $searchkeywords}
   {$lang.hot_search} :
   {foreach from=$searchkeywords item=val}
   <a href="search.php?keywords={$val|escape:url}">{$val}</a>
   {/foreach}
   {/if}
 
将这段代码替换为
 
{insert name='searchkeywords'}

修改完,FTP上传覆盖后,去后台清除一下你的缓存 您若只补充函数的话,直接在cls_template.php底部增加 function insert_searchkeywords() {
    if (!empty($GLOBALS['_CFG']['search_keywords']))
    {
        $searchkeywords = explode(',', trim($GLOBALS['_CFG']['search_keywords']));
        $rand = array_rand($searchkeywords,3);//后面的 3 是设置显示的数量
        for($i=0;$i<3;$i++) {
            $search[] = $searchkeywords[$rand[$i]];
        }
        $searchkeywords = $search;
    }
    else
    {
        $searchkeywords = array();
    }
    $GLOBALS['smarty']->assign('searchkeywords', $searchkeywords);
    $val = $GLOBALS['smarty']->fetch('library/search.lbi');  //这里要在你的模板里面创建一个search.lbi
    return $val;
}    

 这些代码就行 ,问题解决了吗? 解决了,请在文章底部评论留言支持下我们!