dedecms中實現文章正文內容添加廣告

現在很多站長都通過往自己的網站中投放廣告來維持網站的生存,傳統的投放廣告的方法是廣告內容和文章的正文內容分離,通過樣式表控制廣告的漂移位置。那麼有沒有辦法讓廣告內容混入正文內容,讓他們看起來更像一個完整的內容呢,下文是如何在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) 

祝您好運

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章