一,进入后台 <广告管理->添加广告> 中加入地区,这里我选择只加入省份
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'] = '城市';
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',<span style="color:#FF0000;">'$_POST[city]'</span>)";
二、定点投放
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"; //上海 //调用接口 判断所在城市 $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 ($static_res[$arr['id']] === NULL) { $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 a.position_id = '" . $arr['id'] . "' AND start_time <= '" . $time . "'<span style="color:#FF0000;">AND city='$city'</span> AND end_time >= '" . $time . "' " . 'ORDER BY rnd LIMIT 1'; $static_res[$arr['id']] = $GLOBALS['db']->GetAll($sql); }
时间: 2024-10-19 05:14:32