DEDECMS文章模型整合下载功能,可判断点数,会员组等下载权限
2022/11/21 09:17 魔司收录网 已浏览136次本教程实现DEDECMS功能:文章模型整合下载功能,可判断点数,会员组等下载权限,前台可判断是否有附件下载,有则显示,没有则不显示。适用类型:有些文章有下载地址,有些文章没有下载地址的网站。想附件收费的网站等等……具体就不啰嗦了。用得上您就拿走。
后台效果图
本教程为站长似水星辰原创,转载注明出处。
注:本教程中的金币和会员组设置只针对下载连接有效。不对文章内容生效,和文章本身的阅读权限和消费金币并不冲突,是分开设置的。文章中所有sql语句中涉及表名的,请把表前缀换成您自己的表前缀。如:js_addonarticle 换成 您的表前缀_addonarticle。
一、首先规划要加入的字段
下载链接:softlinks
消费金币:needmoney
会员组权限:daccess
这些字段要加入到文章附加表中,前缀_addonarticle,也可以根据自己情况加入需要的表中,自己修改就行了。
进入后台系统-SQL命令行工具,执行:
-
1
ALTER
TABLE
`js_addonarticle`
ADD
`softlinks` TEXT
NOT
NULL
,
2
ADD
`needmoney`
SMALLINT
( 5 )
NOT
NULL
,
3
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管理目录下的article_add.php,article_edit.php和管理模板article_add.htm,article_edit.htm,打开这4个文件依次修改。
1、修改article_add.htm,在头部的<script></script>中加入以下,在</script>之前加入就行
-
01
var startNum = 0;
02
function
MakeUpload()
03
{
04
var upfield = document.getElementById(
"uploadfield"
);
05
var endNum = parseInt(document.form1.picnum.value) + startNum-1;
06
if
(endNum > 30) endNum = 30;
07
for
(startNum; startNum<=endNum; startNum++){
08
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"
;
09
}
10
}
11
function
ShowHideAddr()
12
{
13
document.getElementById(
'morelink'
).style.display = (document.getElementById(
'morelink'
).style.display==
'block'
?
'none'
:
'block'
);
14
document.getElementById(
'morelink'
).style.height =
'100%'
;
15
document.getElementById(
'btsh3'
).value = (document.getElementById(
'morelink'
).style.display==
'block'
?
'隐藏地址'
:
'显示地址'
);
16
}
这个是可以增加下载地址个数的JS代码。
2、找到
- <tr>
- <td colspan="2"><?php PrintAutoFieldsAdd($cInfos['fieldset'],'autofield'); ?></td>
- </tr>
再其后边加入
-
001
<
tr
>
002
<td height=
"24"
bgcolor=
"#F9FCEF"
" class="
bline2"><strong> 下载限制:</strong></td>
003
</
tr
>
004
<
tr
>
005
<td height=
"24"
class=
"bline"
>
006
<table width=
"800"
border=
"0"
cellpadding=
"0"
cellspacing=
"0"
>
007
<
tr
>
008
<td width=
"90"
height=
"30"
> 需会员权限:</td>
009
<td width=
"179"
align=
"left"
>
010
<
select
name=
"daccess"
id
=
"daccess"
style=
"width:90px"
>
011
<?php
012
$dsql->SetQuery(
"Select * from `js_arcrank` where rank>=0 "
);
013
$dsql->Execute();
014
while
($row = $dsql->GetArray())
015
{
016
if
($row[
'rank'
]==0) $row[
'membername'
] =
"不限会员"
;
017
if
($row[
'rank'
] == $softconfig[
'dfrank'
])
echo
" <option value='{$row['rank']}' selected>{$row['membername']}</option>\r\n"
;
018
else
echo
" <option value='{$row['rank']}'>{$row['membername']}</option>\r\n"
;
019
}
020
?>
021
</
select
> </td>
022
<td width=
"120"
align=
"center"
>需消费金币:</td>
023
<td width=
"411"
>
024
<input name=
"needmoney"
type
=
"text"
id
=
"needmoney"
value=
"<?php echo $softconfig['dfywboy']; ?>"
size=
"8"
/>个 </td>
025
</
tr
>
026
<
tr
>
027
<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>
028
</
tr
>
029
</table>
030
</td>
031
</
tr
>
032
<
tr
>
033
<td height=
"24"
bgcolor=
"#F9FCEF"
class=
"bline2"
><strong> 本地软件选择:</strong></td>
034
</
tr
>
035
<
tr
>
036
<td height=
"24"
class=
"bline"
>
037
<table width=
"800"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
038
<
tr
>
039
<td width=
"90"
height=
"30"
> 本地地址:</td>
040
<td>
041
<input name=
"softurl1"
type
=
"text"
id
=
"softurl1"
size=
"35"
/>
042
<input name=
"sel1"
type
=
"button"
id
=
"sel1"
value=
"选取"
onClick=
"SelectSoft('form1.softurl1')"
/>
043
服务器名称:
044
<input name=
"servermsg1"
type
=
"text"
id
=
"servermsg1"
value=
"本地下载"
style=
"width:150px"
/>
045
</td>
046
</
tr
>
047
</table>
048
</td>
049
</
tr
>
050
<?php
051
if
($softconfig[
'moresitedo'
] == 0 && trim($softconfig[
'sites'
]) !=
''
)
052
{
053
?>
054
<
tr
>
055
<td height=
"24"
bgcolor=
"#F9FCEF"
class=
"bline2"
><b> 预设的镜像服务器:</b></td>
056
</
tr
>
057
<
tr
class=
"bline"
>
058
<td style=
"padding-left:10px;"
>
059
(服务器地址 + 软件地址 = 软件真实地址 [<a href=
"soft_config.php"
target=
"_blank"
><u>软件频道设置</u></a>])<br />
060
<?php
061
$sites = explode(
"\n"
, $softconfig[
'sites'
]);
062
$startNum = 2;
063
foreach($sites as $site)
064
{
065
$site = trim($site);
066
if
(empty($site))
continue
;
067
list($siteurl, $sitename) = explode(
'|'
, $site);
068
$siteurl = trim($siteurl);
069
$sitename = trim($sitename);
070
?>
071
<?php
echo
$sitename; ?>:
072
<input
type
=
'hidden'
name=
'forconfig<?php echo $startNum; ?>'
value=
'1'
/>
073
<input
type
=
'text'
name=
'softurlfirst<?php echo $startNum; ?>'
style=
'width:200px'
value=
'<?php echo $siteurl; ?>'
/> +
074