在网上下载的一个小京东的模板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>
个人发表一点意见,商城这个东西是一个变化的东西,有一些东西是没有办法做成产品的,就像街头小吃一样。虽然有许多速食食品,依然不能取代小吃。