您的位置:首页 > 移动开发

ecshop手机端模板引擎切换到smarty3.1.30-之改造insert_ads

2016-12-10 09:35 267 查看
在网上下载的一个小京东的模板4.1的模板,原模板引擎是ecshop的,感觉不是很好用,切换到smarty吧,

选择了新版的smarty3.1.30使用,遇到的第一个问题就是有一些函数使用起来不对,所以改造一下,遇到的第一个就是insert_ads

这个广告在手机端只显示一个,所以就简化了一个,改成了这个样子

function insert_ads1($arr)
{
static $static_res = NULL;

$time = gmtime();

$sql = 'SELECT a.ad_id, a.position_id, a.media_type, a.ad_link, a.ad_code, a.ad_name, p.ad_width, ' .
'p.ad_height, p.position_style, RAND() AS rnd ' .
'FROM ' . $GLOBALS['ecs']->table('ecsmart_ad') . ' AS a ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('ecsmart_ad_position') . ' AS p ON a.position_id = p.position_id ' .
"WHERE enabled = 1 AND a.position_id = '" . $arr['id'] .
"' AND start_time <= '" . $time . "' AND end_time >= '" . $time . "' " .
'ORDER BY rnd LIMIT 1';
// echo $sql;
$row = $GLOBALS['db']->getrow($sql);

$src = (strpos($row['ad_code'], 'http://') === 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' width='" . $row['ad_width'] . "' height='$row[ad_height]' border='0' /></a>";

return $ads;
}

而对于前台的调用,使用这样的语法就可以调用了

 <dt> {insert name="ads1" id="6" num="1"}</dt>

个人发表一点意见,商城这个东西是一个变化的东西,有一些东西是没有办法做成产品的,就像街头小吃一样。虽然有许多速食食品,依然不能取代小吃。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ecshop