現在很多站長都通過往自己的網站中投放廣告來維持網站的生存,傳統的投放廣告的方法是廣告內容和文章的正文內容分離,通過樣式表控制廣告的漂移位置。那麼有沒有辦法讓廣告內容混入正文內容,讓他們看起來更像一個完整的內容呢,下文是如何在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,調用上面的函數
原始讀入文章內容的代碼爲:
修改爲:
其中<script src=...></script>的部分就是你的廣告,請注意,這段代碼中請不要使用任何引號,包括單引號和雙引號,並且建議使用絕對地址。
第三步,控制廣告的樣式
第一部的代碼中,通過定義塊級元素<div class='ad'></div>來控制廣告的樣式和位置,請在文章模板中自行修改類選擇器ad的樣式,達到控制廣告位置的目的,下面的代碼爲建議:
<!--
.ad { float:left; padding:20px; padding-left:0;}
-->
</style>
轉載請註明出處: by 肥龍龍(expendable)
祝您好運