ECShop 调用自定义广告 如何调用指定

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家

1、在index.php页面添加调用函数
/*
* 调用广告位
*/
function index_ad_diy($id,$num)
{
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('ad');
$sql = $sql." WHERE ad_id=".$id;
$sql = $sql." ORDER BY end_time asc";
$sql = $sql." LIMIT ".$num;

$res = $GLOBALS['db']->getAll($sql);
$arr = array();
foreach ($res AS $idx => $row)
{
$arr[$idx]['id'] = $row['ad_id'];
$arr[$idx]['title'] = $row['ad_name'];
$arr[$idx]['imglink']= $row['ad_link'];
$arr[$idx]['imgcode']= "/" . DATA_DIR . "/afficheimg/" . $row['ad_code'];
}
return $arr;
}



/*自定义广告位调用*/
$smarty->assign('ad_diy1',index_ad_diy('1','1'));// 自定义广告位调用
$smarty->assign('ad_diy2',index_ad_diy('2','1'));// 自定义广告位调用
$smarty->assign('ad_diy3',index_ad_diy('3','1'));// 自定义广告位调用
$smarty->assign('ad_diy4',index_ad_diy('4','1'));// 自定义广告位调用
$smarty->assign('ad_diy5',index_ad_diy('5','1'));// 自定义广告位调用
$smarty->assign('ad_diy6',index_ad_diy('6','1'));// 自定义广告位调用
$smarty->assign('ad_diy7',index_ad_diy('7','1'));// 自定义广告位调用
$smarty->assign('ad_diy8',index_ad_diy('8','1'));// 自定义广告位调用
$smarty->assign('ad_diy9',index_ad_diy('9','1'));// 自定义广告位调用
$smarty->assign('ad_diy10', index_ad_diy('10','1'));// 自定义广告位调用
$smarty->assign('ad_diy11', index_ad_diy('11','1'));// 自定义广告位调用
$smarty->assign('ad_diy12', index_ad_diy('12','1'));// 自定义广告位调用

index_focus.lbi 库

<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<li rel="0">
<!--{foreach from=$ad_diy1 item=diyAd}-->
<a href="{$diyAd.imglink}" id="item-8" class="focus_hover" target="_blank"><img width="720" height="400" alt="{$diyAd.title|escape:html}" src="{$diyAd.imgcode}"><div class="maskLayer" style="width: 720px; height: 400px;"></div></a>
<!--{/foreach}-->
<!--{foreach from=$ad_diy2 item=diyAd}-->
<a href="{$diyAd.imglink}" id="item-4" class="focus_hover" target="_blank"><img width="240" height="400" alt="{$diyAd.title|escape:html}" src="{$diyAd.imgcode}"><div class="maskLayer" style="width: 240px; height: 400px;"></div></a>
<!--{/foreach}-->
</li>


问题是首页有很多广告图片需要调用,有什么办法
<!--{foreach from=$ad_diy1 item=diyAd}-->
可以让 foreach 中写一个 ID值和数量就直接传送给 function index_ad_diy($id,$num)函数


要不然,我index.php 中要写很30条
$smarty->assign('ad_diy6',index_ad_diy('6','1'));// 自定义广告位调用

我研究了2天了,求帮助

回答:
广告位和数据库有关,楼主研究一下数据库。

ECSHOP学习资料:http://www.phpally.com

谢谢楼上回答 我的问题主要是 想在模版中传一个值给自定的函数
这样我调用数据库的数据就比较方便

也就是说如何直接在模版中使用function自定义函数并能传值给他。


希望大家帮忙解答下。



给你举一个例子,你可以对照着你的情况修改,原理都一样
  1. {foreach from=$top_list item=top}
  2. ...........................
  3. <?php
  4. $GLOBALS['smarty']->assign('new_list', index_ad_diy($GLOBALS['smarty']->_var['top']['id'], 1));
  5. ?>
  6. {foreach from=$new_list item=new}
  7. .......................
  8. {/foreach}
  9. ...........................
  10. {/foreach}
复制代码

我的是最新的 V2.7.3 20121106 正式版

好像模板中 取消了 对 <?PHP?> 的支持

我早到问题所在了,如果想用函数 只要
<!--{foreach from=$ad_diy1 item=diyAd}-->
改成
<!--{foreach from=index_ad_diy('13','1') item=index_ad_diy}-->

就可以直接用函数。

原来以前多了一个$

希望以后可以帮助到别人