DEDECMS文章模型整合下载功能,可判断点数,会员组等下载权限

本教程实现DEDECMS功能:文章模型整合下载功能,可判断点数,会员组等下载权限,前台可判断是否有附件下载,有则显示,没有则不显示。适用类型:有些文章有下载地址,有些文章没有下载地址的网站。想附件收费的网站等等……具体就不啰嗦了。用得上您就拿走。

DEDECMS文章模型整合下载功能,可判断点数,会员组等下载权限

后台效果图

本教程为站长似水星辰原创,转载注明出处。

注:本教程中的金币和会员组设置只针对下载连接有效。不对文章内容生效,和文章本身的阅读权限和消费金币并不冲突,是分开设置的。文章中所有sql语句中涉及表名的,请把表前缀换成您自己的表前缀。如:js_addonarticle换成您的表前缀_addonarticle。

一、首先规划要加入的字段

下载链接:softlinks

消费金币:needmoney

会员组权限:daccess

这些字段要加入到文章附加表中,前缀_addonarticle,也可以根据自己情况加入需要的表中,自己修改就行了。

进入后台系统-SQL命令行工具,执行:

也可以在phpmyadmin中自行添加。

然后在后台打开核心-频道模型-内容模型管理-普通文章-修改-字段管理,在模型字段配置(文本模式)里添加

  1. <field:softlinksitemname="软件地址"type="softlinks"isnull="true"default=""rename=""/>
  2. <field:daccessislist="1"itemname="下载级别"type="int"isnull="true"default="0"rename=""function=""notsend="1"/>
  3. <field:needmoneyislist="1"itemname="需要金币"type="int"isnull="true"default="0"rename=""function=""notsend="1"/>

如果不添加则会出现无链接信息错误!请务必添加。

二、数据库字段添加完毕就要修改文章模型的4个文件了。分别是dede管理目录下的article_add.php,article_edit.php和管理模板article_add.htm,article_edit.htm,打开这4个文件依次修改。

1、修改article_add.htm,在头部的<script></script>中加入以下,在</script>之前加入就行

这个是可以增加下载地址个数的JS代码

2、找到

  1. <tr>
  2. <tdcolspan="2"><?phpPrintAutoFieldsAdd($cInfos['fieldset'],'autofield');?></td>
  3. </tr>

再其后边加入

到这里article_add.htm文件就修改完了。

3、打开article_edit.htm文件,在头部的<script></script>中加入以下代码,在</script>之前加入就行

4、找到

  1. <tr>
  2. <tdcolspan="2"><?php
  3. PrintAutoFieldsEdit($cInfos['fieldset'],$addRow,'autofield');
  4. ?></td>
  5. </tr>

在其下边加入以下代码:

article_edit.html修改完毕,接下来开始修改article_add.php,要认真看哦!

5、打开article_add.php,找到

这段大概在203行左右,主要作用是处理下载地址。然后再找到

  1. $query="INSERTINTO{$addtable}(aid,typeid,redirecturl,templet,userip,body{$inadd_f})Values('$arcID','$typeid','$redirecturl','$templet','$useip','$body'{$inadd_v})";

替换为

  1. $query="INSERTINTO{$addtable}(aid,typeid,redirecturl,templet,userip,body,softlinks,needmoney,daccess{$inadd_f})Values('$arcID','$typeid','$redirecturl','$templet','$useip','$body','$urls','$needmoney','$daccess'{$inadd_v})";

article_add.php修改完毕,添加一下文章,把下载地址,金币,会员组都写进去,看看数据库是不是有这条记录了^ ^。

6、打开article_edit.php,找到

  1. $channelid=$arcRow['channel'];

在其上边加入

找到

  1. $cts=$dsql->GetOne("SELECTaddtableFROMjs_channeltypeWHEREid='$channelid'");

在其上边加入以下代码:

  1. //软件链接列表
  2. $urls='';
  3. for($i=1;$i<=30;$i++)
  4. {
  5. if(!empty(${'softurl'.$i}))
  6. {
  7. $islocal=empty(${'islocal'.$i})?'':1;
  8. $isneed=empty(${'del'.$i})?true:false;
  9. $servermsg=str_replace("'",'',stripslashes(${'servermsg'.$i}));
  10. $softurl=stripslashes(${'softurl'.$i});
  11. if($servermsg=='')
  12. {
  13. $servermsg='下载地址'.$i;
  14. }
  15. if($softurl!='http://')
  16. {
  17. if($islocal==1)$urls.="{dede:linkislocal='$islocal'text='{$servermsg}'}$softurl{/dede:link}\r\n";
  18. elseif($isneed)$urls.="{dede:linktext='$servermsg'}$softurl{/dede:link}\r\n";
  19. elsecontinue;
  20. }
  21. }
  22. }
  23. $urls=addslashes($urls);

找到

  1. $iquery="UPDATE$addtableSETtypeid='$typeid',body='$body'{$inadd_f},redirecturl='$redirecturl',templet='$templet',userip='$useip'WHEREaid='$id'";

替换为:

  1. $iquery="UPDATE$addtableSETtypeid='$typeid',body='$body'{$inadd_f},redirecturl='$redirecturl',templet='$templet',userip='$useip',softlinks='$urls',needmoney='$needmoney',daccess='$daccess'WHEREaid='$id'";

至此本教程后台修改部分已经完毕,你学会了吗?接下来开始前台部分。

三、前台调用,和软件的前台调用方式一样,看以下代码

  1. {dede:fieldname='softlinks'/}

这个就是调用下载地址,打开的页面为软件模型的下载页,在哪里可以判断到下载的权限。这里就不多讲了,改完后就可以看到了。

有一种情况,就是有些网友希望没有下载地址的话就不显示,这里可以提供一种方法。把如下代码复制到文章模板里即可。

  1. {dede:php}
  2. $thisid=$refObj->Fields['aid'];
  3. $totrow=$dsql->GetOne('select*fromjs_addonarticlewhereaid='.$thisid);
  4. if($totrow['softlinks']!='')
  5. {
  6. echo"<ahref=\"/plus/download.php?open=0&aid=".$thisid."&cid=1\"style=\"color:white\"target=\"_blank\">下载地址</a>";
  7. }
  8. {/dede:php}

前台效果图

到这里,本教程全文完毕。

版权免责声明

① 本站VIP源码资源永久免费下载 www.wayu.cn
② 本网站资源来源于网络收集,如有侵权,请联系站长进行删除处理。
③ 分享目的仅供大家学习和交流,请不要用于商业用途,否则后果自负。
④ 如果你有源码需要出售,可以联系小编,或者点击 投稿
⑤ 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解。
⑥ 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
⑦ 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。
⑧ 网站资源不做任何二次加密和授权后门(原版加密除外)

评论0

请先

没有账号? 忘记密码?