ecshop細究
今天看了下ecshop搜尋這塊,前台資料一直到後台查詢再返回前台。
大致是這麼個過程,首先,在index.dwt檔案內,body下面引入了
即可重用的搜尋模組**,拼接在body下面,我們可以進入這個檔案看看,在50行左右
這樣就很清楚了,url對應的是根目錄下php,文字框裡面設定
value=""
即保留搜尋值,form表單裡面的action指向php,但是在檢索之前,也即表單提交的同時,通過checksearchform()驗證輸入合法,然後我們到根目錄下search.php中看看,**非常多,需要檢索的東西有點複雜,但可以找到通過表單提交過來的keywords
/* 初始化搜尋條件 */
$keywords = '';
$tag_where = '';
if (!empty($_request['keywords']))
elseif (stristr($_request['keywords'], ' or ') !== false)
elseif (stristr($_request['keywords'], ' + ') !== false)
else
$keywords = 'and (';
$goods_ids = array();
foreach ($arr as $key => $val)
$val = mysql_like_quote(trim($val));
$sc_dsad = $_request['sc_ds'] ? " or goods_desc like '%$val%'" : '';
$keywords .= "(goods_name like '%$val%' or goods_sn like '%$val%' or keywords like '%$val%' $sc_dsad)";
$sql = 'select distinct goods_id from ' . $ecs->table('tag') . " where tag_words like '%$val%' ";
$res = $db->query($sql);
while ($row = $db->fetchrow($res))
$db->autoreplace($ecs->table('keywords'), array('date' => local_date('y-m-d'),
'searchengine' => 'ecshop', 'keyword' => addslashes(str_replace('%', '', $val)), 'count' => 1), array('count' => 1));
}$keywords .= ')';
$goods_ids = array_unique($goods_ids);
$tag_where = implode(',', $goods_ids);
if (!empty($tag_where))
}
在上面的**中通過
$_request['keywords']
來獲取關鍵值,之後進行一些其他處理,然後拼接sql語句,查詢返回的結果通過
$smarty->assign('goods_list', $arr);
注入值,最後在search.dwt檔案中還原整個頁面
這裡我也不是太清楚,網上搜了下,沒有相關的回答,大體上就是這樣注入資料,仔細看看會發現巢狀使用蠻多的,search.dwt檔案裡面表單也會呼叫search.php檔案,然後不斷迴圈,我就感覺這樣很複雜,模組化並不好。
ecshop後台增加模組選單詳細
ecshop後台增加模組選單詳細教程 孤注一 一 ecshop後台管理 adminincludesinc menu.php 新增上你要新增的功能 adminincludesinc priv.php 對應在inc menu裡面新增的東西,新增到inc priv.php裡面 二 前台語言包 langua...
ecshop後台增加模組選單詳細教程
1.我們有時候針對ecshop如此開發,想在後台加一些選單,最模板以前提供過教程,但是並非很系統,如何在ecshop後台增加模組選單!首先需要修改四個檔案 inc priv.php,inc menu.php,priv action.php,commn.php 2.首先開啟language zh cn...
ecshop後台增加模組選單詳細教程
我們有時候針對ecshop如此開發,想在後台加一些選單,最模板以前提供過教程,但是並非很系統,今天最模板拋磚引玉 教程告訴大家 如何在ecshop後台增加模組選單!首先需要修改四個檔案 inc priv.php,inc menu.php,priv action.php,commn.php 1.首先開...