当前位置:首页 > CMS教程 > ecshop > 列表

ecshop怎么以幻灯版调用首页主广告显示

发布:smiling 来源: PHP粉丝网  添加日期:2014-12-03 11:19:09 浏览: 评论:0 

今天在帮一个朋友做了一个商品网站我使用的是一套现成的ecshop模板了,这套模板下载下来多半是可以使用的,但是我发现第一屏的首页广告一直是不显示我想了很多办法都不显示了,后来一站长告诉我如何解决,下面我就来介绍ecshop调用flash广告的实现方法.

我的默认的是index_ad.lbi模板有一个$flash变量了,但在搜索搜索没发现,代码如下:

  1. <!--{foreach from=$flash name=no item=flash}--> 
  2.     <li class="li{$smarty.foreach.no.iteration}"><a href="{$flash.url}" target="_blank"><img src="{$flash.src}"/></li> 
  3. <!--{/foreach}--> 
  4.  
  5. <!--{foreach from=$flash name=no item=flash}--> 
  6.      <li> 
  7.     {$smarty.foreach.no.iteration} 
  8.     </li>  
  9. <!--{/foreach}--> 

然后我在index.php文件搜索flash变量没有,只发现这样一个代码:

  1. /* 首页主广告设置 */ 
  2. $smarty->assign('index_ad',     $_CFG['index_ad']); 
  3.     if ($_CFG['index_ad'] == 'cus'
  4.     { 
  5.         $sql = 'SELECT ad_type, content, url FROM ' . $ecs->table("ad_custom") . ' WHERE ad_status = 1'
  6.         $ad = $db->getRow($sql, true); 
  7.         $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中加入如下代码:

  1. function get_flash_xml() 
  2. $flashdb = array(); 
  3. if (file_exists(ROOT_PATH . DATA_DIR . '/flash_data.xml')) 
  4. // 兼容v2.7.0及以前版本 
  5. if (!preg_match_all('/item_url="([^"]+)"slink="([^"]+)"stext="([^"]*)"ssort="([^"]*)"/'file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER)) 
  6. preg_match_all('/item_url="([^"]+)"slink="([^"]+)"stext="([^"]*)"/'file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER); 
  7. if (!emptyempty($t)) 
  8. foreach ($t as $key => $val
  9. {//开源软件:phpfensi.com 
  10. $val[4] = isset($val[4]) ? $val[4] : 0; 
  11. $flashdb[] = array('src'=>$val[1],'url'=>$val[2],'text'=>$val[3],'sort'=>$val[4]); 
  12. //print_r($flashdb); 
  13. return $flashdb

这样再调用发现可以显示了,不过中间有一个小细节就是我把function get_flash_xml()函数放在了如下代码:

$smarty->assign("flash",get_flash_xml());

$smarty->assign('flash_count',count(get_flash_xml()));

下面会提示函数未定义,于时我把它放到index.php文件最后面就可以了,这个具体原因我也不说了大家自行测试一下吧.

Tags: ecshop幻灯片 ecshop首页主广告

分享到: