【原创】帝国新闻模版添加下载次数统计
思良:在帝国论坛里看到一个功能,就是统计附件的下载次数,感觉很好,网上收索了半天,没找到怎么解决这个问题的方法,研究半天还是自己解决!
帝国有个下载模型,查看模型变量说明,有个下载次数的js代码:<script src=[!--news.url--]e/public/ViewClick/?classid=[!--classid--]&id=[!--id--]&down=1></script>,但是下载内容模版里没有这个代码,以为没有这个功能,后来我加进去,点击下载按钮就能显示点击数,相当于统计下载数,怎么移植到新闻模型去了?我没用下载模型,基本上都是在新闻模型里,并且添加一个下载地址的自定义字段,专门录入下载地址,也想要帝国论坛那种下载统计功能,于是我去找教程,没找到,只能自己解决,具体方法:
一,先在新闻模型里添加downpath字段,最好和下载模型的字段一样,因为怎么判断点击数的函数,不知道在系统文件哪里,所以不改为妙,字段类型和其他选项都默认即可,但是在输入表单替换html代码里填入和下载模型的一样,不过有些多余的选项可以删除掉,我精简了下,具体代码查看代码1:
二,接着去管理系统模型里,修改新闻系统模型,添加刚刚那个字段,这样发文时就可以这样显示了
三,去内容模版里添加相关代码:
<?php
if($navinfor[downpath]){?>[!--downpath--]下载次数:<script src=[!--news.url--]e/public/ViewClick/?classid=[!--classid--]&id=[!--id--]&down=1></script><?}else{?><?}?>
加了个判断,有下载地址就显示,最终显示效果:
<script> function doadd() {var i; var str=""; var oldi=0; var j=0; oldi=parseInt(document.add.editnum.value); for(i=1;i<=document.add.downnum.value;i++) { j=i+oldi; str=str+"<tr><td width=7%> <div align=center>"+j+"</div></td><td width=19%><div align=left><input name=downname[] type=text id=downname[] value=下载地址"+j+" size=17></div></td><td width=40%><input name=downpath[] type=text size=36 id=downpath"+j+" ondblclick=SpOpenChFile(0,'downpath"+j+"')><select name=thedownqz[]><option value=''>--地址前缀--</option><?=$newdownqz?></select></td><td width=21%><div align=center><select name=downuser[] id=select><option value=0>游客</option><?=$ygroup?></select></div></td><td width=13%><div align=center><input name=fen[] type=text id=fen[] value=0 size=6></div></td></tr>"; } document.getElementById("adddown").innerHTML="<table width='100%' border=0 cellspacing=1 cellpadding=3>"+str+"</table>"; } </script> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr><td> <?php if($ecmsfirstpost==1) { ?> <table width='100%' border=0 cellspacing=1 cellpadding=3> <?php $editnum=1; //思良:editnum=1表示只要一个下载地址即可,默认是3的,去下载发文就可以看到 for($pathi=1;$pathi<=$editnum;$pathi++) { ?> <tr><td width='19%'> <div align=left><input name=downname[] type=text value='本地下载' size=5>也可双击上传</div></td> <td width='40%'><input name=downpath[] type=text size=12 id='downpath<?=$pathi?>' ondblclick="SpOpenChFile(0,'downpath<?=$pathi?>');"></td> </tr> <?php } ?> </table> <?php }else{ $editnum=0; $downloadpath=""; if($r[downpath]) { $r[downpath]=stripSlashes($r[downpath]);//下载地址 $j=0; $d_record=explode("\r\n",$r[downpath]); for($i=0;$i<count($d_record);$i++) { $j=$i+1; $d_field=explode("::::::",$d_record[$i]); //权限 $tgroup=str_replace(" value=".$d_field[2].">"," value=".$d_field[2]." selected>",$ygroup);//地址前缀 $tnewdownqz=str_replace(" value='".$d_field[4]."'>"," value='".$d_field[4]."' selected>",$newdownqz); $downloadpath.="<tr><td width='7%'><div align=center>".$j."</div></td><td width='19%'><div align=left><input name=downname[] type=text id=downname[] value='".$d_field[0]."' size=17></div></td><td width='40%'><input name=downpath[] type=text id=downpath".$j." value='".$d_field[1]."' size=36 ondblclick=\"SpOpenChFile(0,'downpath".$j."');\"><select name=thedownqz[]><option value=''>--地址前缀--</option>".$tnewdownqz."</select><input type=hidden name=pathid[] value=".$j."><input type=checkbox name=delpathid[] value=".$j.">删</td><td width='21%'><div align=center><select name=downuser[] id=select><option value=0>游客</option>".$tgroup."</select></div></td><td width='13%'><div align=center><input name=fen[] type=text id=fen[] value='".$d_field[3]."' size=6></div></td></tr>"; } $editnum=$j; $downloadpath="<table width='100%' border=0 cellspacing=1 cellpadding=3>".$downloadpath."</table>"; } echo $downloadpath; } ?> </td></tr></table>