本教程实现DEDECMS功能:图片模型整合下载功能,可判断点数,会员组等下载权限,前台可判断是否有附件下载,有则显示,没有则不显示。适用类型:有些文章没有下载地址的网站。想附件收费的网站等等……具体就不啰嗦了。用得上您就拿走。
后台效果图
注:本教程中的金币和会员组设置只针对下载连接有效。不对文章内容生效,和文章本身的阅读权限和消费金币并不冲突,是分开设置的。文章中所有sql语句中涉及表名的,请把表前缀换成您自己的表前缀。如:dede_addonimages 换成 您的表前缀_addonimages。 (以下全部代码遇到红色地方请把名字改成您的表前缀!)
一、首先规划要加入的字段
下载链接:softlinks
消费金币:needmoney
会员组权限:daccess
这些字段要加入到文章附加表中,前缀_addonimages,也可以根据自己情况加入需要的表中,自己修改就行了。
进入后台系统-SQL命令行工具,执行:
- ALTER TABLE `dede_addonimages` ADD `softlinks` TEXT NOT NULL ,
- ADD `needmoney` SMALLINT( 5 ) NOT NULL ,
- ADD `daccess` SMALLINT( 5 ) NOT NULL
也可以在phpmyadmin中自行添加。
然后在后台打开核心-频道模型-内容模型管理-普通文章-修改-字段管理,在模型字段配置(文本模式) 里添加
- <field:softlinks itemname="软件地址" type="softlinks" isnull="true" default="" rename="" />
- <field:daccess islist="1" itemname="下载级别" type="int" isnull="true" default="0" rename="" function="" notsend="1"/>
- <field:needmoney islist="1" itemname="需要金币" type="int" isnull="true" default="0" rename="" function="" notsend="1" />
如果不添加则会出现无链接信息错误!请务必添加。
二、数据库字段添加完毕就要修改文章模型的4个文件了。分别是dede管理目录下的album_add.php,album_edit.php和管理模板album_add.htm,album_edit.htm,打开这4个文件依次修改。
1、修改album_add.htm,在头部的<script></script>中加入以下,在</script>之前加入就行
- var startNum = 0;
- function MakeUpload()
- {
- var upfield = document.getElementById("uploadfield");
- var endNum = parseInt(document.form1.picnum.value) + startNum-1;
- if(endNum > 30) endNum = 30;
- for(startNum; startNum<=endNum; startNum++){
- upfield.innerHTML += "<div style='line-height:36px'>软件地址"+startNum+":<input type='text' name='softurl"+startNum+"' style='width:280px' value='http://' /> 服务器名称:<input type='text' name='servermsg"+startNum+"' style='width:150px' /></div>\r\n";
- }
- }
- function ShowHideAddr()
- {
- document.getElementById('morelink').style.display = (document.getElementById('morelink').style.display=='block' ? 'none' : 'block');
- document.getElementById('morelink').style.height = '100%';
- document.getElementById('btsh3').value = (document.getElementById('morelink').style.display=='block' ? '隐藏地址' : '显示地址');
- }
这个是可以增加下载地址个数的JS代码。
2、找到
- <tr>
- <td><?php PrintAutoFieldsAdd($cInfos['fieldset'],'autofield'); ?></td>
- </tr>
再其后边加入
- <tr>
- <td height="24" bgcolor="#F9FCEF"" class="bline2"><strong> 下载限制:</strong></td>
- </tr>
- <tr>
- <td height="24" class="bline">
- <table width="800" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td width="90" height="30"> 需会员权限:</td>
- <td width="179" align="left">
- <select name="daccess" id="daccess" style="width:90px">
- <?php
- $dsql->SetQuery("Select * from `dede_arcrank` where rank>=0 ");
- $dsql->Execute();
- while($row = $dsql->GetArray())
- {
- if($row['rank']==0) $row['membername'] = "不限会员";
- if($row['rank'] == $softconfig['dfrank']) echo " <option value='{$row['rank']}' selected>{$row['membername']}</option>\r\n";
- else echo " <option value='{$row['rank']}'>{$row['membername']}</option>\r\n";
- }
- ?>
- </select> </td>
- <td width="120" align="center">需消费金币:</td>
- <td width="411">
- <input name="needmoney" type="text" id="needmoney" value="<?php echo $softconfig['dfywboy']; ?>" size="8" />个 </td>
- </tr>
- <tr>
- <td height="26" colspan="4" style="border-top:1px dashed #8EAF61"> <span class="STYLE1">(如果设定了下载限制,[<a href="soft_config.php" target="_blank"><u>软件频道设置</u></a>]中“附件下载方式:”必须选择“链接到跳转页面”) </span></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td height="24" bgcolor="#F9FCEF" class="bline2"><strong> 本地软件选择:</strong></td>
- </tr>
- <tr>
- <td height="24" class="bline">
- <table width="800" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td width="90" height="30"> 本地地址:</td>
- <td>
- <input name="softurl1" type="text" id="softurl1" size="35" />
- <input name="sel1" type="button" id="sel1" value="选取" onClick="SelectSoft('form1.softurl1')" />
- 服务器名称:
- <input name="servermsg1" type="text" id="servermsg1" value="本地下载" style="width:150px" />
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <?php
- if($softconfig['moresitedo'] == 0 && trim($softconfig['sites']) != '')
- {
- ?>
- <tr>
- <td height="24" bgcolor="#F9FCEF" class="bline2"><b> 预设的镜像服务器:</b></td>
- </tr>
- <tr class="bline">
- <td style="padding-left:10px;">
- (服务器地址 + 软件地址 = 软件真实地址 [<a href="soft_config.php" target="_blank"><u>软件频道设置</u></a>])<br />
- <?php
- $sites = explode("\n", $softconfig['sites']);
- $startNum = 2;
- foreach($sites as $site)
- {
- $site = trim($site);
- if(empty($site)) continue;
- list($siteurl, $sitename) = explode('|', $site);
- $siteurl = trim($siteurl);
- $sitename = trim($sitename);
- ?>
- <?php echo $sitename; ?>:
- <input type='hidden' name='forconfig<?php echo $startNum; ?>' value='1' />
- <input type='text' name='softurlfirst<?php echo $startNum; ?>' style='width:200px' value='<?php echo $siteurl; ?>' /> +
- <input type='text' name='softurl<?php echo $startNum; ?>' style='width:120px' value='' />
- <input type='text' name='servermsg<?php echo $startNum; ?>' style='width:150px' value='<?php echo $sitename; ?>' />
- <input type='checkbox' name='need<?php echo $startNum; ?>' class='np' value='1' checked />启用
- <br />
- <?php
- $startNum++;
- }//foreach
- echo "<script language='javascript'>startNum = $startNum;</script>\r\n";
- ?>
- </td>
- </tr>
- <?php
- }//需要预设镜像
- ?>
- <tr>
- <td height="24" bgcolor="#F9FCEF" class="bline2"><b> 手动指定地址:</b></td>
- </tr>
- <tr>
- <td height="24" class="bline" style="padding-left:8px">
- <table width="800" border="0" cellspacing="0" cellpadding="0" style="margin-bottom:5px;" class="bline">
- <tr>
- <td width="90">其它地址:</td>
- <td>
- <input name="picnum" type="text" id="picnum" size="8" value="5" />
- <input name='kkkup' type='button' id='kkkup2' value='增加地址' onClick="MakeUpload();" />
-
- <input type="button" name="Submit3" id="btsh3" value="隐藏地址" onClick="ShowHideAddr();" />
- (最多为30个链接)
- </td>
- </tr>
- </table>
- <div id="morelink" style="display:block">
- <div id='uploadfield' style="width:790px"></div>
- </div>
- </td>
- </tr>
到这里album_add.htm文件就修改完了。
3、打开album_edit.htm文件,在头部的<script></script>中加入以下代码,在</script>之前加入就行
- var startNum = <?php echo $newRowStart?>;
- function MakeUpload()
- {
- var upfield = document.getElementById('uploadfield');
- var endNum = parseInt(document.form1.picnum.value) + startNum;
- if(endNum > 30) endNum = 30;
- for(startNum; startNum < endNum; startNum++)
- {
- upfield.innerHTML += "<div style='line-height:36px'>软件地址"+startNum+":<input type='text' name='softurl"+startNum+"' style='width:280px' value='http://' /> 服务器名称:<input type='text' name='servermsg"+startNum+"' style='width:150px' /></div>\r\n";
- }
- }
- function ShowHideAddr()
- {
- document.getElementById('morelink').style.display = (document.getElementById('morelink').style.display=='block' ? 'none' : 'block');
- document.getElementById('btsh3').value = (document.getElementById('morelink').style.display=='block' ? '隐藏地址' : '显示地址');
- }
4、找到
- <tr>
- <td><?php
- PrintAutoFieldsEdit($cInfos['fieldset'],$addRow,'autofield');
- ?></td>
- </tr>
在其下边加入以下代码:
- <tr>
- <td height="24" class="bline">
- <table width="800" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td width="90" height="30"> 需会员权限:</td>
- <td width="179" align="center">
- <select name="daccess" id="daccess" style="width:90px">
- <?php
- $dsql->SetQuery("Select * from `dede_arcrank` where rank>=0 ");
- $dsql->Execute();
- while($row = $dsql->GetArray())
- {
- if($row['rank']==0) $row['membername'] = "不限会员";
- if($row['rank'] == $daccess) echo " <option value='{$row['rank']}' selected>{$row['membername']}</option>\r\n";
- else echo " <option value='{$row['rank']}'>{$row['membername']}</option>\r\n";
- }
- ?>
- </select>
- </td>
- <td width="120" align="center">需消费金币:</td>
- <td width="411">
- <input name="needmoney" type="text" id="needmoney" value="<?php echo $needmoney; ?>" size="8" />个
- </td>
- </tr>
- <tr>
- <td height="26" colspan="4" style="border-top:1px dashed #8EAF61"> <span class="STYLE1">(如果设定了下载限制,<a href="soft_config.php" target="_blank"><u>软件频道设置</u></a>中“附件下载方式:”必须选择“链接到跳转页面”) </span></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td height="24" colspan="4" bgcolor="#F9FCEF"class="bline2"><strong> 软件链接列表:</strong></td>
- </tr>
- <tr>
- <td height="24" colspan="4" class="bline">
- <table width="800" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td width="72"> 其它地址:</td>
- <td>
- <input name="picnum" type="text" id="picnum" size="8" value="5" />
- <input name='kkkup' type='button' id='kkkup2' value='增加数量' onClick="MakeUpload();" />
-
- <input type="button" name="Submit3" id="btsh3" value="隐藏地址" onClick="ShowHideAddr();" />
- (最多为30个链接)
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td height="24" colspan="4" class="bline" style="padding-left:8px">
- <?php
- echo $nForm;
- ?>
- <div id='morelink' style='display:block'>
- <div id='uploadfield' style='width:800px'></div>
- </div>
- </td>
- </tr>
album_edit.html修改完毕,接下来开始修改ablum_add.php,要认真看哦!
5、打开album_add.php,找到
- //加入附加表
- $cts = $dsql->GetOne("SELECT addtable FROM `#@_channeltype` WHERE id='$channelid' ");
在其上边加入
- //软件链接列表
- $urls = '';
- //本地链接处理
- $softurl1 = stripslashes($softurl1);
- $nsoftsize = '';
- if($softurl1 != '')
- {
- $urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link}\r\n";
- }
- //其它链接处理
- for($i=2; $i<=30; $i++)
- {
- if(!(${'softurl'.$i}))
- {
- $forconfig = (${'forconfig'.$i}) ? FALSE : TRUE;
- if($forconfig)
- {
- if(empty(${'need'.$i})) continue;
- $serverUrl = stripslashes(${'softurlfirst'.$i});
- $serverUrl = preg_replace("#\/$#", "", $serverUrl);
- $softurl = stripslashes(${'softurl'.$i});
- if( cn_substr($softurl, 1) != '/' ) $softurl = '/'.$softurl;
- $softurl = $serverUrl.$softurl;
- }
- else
- {
- $softurl = stripslashes(${'softurl'.$i});
- }
- $servermsg = str_replace("'", "", stripslashes(${'servermsg'.$i}));
- if($servermsg=='') $servermsg = '下载地址'.$i;
- if($softurl != 'http://')
- {
- $urls .= "{dede:link text='$servermsg'} $softurl {/dede:link}\r\n";
- }
- }
- }
- $urls = addslashes($urls);
这段大概在360行左右,主要作用是处理下载地址。然后再找到
- $query = "INSERT INTO `$addtable`(aid,typeid,redirecturl,userip,pagestyle,maxwidth,imgurls,row,col,isrm,ddmaxwidth,pagepicnum,body{$inadd_f})
- Values('$arcID','$typeid','$redirecturl','$useip','$pagestyle','$maxwidth','$imgurls','$row','$col','$isrm','$ddmaxwidth','$pagepicnum','$body'{$inadd_v}); ";
替换为
- $query = "INSERT INTO `$addtable`(aid,typeid,redirecturl,userip,pagestyle,maxwidth,imgurls,row,col,isrm,ddmaxwidth,pagepicnum,body,softlinks,needmoney,daccess{$inadd_f})
- Values('$arcID','$typeid','$redirecturl','$useip','$pagestyle','$maxwidth','$imgurls','$row','$col','$isrm','$ddmaxwidth','$pagepicnum','$body','$urls','$needmoney','$daccess'{$inadd_v}); ";
album_add.php修改完毕,添加一下文章,把下载地址,金币,会员组都写进去,看看数据库是不是有这条记录了^ ^。
6、打开album_edit.php,找到
- $addtable = $cInfos['addtable'];
在其上边加入
- $newRowStart = 1;
- $nForm = '';
- $daccess = $addRow['daccess'];
- $needmoney = $addRow['needmoney'];
- if($addRow['softlinks'] != '')
- {
- $dtp = new DedeTagParse();
- $dtp->LoadSource($addRow['softlinks']);
- if(is_array($dtp->CTags))
- {
- foreach($dtp->CTags as $ctag)
- {
- if($ctag->GetName()=='link')
- {
- $islocal = $ctag->GetAtt('islocal');
- if($islocal != 1) $needmsg = "<input type='checkbox' name='del{$newRowStart}' value='1' />删除";
- else $needmsg = '<input name="sel1" type="button" id="sel1" value="选取" onClick="SelectSoft(\'form1.softurl'.$newRowStart.'\')" />';
- $nForm .= "<div style='line-height:36px'>软件地址{$newRowStart}:<input type='text' name='softurl{$newRowStart}' style='width:280px' value='".trim($ctag->GetInnerText())."' />
- 服务器名称:<input type='text' name='servermsg{$newRowStart}' value='".$ctag->GetAtt("text")."' style='width:150px' />
- <input type='hidden' name='islocal{$newRowStart}' value='{$islocal}' />
- $needmsg
- </div>\r\n";
- $newRowStart++;
- }
- }
- }
- $dtp->Clear();
- }
然后找:
- //更新附加表
- $cts = $dsql->GetOne("SELECT addtable FROM `dede_channeltype` WHERE id='$channelid' ");
在其上边加入以下代码:
- //软件链接列表
- $urls = '';
- for($i=1; $i<=30; $i++)
- {
- if(!empty(${'softurl'.$i}))
- {
- $islocal = empty(${'islocal'.$i}) ? '' : 1;
- $isneed = empty(${'del'.$i}) ? true : false;
- $servermsg = str_replace("'",'',stripslashes(${'servermsg'.$i}));
- $softurl = stripslashes(${'softurl'.$i});
- if($servermsg=='')
- {
- $servermsg = '下载地址'.$i;
- }
- if($softurl != 'http://')
- {
- if($islocal==1) $urls .= "{dede:link islocal='$islocal' text='{$servermsg}'} $softurl {/dede:link}\r\n" ;
- else if($isneed) $urls .= "{dede:link text='$servermsg'} $softurl {/dede:link}\r\n";
- else continue;
- }
- }
- }
- $urls = addslashes($urls);
找到
- $query = "Update `$addtable`
- set typeid='$typeid',
- pagestyle='$pagestyle',
- body='$body',
- maxwidth = '$maxwidth',
- ddmaxwidth = '$ddmaxwidth',
- pagepicnum = '$pagepicnum',
- imgurls='$imgurls',
- row='$row',
- col='$col',
- isrm='$isrm'{$inadd_f},
- redirecturl='$redirecturl',
- userip = '$useip'
- WHERE aid='$id'; ";
替换为:
- $query = "Update `$addtable`
- set typeid='$typeid',
- pagestyle='$pagestyle',
- body='$body',
- maxwidth = '$maxwidth',
- ddmaxwidth = '$ddmaxwidth',
- pagepicnum = '$pagepicnum',
- imgurls='$imgurls',
- row='$row',
- col='$col',
- isrm='$isrm'{$inadd_f},
- redirecturl='$redirecturl',
- userip = '$useip',
- softlinks ='$urls',
- needmoney = '$needmoney',
- daccess = '$daccess'
- WHERE aid='$id'; ";
至此本教程后台修改部分已经完毕,你学会了吗?接下来开始前台部分。
三、前台调用,和软件的前台调用方式一样,看以下代码
- {dede:field name='softlinks'/}
这个就是调用下载地址,打开的页面为软件模型的下载页,在哪里可以判断到下载的权限。这里就不多讲了,改完后就可以看到了。
有一种情况,就是有些网友希望没有下载地址的话就不显示,这里可以提供一种方法。把如下代码复制到文章模板里即可。
- {dede:php}
- $thisid = $refObj->Fields['aid'];
- $totrow=$dsql->GetOne('select * from dede_addonarticle where aid='.$thisid);
- if($totrow['softlinks']!='')
- {
- echo "<a href=\"/plus/download.php?open=0&aid=".$thisid."&cid=2\" style=\"color:white\" target=\"_blank\">下载地址</a>";
- }
- {/dede:php}
前台效果图
到这里,本教程全文完毕
栏目热门
- 1仿《东方女性网》源码 女人时尚资讯网站模板 手机版+采集+帝国
- 2响应式医疗器械制氧机设备类网站织梦模板HTML
- 3彩虹代刷6.6免授权版源码+后台同步更新+独家防黑策略
- 4.htaccess文件介绍及.htaccess文件创建方法
- 52021全新拆红包版本完整无授权源码
- 6考研英语备考/考研英语视频/2020英语考研真相电子版
- 7聚合官方个人免签系统-支付系统源码
- 8MarketHub主题 WordPress数字市场资源商城中文汉化主题
- 9响应式投资理财类企业织梦模板HTML5投资保险理财
- 10WordPress插件Erphpdown9.83最新vip会员付费下载插件免授权学习版
- 11科技电子配件公司电子产业链建站模板
- 12分享几个免费且支持SSL(HTTPS)的CDN
- 13 WordPress 自适应企业个人展示博客Invicta主题分享
- 14PbootCms微信小程序社交电商软件公司官网源码
- 15社交电商官网/卡盟租号官网/商城陪玩官网/建站代刷官网
- 16PHP软文发稿新闻文章发布自助推广平台源码
- 17某设计资源素材解析系统8.0网站源码支持N个平台
- 18 免费WordPress 单页面APP应用程序产品介绍主题分享
- 19 免费WordPress 图片展示网站主题源码下载
- 20天翼网盘在线直链解析源码
- 21 免费WordPress 淘宝客主题源码下载
- 22新版驾考技巧驾考培训驾考技巧考试培训系统源码/题库小程序/题库系统源码/驾考答题系统源码
- 23HTML只言片语网站导航模板
- 24 免费WordPress 工作室DChaser主题源码下载
- 25校园在线缴费支付平台 v2.4
- 26 免费WordPress 响应式个人博客主题源码下载
- 27【烟雨图床】极简高速外链图床v2.1.3正式版源码
- 28PHP爬取某 各大视频网VIP会员账号分享网站引流源码
- 29WordPress收费主题QUX_v8.8破解免授权 DUX轻语博客加强版
- 30绿色低碳环保节能建材类织梦模板绿色环保建材
- 31节能环保锅炉设备类织梦模板通用机械设备网站
- 32全球监控摄像头破解入侵APP 在线偷窥摄像头APP!_手机软件_软件工具 -
- 33电子工件配件小原件轻工业产品建站模板
- 34帝国CMS7.2新闻文章博客类网站模板仿【今天头条】
- 35PHP多应用授权,多域名授权源码_全开源
- 36个人免签码支付源码+监控APP【站长亲测】
- 37 免费WordPress 自适应柚子皮博客主题源码下载
- 38免签支付系统/USDT码商支付系统/免签聚合支付/码商商户代理支付系统
- 39响应式净水设备类网站织梦模板(自适应手机端)
- 40【高仿拼多多】多用户微信拼团源码比较完美运营级商城系统支持商家入驻[Thinkphp内核]
- 41古典乐器古筝学习班类网站织梦模板古筝乐器艺
- 42高端房地产开发公司对外宣传建站平台
- 43易优cms模板 自适应响应式 安防监控类网站源码
- 4492kaifa仿《24直播网》体育视频直播站源码 带采集带手机版 帝国CMS内核开发
- 45响应式家用电器网站织梦模板源码HTML5自适应移动
- 46金融投资资金理财类企业网站织梦模板
- 47手机游戏推广联盟_推广联盟中心推广平台源码
- 48梦之环 4K壁纸
- 49星益云 云上多端互传系统 完全开源免费
- 50 免费WordPress 生活旅游音乐个人博客主题源码下载
联络方式:
电话:13388629007
邮箱:1030362387@qq.com