dedecms中实现文章正文内容添加广告

来源:互联网 发布:淘宝主图的要求 编辑:程序博客网 时间:2024/05/01 10:02

现在很多站长都通过往自己的网站中投放广告来维持网站的生存,传统的投放广告的方法是广告内容和文章的正文内容分离,通过样式表控制广告的漂移位置。那么有没有办法让广告内容混入正文内容,让他们看起来更像一个完整的内容呢,下文是如何在dedecms4中实现这个功能。

 

转载请注明出处: by 肥龙龙(expendable) 

第一步:修改include/inc_downclass.php文件

增加函数function ADString($body,$adstr),其中$body为文章正文内容,$adstr为广告代码。函数代码如下:

//广告函数
function ADString($body,$adstr)
{
  
//最大间隔距离(如果在检测不到p标记的情况下,加入广告字串的最大间隔距离)
  $maxpos = 1024;
  
$mdd = mt_rand(1,4);
  
//以后内容如果你不懂其含义,请不要改动
  //---------------------------------------------------

  $rndstyleValue = $rndstyle[$mdd]['value'];
  
$rndstyleName = $rndstyle[$mdd]['name'];
  
$reString = "<style> $rndstyleValue </style> ";

  
//读取字符串数据
  $totalitem = 1;
  
$rndstring[1= $adstr;
  
$start = 0;
  
$totalitem = 0;
  
$rnstr = "";

  
//处理增加广告字段
  $bodylen = strlen($body- 1;
  
$prepos = 0;
  
for($i=0;$i<=$bodylen;$i++){
      
if($i+2 >= $bodylen || $i<50$reString .= $body[$i];
      
else{
        @
$ntag = strtolower($body[$i].$body[$i+1].$body[$i+2]);
        
if(($ntag=='</p' || ($ntag=='<br' && $i-$prepos>$maxpos)) && $rnstr=="" ){
             
$dd = mt_rand(1,$totalitem);
             
$rnstr = $rndstring[$dd];
             
$rnstr = " <div class='ad'>$rnstr</div> ";
             
$reString .= $rnstr.$body[$i];
             
$prepos = $i;
        }
        
else $reString .= $body[$i];
    }
  }
  
unset($body);
  
return $reString;
}

代码没有经过优化,但是可以实现功能,图省事的自己拷贝。

第二步,修改文章模板article_article.htm,调用上面的函数

 原始读入文章内容的代码为:

{dede:field name='body' /}

修改为:

{dede:field name='body' function='ADString(@me,"<script type=text/javascript src=http://pagead2.googlesyndication.com/pagead/show_ads.js></script>")'/}

其中<script src=...></script>的部分就是你的广告,请注意,这段代码中请不要使用任何引号,包括单引号和双引号,并且建议使用绝对地址。

第三步,控制广告的样式

第一部的代码中,通过定义块级元素<div class='ad'></div>来控制广告的样式和位置,请在文章模板中自行修改类选择器ad的样式,达到控制广告位置的目的,下面的代码为建议:

<style type="text/css">
<!--
.ad 
{ float:left; padding:20px; padding-left:0;}
-->
</style>

转载请注明出处: by 肥龙龙(expendable) 

祝您好运

原创粉丝点击