ECShop 2.x~4.x 自訂首頁主廣告輪播圖的方法
2022-01-28
332
相關文章
ECShop 2.x 的首頁主廣告輪播圖,在手機上是無法撥放 Flash 的,即使是PC上也因安全性問題而被瀏覽器禁用,而 ECShop 4.x 把輪播圖的方式做了變動,若想使用響應式模板,固定的尺寸不易控制,因此必須稍加修改,以便讓首頁主廣告更有彈性。
swiper 是一款免費的圖片輪播器,由於他不依賴 JQUERY 因此在 ECShop 2.x 上不會有衝突的問題,加上可以指定寬高與齊全的功能,若在 ECShop 4.x 上使用響應式布局可以省去很多麻煩。
2、編輯 index.php 倒數第二行 ?> 前一行增加涵式
3、存檔上傳 library 和 swiper 資料夾到目前模板目錄
2、編輯模板目錄的 index.dwt 約 26 行
3、上傳 library 和 swiper 資料夾到目前模板目錄
點擊圖片可以放大檢視
swiper 是一款免費的圖片輪播器,由於他不依賴 JQUERY 因此在 ECShop 2.x 上不會有衝突的問題,加上可以指定寬高與齊全的功能,若在 ECShop 4.x 上使用響應式布局可以省去很多麻煩。
下載 ECShop 2.x 只需三步驟,方法如下:
1、編輯 index.php 約 128 行//找到 /* 首页主广告设置 */ // 下一行增加 $smarty->assign("template_dir", 'themes/' . $_CFG['template']); $smarty->assign("flash",get_flash_xml());
2、編輯 index.php 倒數第二行 ?> 前一行增加涵式
/** * 獲得首頁主廣告 */ function get_flash_xml() { $flashdb = array(); if (file_exists(ROOT_PATH . DATA_DIR . '/flash_data.xml')) { // 兼容v2.7.0及以前版本 if (!preg_match_all('/item_url="([^"]+)"\slink="([^"]+)"\stext="([^"]*)"\ssort="([^"]*)"/', file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER)) { preg_match_all('/item_url="([^"]+)"\slink="([^"]+)"\stext="([^"]*)"/', file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER); } if (!empty($t)) { foreach ($t as $key => $val) { $val[4] = isset($val[4]) ? $val[4] : 0; $flashdb[] = array('src'=>$val[1],'url'=>$val[2],'text'=>$val[3],'sort'=>$val[4]); } } } return $flashdb; }
3、存檔上傳 library 和 swiper 資料夾到目前模板目錄
ECShop 4.x 只需三步驟,方法如下:
1、編輯 index.php 約 132 行/* 首页主广告设置 */ 下一行增加 $sql = 'SELECT a.ad_id, a.position_id, a.media_type, a.ad_link, a.ad_code, a.ad_name, p.position_style, RAND() AS rnd FROM ' . $GLOBALS['ecs']->table('ad') . ' AS a LEFT JOIN ' . $GLOBALS['ecs']->table('ad_position') . ' AS p ON a.position_id = p.position_id WHERE enabled = 1 AND start_time <= "' . gmtime() . '" AND end_time >= "' . gmtime() . '" AND a.position_id = 1 ORDER BY rnd LIMIT 5'; $res = $GLOBALS['db']->GetAll($sql); $ads = array(); $position_style = ''; foreach ($res AS $row) { $position_style = $row['position_style']; if ($row['media_type'] == 0) { $src = (strpos($row['ad_code'], 'https://') === false && strpos($row['ad_code'], 'https://') === false) ? DATA_DIR . "/afficheimg/$row[ad_code]" : $row['ad_code']; $ads[] = '<a href="affiche.php?ad_id='.$row[ad_id].'&uri=' .urlencode($row["ad_link"]).'" target="_blank"><img src="'.$src.'" alt="' .$row['ad_name'].'" /></a>'; } } $smarty->assign('ads', $ads);
2、編輯模板目錄的 index.dwt 約 26 行
<!-- TemplateBeginEditable name="首页却换主广告" --> <!-- #BeginLibraryItem "/library/ad_position.lbi" --> ..........略............. <!-- #EndLibraryItem --> <!-- TemplateEndEditable --> 改為 <!-- TemplateBeginEditable name="首頁主廣告" --> <!-- #BeginLibraryItem "/library/index_ad.lbi" --><!-- #EndLibraryItem --> <!-- TemplateEndEditable -->
3、上傳 library 和 swiper 資料夾到目前模板目錄
點擊圖片可以放大檢視

需要注意的是 2.x 與 4.x 內容不同 ,不能共用...
如果你對ECShop 2.x~4.x 自訂首頁主廣告輪播圖的方法有任何問題請到討論區發帖。