DEDE广告生成静态JS文件的插件
目前只能生成JS,可以加快页面显示,减轻数据库压力,暂时没有时间开发随机轮显功能。
安装方法:
1,建立一个文件,命名为ad_makejs.php,修改JS存放路径:
< ?php
require_once(dirname(__FILE__)."/config.php");
require_once(dirname(__FILE__)."/../include/pub_datalist.php");
require_once(dirname(__FILE__)."/../include/inc_functions.php");
setcookie("ENV_GOBACK_URL",$dedeNowurl,time()+3600,"/");
function TestType($tname)
{
if($tname=="") return "所有栏目";
else return $tname;
}
function TimeSetValue($ts)
{
if($ts==0) return "不限时间";
else return "限时标记";
}
$sql = "Select
#@__myad.aid,#@__myad.normbody,#@__myad.tagname,#@__arctype.typename,#@__myad.adname,#@__myad.timeset,#@__myad.endtime
From #@__myad
left join #@__arctype on #@__arctype.ID=#@__myad.typeid
order by #@__myad.aid desc
";
$dsql = new DedeSql(false);
$dsql->SetQuery($sql);
$dsql->Execute('aid');
while($row = $dsql->getarray('aid'))
{
$filename = "../js/".$row['aid'].".js";//此处为Js存放路径和格式
fopen($filename, w);
$adbody = $row['normbody'];
$adbody = str_replace('"','\"',$adbody);
$adbody = str_replace("\r","\\r",$adbody);
$adbody = str_replace("\n","\\n",$adbody);
$adbody = "document.write(\"{$adbody}\");";
$adbody = "";
// 首先我们要确定文件存在并且可写。
if (is_writable($filename))
{
if (!$handle = fopen($filename, 'a')) {
print "
不能打开文件 $filename
";
exit;
}
// 将$adbody写入到我们打开的文件中。
if (!fwrite($handle, $adbody)) {
print "
不能写入到文件 $filename
";
exit;
}
print "
成功生成 $filename
";
fclose($handle);
} else {
print "
文件 $filename 不可写
";
}
}
echo "返回";
?>
二,可以进入插件安装那里添加这个文件的地址,访问即可生成JS文件。但是为了便于调用静态代码,我还修改了一些模板。如下:
修改ad_edit.php
$jscode = "";
添加静态JS调用代码:
$jscode = "\r\n";
当然,也可以在广告主页面模板中加一条生成静态文件的链接,打开ad_main.php
添加一条管理链接: