ecshop優化

ecshop各個頁面調用商品銷售量方法

0 發布于2017-04-21 閱讀: 572 次
ecshop默認是沒有商品銷量統計的,有的朋友需要這個功能,而且還要用在不同的頁面,比如:首頁、分類頁、產品詳情頁都要顯示某個產品的銷量,下面說一下實現的過程,其中首頁的推薦商品包括熱銷推薦和促銷三個文件,只對熱銷商品為例
第一步:打開根目錄/includes/lib_goods.php文件,在文件末尾添加以下代碼
/**
 * 商品銷售量
 */
function selled_count($goods_id)
{
$sql= "sel ect sum(goods_number) as count from ".$GLOBALS['ecs']->table('order_goods')."where goods_id ='".$goods_id."'";
$res = $GLOBALS['db']->getOne($sql);
if($res>0)
{
return $res;
}
else
{
return('0');
}
}
 
第二步:繼續搜索get_recommend_goods在這段代碼中找到下面代碼
$goods[$idx]['url'] = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);
 
在這句話下添加 
$goods[$idx]['count'] = selled_count($row['goods_id']);
 
第三步:在模版的library/recommend_hot.lbi中在需要的地方添加
<div class="index_hotbg">售出 <strong>{$goods.count}</strong> 瓶</div>
推薦、新品也是一樣的方法,這里就不再多說。

后面更精彩 »

ecshop優化-找不到分類或產品返回首頁

0 發布于2015-11-24 閱讀: 827 次
好久沒有搗鼓ecshop的優化了,今天發現ecshop中有一段代碼是如果找不到分類或產品就返回首頁,這樣子跳轉,返回的HTTP代碼將會是302,表明此頁面信息暫時性轉移。(這類跳轉代碼很容易引起搜索引擎封殺,有能力的朋友,可以做301跳到單獨的頁面。)   原來的代碼如下: /* 如果分類不存在則返回首頁 */
  ecs_header("Location: ./\n");
  exit; 修改后的代碼:   ecs_header("HTTP/1.0 404 Not Found");
  exit; 以上代碼的意思很簡單,就是讓ecshop找不到分類或產品的時候不返回首頁,讓它返回404錯誤頁面。 ECSHOP程序文件category.php及goods.php,當然還有article.php。

ecshop商品列表頁面調用當前分類名稱

0 發布于2014-03-04 閱讀: 2,298 次
第一步:找到根目錄下category.php,搜索以下代碼

function get_cat_info($cat_id)
{
    return $GLOBALS['db']->getRow('SELECT keywords, cat_desc, style, grade, filter_attr, parent_id FROM ' . $GLOBALS['ecs']->table('category') .
        " WHERE cat_id = '$cat_id'");
}

在“keywords”前、“SELECT”后加上“cat_name,”

第二步:轉到90行左右,找到

$smarty->assign('cat_style',   htmlspecialchars($cat['style']));

在后面加上一行
$smarty->assign('catname',   htmlspecialchars($cat['cat_name']));


第三步:打開模板category.dwt,在需要的地方用{$catname}調用

ecshop瀏覽歷史記錄的修改

0 發布于2014-01-12 閱讀: 6,310 次
先說說Ecshop的瀏覽歷史是怎么個原理的,其實Ecshop的商品瀏覽歷史是這樣生成的: 訪問商品的時候,經過goods.php,開始檢查是否存在cookie 'ECS[history]',若存在,取出該cookie的值,將其拆分為數組,將當前商品的id插入這個數組的開頭位置,移除數組中重復的元素,在當前瀏覽歷史中的商品數量大于系統設置的數量時,不斷刪除數組中的最后一個元素直到當前瀏覽歷史中的商品數量不再大于系統設置的數量(這樣可以保證瀏覽歷史中的商品數量始終是一個固定值),將最終得到的新數組用,拼接為一個字符串,保存在cookie 'ECS[history]'中。 若不存在,保存當前商品id到cookie 'ECS[history]'中。 顯示商品瀏覽歷史的時候,通過$_COOKIE['ECS']['history']得到瀏覽歷史里面的商品id,自然就可以通過這些id得到商品信息,至于具體如何顯示,請查看history.lbi和/includes/lib_insert.php里面的insert_history方法。 下面是可以通過CSS樣式來修改歷史記錄的顯示。

Ecshop的瀏覽歷史的樣式,例如我修改的是只讓瀏覽歷史顯示瀏覽歷史的商品名稱 而不顯示瀏覽歷史的商品的價格和圖片 首先找到要修改 的文件includes\lib_insert.php 找到函數function insert_history() 函數里面的 $str.='<ul class="clearfix"><li class="goodsimg"><a href="'.$goods['url'].'" target="_blank"><img src="'.$goods['goods_thumb'].'" alt="'.$goods['goods_name'].'" class="B_blue" /></a></li><li><a href="'.$goods['url'].'" target="_blank" title="'.$goods['goods_name'].'">'.$goods['short_name'].'</a><br />'.$GLOBALS['_LANG']['shop_price'].'<font class="f1">'.$goods['shop_price'].'</font><br /></li></ul>'; 就是瀏覽歷史的樣式 下面一行 $str .= '<ul id="clear_history"><a onclick="clear_history()">' . $GLOBALS['_LANG']['clear_history'] . '</a></ul>';是“清空”字樣的鏈接

我修改的只顯示瀏覽歷史的商品名稱修改的最終代碼如下:
$str.='<ul class="clearfix"><li><a href="'.$goods['url'].'" target="_blank" title="'.$goods['goods_name'].'">'.$goods['short_name'].'</a><br /></li></ul>' 如果這個頁面幫助你解決了問題,留個言吧。轉載請注明出處!

Ecshop專題頁分類順序錯亂解決辦法

0 發布于2013-08-28 閱讀: 1,899 次
Ecshop優化的文章原來寫過很多篇了,包括Ecshop文章分類頁自定義Title還有全面優化Ecshop的文章等... 最近一直在玩,沒有動過網站,今天閑來無事,準備給網站增加幾個專題,發現ecshop專題頁增加多個產品分類后,排列順序是有問題的。下面給出解決方法,希望能幫到遇到同樣問題的朋友; 打開topic.php $cache_id = sprintf('%X', crc32($_SESSION['user_rank'] . '-' . $_CFG['lang'] . '-' . $topic_id)); if (!$smarty->is_cached($templates, $cache_id)) 改成下面的  $cache_id = sprintf('%X', crc32($_SESSION['user_rank'] . '-' . $_CFG['lang'] . '-' . $topic_id)); if (1)   再到最下面一段找到 /* 模板賦值 */     assign_template();     $position = assign_ur_here();     $smarty->assign('page_title',       $position['title']);       // 頁面標題     $smarty->assign('ur_here',          $position['ur_here'] . '> ' . $topic['title']);     // 當前位置     $smarty->assign('show_marketprice', $_CFG['show_marketprice']);     $smarty->assign('sort_goods_arr',   $sort_goods_arr);          // 商品列表     $smarty->assign('topic',            $topic);                   // 專題信息     $smarty->assign('keywords',         $topic['keywords']);       // 專題信息     $smarty->assign('description',      $topic['description']);    // 專題信息     $smarty->assign('title_pic',        $topic['title_pic']);      // 分類標題圖片地址     $smarty->assign('base_style',       '#' . $topic['base_style']);     // 基本風格樣式顏色     $template_file = empty($topic['template']) ? 'topic.dwt' : $topic['template']; } /* 顯示模板 */ $smarty->display($templates, $cache_id);   改成以下代碼  foreach($arr as $key1=>$val1)     {         //var_dump($key1);         foreach($sort_goods_arr as $key2=>$val2)         {             if($key1==$key2)             {        //var_dump($key2);                 $sort_goods_arr_2[$key2]=$val2;             }         }     } //var_dump($sort_goods_arr);     /* 模板賦值 */     assign_template();     $position = assign_ur_here();     $smarty->assign('page_title',       $position['title']);       // 頁面標題     $smarty->assign('ur_here',          $position['ur_here'] . '> ' . $topic['title']);     // 當前位置     $smarty->assign('show_marketprice', $_CFG['show_marketprice']);     $smarty->assign('sort_goods_arr',   $sort_goods_arr_2);          // 商品列表     $smarty->assign('topic',            $topic);                   // 專題信息     $smarty->assign('keywords',         $topic['keywords']);       // 專題信息     $smarty->assign('description',      $topic['description']);    // 專題信息     $smarty->assign('title_pic',        $topic['title_pic']);      // 分類標題圖片地址     $smarty->assign('base_style',       '#' . $topic['base_style']);     // 基本風格樣式顏色     $template_file = empty($topic['template']) ? 'topic.dwt' : $topic['template']; } /* 顯示模板 */ $smarty->display($templates); 修改完以后覆蓋原來的文件,后臺更新緩存,再打開ecshop專題頁面看下排序是不是正常了?smiley
吉林十一选五走势图表电脑版