现在很多站长都通过往自己的网站中投放广告来维持网站的生存,传统的投放广告的方法是广告内容和文章的正文内容分离,通过样式表控制广告的漂移位置。那么有没有办法让广告内容混入正文内容,让他们看起来更像一个完整的内容呢,下文是如何在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)
祝您好运
本文介绍如何在DEDECMS4中将广告内容与正文内容混合显示,通过修改PHP文件和模板实现广告的随机插入,并控制广告样式。
1159

被折叠的 条评论
为什么被折叠?



