您的位置:首页 > 运维架构

ecshop二次开发--广告投放

2016-08-26 10:52 225 查看
安装完成之后如何使用:

1.到后台找到广告管理-》广告列表-》添加广告-》添加成功

2.广告管理-》广告列表-》添加栏位-》添加成功

3.模板管理-》设置模板-》添加广告位

4.确认

5.展示效果



一,进入后台 <广告管理->添加广告> 中加入地区,这里我选择只加入省份

前提是必须在ecs_ad这个数据库中建立一个city字段



1,在 <admin/ads.php> 中的 <添加新广告页面> 简单的追加一个地区模板

$sql="select region_id,region_name from".$ecs->table('region')."where region_type=1 order by region_id asc";
$citys=$db->getAll($sql);
foreach($citys as $k=>$v){
$city_list[$v['region_name']]=$v['region_name'];
}
unset($citys);
$smarty->assign('city_list',$city_list);


2,在 <admin/templates/ads_info.htm> 中 添加地区下拉列表

<!--广告投放  添加城市  开始处-->
<tr>
<td  class="label">{$lang.city}</td>
<td>
<select name="city">
<option value="0">{$lang.select_please}</option>
{html_options options=$city_list selected=$ads.city}
</select>
</td>
</tr>
<!--广告投放  添加城市  结束处-->




其中类似 {$lang.select_please} 在 <languages/zh_cn/admin/ads.php> 中设置

//增加广告栏位的地区选项
$_LANG['city'] = '城市';$_LANG['select_please']='请选择';




3,入库 在 <ecs_ad> 表中加入字段 <city>

在 <admin/ads.php> 中的 <插入数据> 最后追加 <红色字体> <$_POST['city']>

$sql = "INSERT INTO ".$ecs->table('ad'). " (position_id,media_type,ad_name,ad_link,ad_code,start_time,end_time,link_man,link_email,link_phone,click_count,enabled,city)
VALUES ('$_POST[position_id]',
'$_POST[media_type]',
'$ad_name',
'$ad_link',
'$ad_code',
'$start_time',
'$end_time',
'$_POST[link_man]',
'$_POST[link_email]',
'$_POST[link_phone]',
'0',
'1','$_POST[city]')";




二、定点投放

1,在 <Includes/lib_insert.php> 中 <调用指定位的广告位的广告> <insert_ads> 的 方法中

添加如下代码

##########  根据IP地址判断所在地   start######################
//$ips=$_SERVER['REMOTE_ADDR'];   //局域网会报错   可写死值进行测试
//$ips="14.31.22.113";    //广东
$ips="59.108.49.35";   //北京
//$ips="116.231.127.124";   //上海
p;   //调用接口  判断所在城市
$url="http://api.k780.com:88/?app=ip.get&ip=".$ips."&appkey=18844&sign=56b966b0c21f66e711783b2e965d6686&format=json";
$html=file_get_contents($url);
$json=json_decode($html,true);
//print_r($json);die;
$ad=$json['result']['att'];
//echo $ad;die;
$address=explode(',',$ad);
//print_r($address);die;
$city=$address[1];
echo $city;
##########  根据IP地址判断所在地   end######################




2,在判断中追加 <红色字体> 条件

if (!empty($arr['num']) && $arr['num'] != 1)
{
$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('ad') . ' AS a '.
'LEFT JOIN ' . $GLOBALS['ecs']->table('ad_position') . ' AS p ON a.position_id = p.position_id ' .
"WHERE enabled = 1 AND start_time <= '" . $time . "' AND end_time >= '" . $time . "' AND city='$city' ".
"AND a.position_id = '" . $arr['id'] . "' " .
'ORDER BY rnd LIMIT ' . $arr['num'];
$res = $GLOBALS['db']->GetAll($sql);
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: