
正文
ecshop怎么以幻灯版调用首页主广告显示
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
今天在做一个商品网站我使用的是一套现成的ecshop模板了,这套模板下载下来多半是可以使用的,但是我发现第一屏的首页广告一直是不显示我想了很多办法都不显示了,后来一站长告诉我如何解决,下面我就来介绍ecshop调用flash广告的实现方法。
我的默认的是index_ad.lbi模板有一个$flash变量了,但在搜索搜索没发现
<!--{foreach from=$flash name=no item=flash}-->
<li class="li{$smarty.foreach.no.iteration}"><a href="{$flash.url}" target="_blank"><img src="{$flash.src}"/></li>
<!--{/foreach}-->
<!--{foreach from=$flash name=no item=flash}-->
<li>
{$smarty.foreach.no.iteration}
</li>
<!--{/foreach}-->
然后我在index.php文件搜索flash变量没有,只发现这样一个代码
/* 首页主广告设置 */
$smarty->assign('index_ad', $_CFG['index_ad']);
if ($_CFG['index_ad'] == 'cus')
{
$sql = 'SELECT ad_type, content, url FROM ' . $ecs->table("ad_custom") . ' WHERE ad_status = 1';
$ad = $db->getRow($sql, true);
$smarty->assign('ad', $ad);
}
发现没办法使用了,我调用时也不会显示广告主的广告,于是网上搜索一下看到一段这样的文字
在首页index.php的代码:$smarty->assign('shop_notice', $_CFG['shop_notice']); // 商店公告
在这个代码下面加入下面代码:
$smarty->assign("flash",get_flash_xml());
$smarty->assign('flash_count',count(get_flash_xml()));
如果以上两步没有调用首页主广告,然后再index.php中加入如下代码:
/**
* 首页显示主广告区所需代码
* @return array
*/
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;
}







