|
|
<div class="col-xs-24" style="padding-left:100px;min-height:1000px;">
|
|
|
<p> <br />
|
|
|
</p>
|
|
|
<h1> <span style="font-family:Microsoft YaHei;">广告管理系统使用说明文档</span> </h1>
|
|
|
<div class="col-xs-24 nopadding">
|
|
|
<p>
|
|
|
<p class="col-xs-24 btn-lg"></p>
|
|
|
<a href="http://www.diychinatours.com/diy-xian/single-city-tour/xa-1.htm" target="_blank">
|
|
|
DEMO:页面右侧栏底部是广告
|
|
|
</a>
|
|
|
<p class="col-xs-24 btn-lg"></p>
|
|
|
</p>
|
|
|
</div>
|
|
|
<h3>一. 广告填写注意事项</h3>
|
|
|
<p>1.择选广告关联的信息页面的时候,如果是手工页面,也就是不在信息平台里面的,请填写该页面的url链接;</p>
|
|
|
<p>2.如果是信息平台里面的信息页面,可以选择填页面的url链接,也可以填它在信息平台里的信息内容ID,就是信息标题旁边那个ID;</p>
|
|
|
<p>3.信息平台里面的信息有url的话,建议优先填url,没有url的信息再填信息ID;</p>
|
|
|
<p> <img src="/css/images/adpng.png"> </p>
|
|
|
<h3>二. 读取广告到网前的规则(可以按照各站的策略自行决定,此处只是举个例子)</h3>
|
|
|
<p>1.查看当前页面是否在广告系统里关联了广告;</p>
|
|
|
<p>2.如果有关联广告,则直接读取该广告到网前;</p>
|
|
|
<p>3.如果没有关联广告,并且当前页面信息存在于信息平台,则查看它的父节点是否关联了广告,优先读取最接近的父级节点的广告;</p>
|
|
|
<h3>二. 读取广告到网前及点击效果跟踪</h3>
|
|
|
<div class="well col-xs-16" style="line-height:12px;">
|
|
|
<style type="text/css">
|
|
|
p{margin-bottom: 5px;}
|
|
|
</style>
|
|
|
<h4> 网前JS调用广告 </h4>
|
|
|
<p> <script type="text/javascript"> </p>
|
|
|
<p> function get_advertise() </p>
|
|
|
<p> { </p>
|
|
|
<p> var url="<?php echo site_url('index.php/diy_tour/ajax/get_advertise'); ?>"; </p>
|
|
|
<p> var pageurl=location.href; </p>
|
|
|
<p> $.post(url,{"pageurl":pageurl},function(json_data) { </p>
|
|
|
<p> if (!json_data) return false; </p>
|
|
|
<p> var json_data = $.parseJSON(json_data); </p>
|
|
|
<p> for (var key in json_data) { </p>
|
|
|
<p> var ad_place=json_data[key].ad_place; </p>
|
|
|
<p> var ad_content='<div class="advertise_elem" data-ad_id="'+json_data[key][ad_place].adp_id+'">'+json_data[key][ad_place].ad_content+'</div>'; </p>
|
|
|
<p> //在对应的地方填充广告 </p>
|
|
|
<p> if (ad_place=='right_nav_bottom'){ </p>
|
|
|
<p> $(".circuit_price").after(ad_content); </p>
|
|
|
<p> }else if (ad_place=='centent_bottom'){ </p>
|
|
|
<p> $("#included").after(ad_content); </p>
|
|
|
<p> } </p>
|
|
|
<p> } </p>
|
|
|
<p> }); </p>
|
|
|
<p> } </p>
|
|
|
<p> //保存广告点击数据 </p>
|
|
|
<p> $("body").on('click','.advertise_elem a',function(event){ </p>
|
|
|
<p> event.preventDefault(); </p>
|
|
|
<p> var link=$(this).attr('href'); </p>
|
|
|
<p> var adp_id=$(this).parents('.advertise_elem').attr('data-ad_id'), </p>
|
|
|
<p> url="<?php echo site_url('index.php/diy_tour/ajax/set_advertise_rate'); ?>"; </p>
|
|
|
<p> $.post(url,{"adp_id":adp_id},function(result) { </p>
|
|
|
<p> location.href=link; </p>
|
|
|
<p> }); </p>
|
|
|
<p> }); </p>
|
|
|
<p> <br/>
|
|
|
</p>
|
|
|
<p> </script> </p>
|
|
|
</div>
|
|
|
<div class="well col-xs-16" style="line-height:12px;">
|
|
|
<h4>响应js请求的控制器代码</h4>
|
|
|
<p> public function get_advertise() </p>
|
|
|
<p> { </p>
|
|
|
<p> $this->load->model('Information_model'); </p>
|
|
|
<p> $pageurl=$this->input->post('pageurl'); </p>
|
|
|
<p> $place=$this->input->post('place')?$this->input->post('place'):false; </p>
|
|
|
<p> //获取当前页面关联的广告 </p>
|
|
|
<p> $pageurl=str_replace('http://'.$this->config->item('Site_Domain'),'',$pageurl); </p>
|
|
|
<p> //$pageurl=str_replace('http://202.103.68.34:9091','',$pageurl); </p>
|
|
|
<p> $advertise=$this->Information_model->get_advertise_by_url($pageurl,$place); </p>
|
|
|
<p> $ad_list=$ad_lists=array(); </p>
|
|
|
<p> foreach ($advertise as $key => $value) { </p>
|
|
|
<p> foreach ($value as $k => $v) { </p>
|
|
|
<p> $ad_list[$key][$k]=$v; </p>
|
|
|
<p> } </p>
|
|
|
<p> $ad_lists[]=array("ad_place"=>$key,$key=>$ad_list[$key]); </p>
|
|
|
<p> } </p>
|
|
|
<p> echo json_encode($ad_lists); </p>
|
|
|
<p> } </p>
|
|
|
<p> <br/>
|
|
|
</p>
|
|
|
<h4>更新广告点击数据</h4>
|
|
|
<p> public function set_advertise_rate() </p>
|
|
|
<p> { </p>
|
|
|
<p> $this->load->model('Information_model'); </p>
|
|
|
<p> $adp_id=$this->input->post('adp_id'); </p>
|
|
|
<p> if ($this->Information_model->set_advertise_rate($adp_id)) { </p>
|
|
|
<p> echo 1; </p>
|
|
|
<p> } </p>
|
|
|
<p> else{ </p>
|
|
|
<p> echo 0; </p>
|
|
|
<p> } </p>
|
|
|
<p> } </p>
|
|
|
</div>
|
|
|
<div class="well col-xs-16" style="line-height:12px;">
|
|
|
<h4> 模型层读取当前页面相关广告的代码 </h4>
|
|
|
<p> <span style="white-space: nowrap;"> /**</span><br/>
|
|
|
</p>
|
|
|
<p> <span style="white-space: nowrap;"> </span><span style="white-space: nowrap;">* $pageurl:需要展示广告的页面url</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> * $place: 广告位</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> * $loadview:0 返回广告列表,1 直接输出广告内容</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> */</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> public function get_advertise_by_url($pageurl,$place=false)</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> {</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> //获取当前页面关联的广告</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $data=array();</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $site_code=$this->config->item('Site_Code');</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $ad_list=$this->get_advertise($site_code,$pageurl,$place);</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> </span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> //尝试根据当前页面的信息ID来提取广告</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> if (empty($ad_list)){</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $info_detail=$this->get_detail($pageurl);</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> if (empty($info_detail)) return array();</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $ad_list=$this->get_advertise($site_code,$pageurl,$place,$info_detail->ic_id);</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> }</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> //当前页面没有关联广告的话,取父级节点的广告代替</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> if (empty($ad_list)) </span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> {</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> //获取父级信息节点关联的适用于当前页面的广告</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $parent_ads=$this->get_parent_ads($info_detail->is_path,$site_code,time(),$place);</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> if (empty($parent_ads)) {</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> //url匹配不到数据的话,尝试用父节点的ic_id来匹配</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $parent_ads=$this->get_parent_ads($info_detail->is_path,$site_code,time(),$place,true);</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> }</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> if (empty($parent_ads)) return array();</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $temp=array();</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> foreach ($parent_ads as $p) {</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $temp[$p->is_id][]=$p;</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> }</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> //优先获取直接父节点关联的广告,以此类推</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $is_id_array=explode(',', $info_detail->is_path);</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> krsort($is_id_array);</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> foreach ($is_id_array as $isid) </span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> {</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> if ($isid!='' && isset($temp[$isid])) </span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> {</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $ad_list=$temp[$isid];</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> break;</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> }</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> }</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> }</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> //返回当前页面所有广告位的广告,按广告索引</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $advertise=array();</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> if (!empty($ad_list)){</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> foreach ($ad_list as $ad) {</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $advertise[$ad->ad_place]=$ad;</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> }</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> }</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> return $advertise;</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> }</span> </p>
|
|
|
<p> <br/>
|
|
|
</p>
|
|
|
<p> <span style="white-space: nowrap;">//获取指定页面指定位置的广告</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> public function get_advertise($site_code,$adp_ic_url,$ad_place=false,$ic_id=false)</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> {</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $adp_ic_url=$ic_id?$ic_id:$adp_ic_url;</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $mapsql=$ad_place==false?'':" AND ad_place='$ad_place' ";</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $sql = "SELECT adp_id,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> adp_ic_url,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> adp_forself,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_id,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_is_id,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_title,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_content,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_expire,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_place,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_sitecode,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_status,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_createtime</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> FROM infoAdvertise LEFT JOIN infoAdvertisePage ON ad_id=adp_ad_id</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> WHERE ad_status=1 AND adp_ic_url='$adp_ic_url' AND ad_sitecode=? AND ad_expire>? $mapsql";</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $query = $this->HT->query($sql,array($site_code,time()));</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $result = $query->result();</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> return $result;</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> }</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"><br/>
|
|
|
</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> //获取父级信息节点关联的可以用于子节点的广告</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> public function get_parent_ads($path,$site_code,$ad_expire,$ad_place=false,$icid_flag=false)</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> {</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $compare_string=$icid_flag?'ic_id':'ic_url';</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $path=$path."0";</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $mapsql=$ad_place==false?'':" AND ad_place='$ad_place' ";</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $sql=" SELECT ad_id,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_is_id,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_title,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_content,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_expire,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_place,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_sitecode,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_status,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> ad_createtime,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> is_id,</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> adp_id</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> FROM infoAdvertise </span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> LEFT JOIN infoAdvertisePage ON ad_id=adp_ad_id</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> LEFT JOIN infoContents ON adp_ic_url=convert(nvarchar, $compare_string)</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> LEFT JOIN infoStructures ON ic_id=is_ic_id AND is_id in ($path)</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> WHERE ad_sitecode=? and is_sitecode=? and ad_status=1 AND adp_forself=1 AND ad_expire>? $mapsql";</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $query = $this->HT->query($sql,array($site_code,$site_code,$ad_expire));</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> $result = $query->result();</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> return $result;</span> </p>
|
|
|
<p> <span style="white-space: nowrap;"> }</span> </p>
|
|
|
<h4> 更新广告点击数 </h4>
|
|
|
<p> public function set_advertise_rate($adp_id) </p>
|
|
|
<p> { </p>
|
|
|
<p> if (empty($adp_id)) { </p>
|
|
|
<p> return false; </p>
|
|
|
<p> } </p>
|
|
|
<p> $sql = "UPDATE infoAdvertisePage </p>
|
|
|
<p> SET adp_click=adp_click+1 </p>
|
|
|
<p> WHERE adp_id=?"; </p>
|
|
|
<p> $result = $this->HT->query($sql, array($adp_id)); </p>
|
|
|
<p> return $result; </p>
|
|
|
<p> } </p>
|
|
|
<p> <br/>
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|