TOP
首頁 > ECSHOP 相關文章與模板 > Ecshop 綜合文章 > ECShop 2.x~4.x 自訂首頁主廣告輪播圖的方法

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  上使用響應式布局可以省去很多麻煩。

下載 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].'&amp;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 資料夾到目前模板目錄
點擊圖片可以放大檢視
ECShop 2.x~4.x 自訂首頁主廣告輪播圖的方法

需要注意的是 2.x 與 4.x 內容不同 ,不能共用...

如果你對ECShop 2.x~4.x 自訂首頁主廣告輪播圖的方法有任何問題請到討論區發帖。