首页 > zen-cart, 程序研究 > ZenCart:增加Popular Search
201202/07

ZenCart:增加Popular Search

这个功能好早就从lightinthebox模板中提取出来了,但是由于最近一直心情不好,也没有发表出来,今天上午没事做就写出来吧。
第一步执行数据库,代码如下

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
CREATE TABLE IF NOT EXISTS `customers_searches` (`search` varchar(255) NOT NULL DEFAULT '',
`language_id` int(11) unsigned DEFAULT NULL,`freq` tinyint(3) unsigned DEFAULT '0',PRIMARY KEY (`search`) USING BTREE,
KEY `lang` (`language_id`))ENGINE=MyISAM DEFAULT CHARSET=utf8;

第二步修改文件includes\modules\pages\advanced_search_result\header_php.php,也可以修改includes\application_bottom.php增加如下代码

/* 数据库中表customers_searches增加搜索次数和关键词*/
if ($_GET['keyword'] != '') {
$search_count = $db->Execute("select freq from customers_searches where search = '". $_GET['keyword'] . "'");
if (!$search_count->RecordCount()) {
$db->Execute("insert into customers_searches (search,language_id, freq) values
('". $_GET['keyword'] ."','". $_SESSION['languages_id'] ."',1)");
} else {
$db->Execute("update customers_searches set freq =
" . ($search_count->fields['freq']+1) . " where search = '". $_GET['keyword'] . "'");
}

第三步增加一个文件includes\modules\sideboxes\你自己的模板名称\popular_searches.php  代码如下  可以根据自己的需求进行修改。

<div id="information" style="width: 170px">
<div>
<h3 id="informationHeading"><?php echo TEXT_BOX_POPULAR_SEARCHES;?></h3>
</div>
<div id="informationContent">
<ul style="margin: 0; padding: 0; list-style-type: none;">
<?php$popularSearches = $db->Execute('select search,freq from customers_searches limit 12');
$popularContent_i = 0;while(!$popularSearches->EOF){$popularContent ='';
$popularContent .= '<a href="'.zen_href_link(FILENAME_ADVANCED_SEARCH_RESULT,
'keyword='.$popularSearches->fields['search'], 'NONSSL').'" _fcksavedurl="'.
zen_href_link(FILENAME_ADVANCED_SEARCH_RESULT,'keyword='.$popularSearches->fields['search'], 'NONSSL').'">';
if($popularSearches->fields['freq'] >10){$popularContent .= '<strong style="color:red;">';
}$popularContent .= $popularSearches->fields['search'];
if($popularSearches->fields['freq']>10){$popularContent .= '</strong>';}$popularContent .= '</a>';
if($popularContent_i < $popularSearches->RecordCount()){$popularContent .= ', ';
$popularContent_i++;}echo $popularContent;$popularSearches->MoveNext();}?>
</ul>
</div>
</div>

第四步在includes\languages\english.php中添加如下文字

define('TEXT_BOX_POPULAR_SEARCHES','Popular Searches');

好了,就这样就可以了,有问题可以给我留言

 

版权申明:原创文章,转载时请务必复制以下链接。
文章名称:ZenCart:增加Popular Search
文章链接:http://www.fuyahui.com/zencart-add-popular-search.html
来源地址:http://www.fuyahui.com

由于部分文章由网上转载,如若侵权,我们会在收到您的通知并提供有效证明后立刻删除。

4 Responses to “ZenCart:增加Popular Search”

  1. #1 Stone 回复 | 引用 Post:2012-04-15 11:02

    不知道是不是第三步的问题, 我是1.38的,感觉应该不是版本的问题.我第三步是直接新建一个空白的php文件,然后把你的代码copy进去.可是启用后,前台显示空白.当我把这个栏不显示的时候,前台又好好的.不知道是什么问题.

    • #2 admin 回复 | 引用 Post:2012-04-15 14:58

      加我qq:350314173 我详细了解下

  2. #3 Stone 回复 | 引用 Post:2012-04-16 05:53

    提示:Parse error: includes/application_bottom.php on line 38

  3. #4 Stone 回复 | 引用 Post:2012-04-16 06:24

    受益非浅,谢谢!

发表评论