dedecms中实现文章正文内容添加广告
2007-06-13 09:19
288 查看
现在很多站长都通过往自己的网站中投放广告来维持网站的生存,传统的投放广告的方法是广告内容和文章的正文内容分离,通过样式表控制广告的漂移位置。那么有没有办法让广告内容混入正文内容,让他们看起来更像一个完整的内容呢,下文是如何在dedecms4中实现这个功能。
转载请注明出处: by 肥龙龙(expendable)
第一步:修改include/inc_downclass.php文件
增加函数function ADString($body,$adstr),其中$body为文章正文内容,$adstr为广告代码。函数代码如下:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//广告函数
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
function ADString($body,$adstr)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//最大间隔距离(如果在检测不到p标记的情况下,加入广告字串的最大间隔距离)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$maxpos = 1024;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$mdd = mt_rand(1,4);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//以后内容如果你不懂其含义,请不要改动
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//---------------------------------------------------
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rndstyleValue = $rndstyle[$mdd]['value'];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rndstyleName = $rndstyle[$mdd]['name'];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$reString = "<style> $rndstyleValue </style> ";
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//读取字符串数据
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$totalitem = 1;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rndstring[1] = $adstr;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$start = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$totalitem = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rnstr = "";
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//处理增加广告字段
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$bodylen = strlen($body) - 1;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$prepos = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
for($i=0;$i<=$bodylen;$i++){
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
if($i+2 >= $bodylen || $i<50) $reString .= $body[$i];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
else{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
@$ntag = strtolower($body[$i].$body[$i+1].$body[$i+2]);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
if(($ntag=='</p' || ($ntag=='<br' && $i-$prepos>$maxpos)) && $rnstr=="" ){
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$dd = mt_rand(1,$totalitem);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rnstr = $rndstring[$dd];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rnstr = " <div class='ad'>$rnstr</div> ";
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$reString .= $rnstr.$body[$i];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$prepos = $i;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
else $reString .= $body[$i];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
unset($body);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
return $reString;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
}
代码没有经过优化,但是可以实现功能,图省事的自己拷贝。
第二步,修改文章模板article_article.htm,调用上面的函数
原始读入文章内容的代码为:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
{dede:field name='body' /}
修改为:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
{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的样式,达到控制广告位置的目的,下面的代码为建议:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
<style type="text/css">
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
<!--
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
.ad {...}{ float:left; padding:20px; padding-left:0;}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
-->
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
</style>
转载请注明出处: by 肥龙龙(expendable)
祝您好运
转载请注明出处: by 肥龙龙(expendable)
第一步:修改include/inc_downclass.php文件
增加函数function ADString($body,$adstr),其中$body为文章正文内容,$adstr为广告代码。函数代码如下:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//广告函数
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
function ADString($body,$adstr)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//最大间隔距离(如果在检测不到p标记的情况下,加入广告字串的最大间隔距离)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$maxpos = 1024;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$mdd = mt_rand(1,4);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//以后内容如果你不懂其含义,请不要改动
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//---------------------------------------------------
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rndstyleValue = $rndstyle[$mdd]['value'];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rndstyleName = $rndstyle[$mdd]['name'];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$reString = "<style> $rndstyleValue </style> ";
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//读取字符串数据
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$totalitem = 1;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rndstring[1] = $adstr;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$start = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$totalitem = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rnstr = "";
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
//处理增加广告字段
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$bodylen = strlen($body) - 1;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$prepos = 0;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
for($i=0;$i<=$bodylen;$i++){
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
if($i+2 >= $bodylen || $i<50) $reString .= $body[$i];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
else{
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
@$ntag = strtolower($body[$i].$body[$i+1].$body[$i+2]);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
if(($ntag=='</p' || ($ntag=='<br' && $i-$prepos>$maxpos)) && $rnstr=="" ){
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$dd = mt_rand(1,$totalitem);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rnstr = $rndstring[$dd];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$rnstr = " <div class='ad'>$rnstr</div> ";
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$reString .= $rnstr.$body[$i];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
$prepos = $i;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
else $reString .= $body[$i];
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
unset($body);
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
return $reString;
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
}
代码没有经过优化,但是可以实现功能,图省事的自己拷贝。
第二步,修改文章模板article_article.htm,调用上面的函数
原始读入文章内容的代码为:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
{dede:field name='body' /}
修改为:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
{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的样式,达到控制广告位置的目的,下面的代码为建议:
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
<style type="text/css">
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
<!--
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
.ad {...}{ float:left; padding:20px; padding-left:0;}
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
-->
![](http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif)
</style>
转载请注明出处: by 肥龙龙(expendable)
祝您好运
相关文章推荐
- dedecms实现复制文章自动添加版权出处信息的方法
- dedecms后台管理搜索到文章正文内容的方法
- dedecms 文章内容页面实现键盘<----和--->翻页效果
- 实现DEDECMS在内容页显示全站“相关文章”
- dedecms列表页调用文章正文内容的方法
- dedecms文章内容页去掉广告
- 织梦DedeCms实现调用单页文章内容的方法
- dedecms文章内容自动添加关键字链接的方法
- dedecms列表页调用文章正文内容的方法
- DEDECMS调用特定ID文章内容的实现方法
- DEDECMS调用特定ID文章内容的实现方法
- 配合dedecms内容模型实现后台输入栏目id前端输出文章列表
- DedeCMS内容页添加"相关文章"功能
- dedecms 让文章内容页面实现显示相关文章
- dedecms发布文章时添加的tag标签消失了,无法添加!
- dedecms如何在列表页调出文章内容【body字段】
- C# WINFORM中的combobox.items.add实现像web开发那样,添加显示内容text和实际value值
- dedecms文章无图片 自动替换为谷歌广告
- 织梦dedecms 用交叉栏目时arclist标签调用不出内容文章的问题(纯转载)
- Angular实现的日程表功能【可添加及隐藏显示内容】