ECshop 搜尋模組細究

2021-07-14 06:46:45 字數 2001 閱讀 1808

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.首先開...