ECSHOP實現多城市分站功能詳解
2024-07-09 22:56:39
供稿:網友
長期以來,ecshop論壇里,很多朋友在問:“ECSHOP如何實現地方分站? ”,“EC可以實現分站網店嗎?? ”,“能不能增加“城市分站”的功能? ”,“增加各城市分頁(非分站非IP,只是一個頁面),大大優化搜索! ”等諸如此類的問題,但是都沒能找到一個好的答案。下面這段代碼是筆者在網上找到,希望EC高手們繼續補充完善,ecshop如果能實現像58同城哪樣的功能肯定是使用ECSHOP的所有朋友的福音。
下面是筆都用以下代碼做出來的效果圖:
給ECSHOP添加全國分站:
首們在ECSHOP數據庫ecs_region表中,可以發現字段parent_id為1的值就是咱們想要的全國各地分站名(region_name)
通過在ECSHOP商城根目下的index.php文件中增加1個函數:
//-- ecshop用品商城獲取城市分站插件
function get_city () {
$sql = "SELECT * FROM ".$GLOBALS['ecs']->table('region')." WHERE `parent_id` =1 ";
$list = $GLOBALS['db']->getAll($sql);
if ($list) {
return $list;
}
return false;
}
復制代碼
繼續在index.php中搜索:
//-- 判斷是否存在緩存,如果存在則調用緩存,反之讀取相應內容
復制代碼
在以上內容的下方增加:
$smarty->assign('citys', get_city ()); // 城市分站
復制代碼
最后在ECSHOP模板themes/defau/ltindex.dwt文件中相應的地方增加:
<p>全國分站:
{foreach from=$citys item=c}
<a href="http://www.companysz.com/">{$c.region_name }</a>
{/foreach}
</p>
復制代碼
聚紅伙玩具商城是在紅色部份代碼處增加的,當然你也可以根據實際需要增加在別的位置。
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<script type="text/javascript">
var process_request = "{$lang.process_request}";
</script>
<div class="block clearfix">
<div class="f_l"><a href=http://www.companysz.com name="top"><img src="http://www.companysz.com/images/logo.gif" /></a></div>
//-- ecshop商城城市分站
<p>玩具商城全國各地分站:
{foreach from=$citys item=c}
<a href="http://www.companysz.com/">{$c.region_name }</a>
{/foreach}
</p>
<div class="f_r log">
<ul>
<li class="userInfo">
{insert_scripts files='transport.js,utils.js'}
<font id="ECS_MEMBERZONE">{* ECSHOP 提醒您:根據用戶id來調用member_info.lbi顯示不同的界面 *}{insert name='member_info'} </font>
</li>
<!--{if $navigator_list.top}-->
<li id="topNav" class="clearfix">
<!-- {foreach name=nav_top_list from=$navigator_list.top item=nav} -->
<a href="{$nav.url}" <!-- {if $nav.opennew eq 1} --> target="_blank" <!-- {/if} -->>{$nav.name}</a>
<!-- {if !$smarty.foreach.nav_top_list.last} -->
|
<!-- {/if} -->
<!-- {/foreach} -->
<div class="topNavR"></div>
</li>
<!-- {/if} -->
</ul>
</div>
</div>
<div class="blank"></div>
<div id="mainNav" class="clearfix">
<a href="../index.php"{if $navigator_list.config.index eq 1} class="cur"{/if}>{$lang.home}<span></span></a>
<!-- {foreach name=nav_middle_list from=$navigator_list.middle item=nav} -->
<a href="{$nav.url}" {if $nav.opennew eq 1}target="_blank" {/if} {if $nav.active eq 1} class="cur"{/if}>{$nav.name}<span></span></a>
<!-- {/foreach} -->
</div>
<!--search start-->
<div id="search" class="clearfix">
<div class="keys f_l">
<script type="text/javascript">
{literal}
<!--
function checkSearchForm()
{
if(document.getElementByIdx_xx_x_x('keyword').value)
{
return true;
}
else
{
alert("{$lang.no_keywords}");
return false;
}
}
-->
{/literal}
</script>
{if $searchkeywords}
{$lang.hot_search} :
{foreach from=$searchkeywords item=val}
<a href="search.php?keywords={$val|escape:url}">{$val}</a>
{/foreach}
{/if}
</div>
<form id="searchForm" name="searchForm" method="get" action="search.php" **ubmit="return checkSearchForm()" class="f_r" style="_position:relative; top:5px;">
<select name="category" id="category" class="B_input">
<option value="0">{$lang.all_category}</option>
{$category_list}
</select>
<input name="keywords" type="text" id="keyword" value="{$search_keywords|escape}" class="B_input" style="width:110px;"/>
<input name="imageField" type="submit" value="" class="go" style="cursor:pointer;" />
<a href="search.php?act=advanced_search">{$lang.advanced_search}</a>
</form>
</div>
<!--search end-->
復制代碼
通過修改以上2個文件,ECSHOP全國分站就可以在首頁上顯示出來了,但是要想讓ecshop實現58同城哪樣的功能,還有待各位大蝦們的進一步完善。
在ECSHOP數據庫ecs_region表中,可以發現字段parent_id為1的值就是咱們想要的全國各地分站名(region_name)
通過在ECSHOP商城根目下的index.php文件中增加1個函數:
//-- ecshop商城獲取城市分站插件
function get_city () {
$sql = "SELECT * FROM ".$GLOBALS['ecs']->table('region')." WHERE `parent_id` =1 ";
$list = $GLOBALS['db']->getAll($sql);
if ($list) {
return $list;
}
return false;
}
復制代碼
繼續在index.php中搜索:
//-- 判斷是否存在緩存,如果存在則調用緩存,反之讀取相應內容
復制代碼
在以上內容的下方增加:
$smarty->assign('citys', get_city ()); // 城市分站
復制代碼
最后在ECSHOP模板themes/defau/ltindex.dwt文件中相應的地方增加:
<p>全國分站:
{foreach from=$citys item=c}
<a href="http://www.companysz.com/">{$c.region_name }</a>
{/foreach}
</p>