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

2021-07-04 作者:未知   |   浏览(
本课程达成织梦CMS功能:文章模型整理下载功能,可判断点数,会员组等下载权限,前台可判断是不是有附件下载,有则显示,没则不显示。适用种类:有的文章有下载地址,有的文章没下载地址的网站。想附件收费的网站等等具体就不啰嗦了。用得上你就拿走。
织梦CMS文章模型整理下载功能,可判断点数,会员组等下载权限

后台成效图
本课程为站长似水星辰原创,转载注明来源。
注:本课程中的金币和会员组设置只针对下载连接有效。不对文章内容生效,和文章本身的阅读权限和消费金币并不冲突,是分开设置的。文章中所有sql语句中涉及表名的,请把表前缀换成你我们的表前缀。如:js_addonarticle 换成 你的表前缀_addonarticle。
1、第一规划要加入的字段
下载链接:softlinks
消费金币:needmoney
会员组权限:daccess
这部分字段要加入到文章附加表中,前缀_addonarticle,也可以依据自己状况加入需要的表中,自己修改就好了。
进入后台管理软件-SQL命令行工具,实行:
ALTER TABLE `js_addonarticle`ADD `softlinks` TEXT NOT NULL ,
ADD `needmoney` SMALLINT NOT NULL ,
ADD `daccess` SMALLINT 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 /
假如不添加则会出现无链接信息错误!请务必添加。
2、数据库字段添加完毕就要修改文章模型的4个文件了。分别是dede管理目录下的article_add.php,article_edit.php和管理模板article_add.htm,article_edit.htm,打开这4个文件依次修改。
1、修改article_add.htm,在头部的
script/script
中加入以下,在/script
之前加入就好
var startNum = 0;
function MakeUpload
{
var upfield = document.getElementById;
var endNum = parseInt + startNum-1;
if endNum = 30;
for{
upfield.innerHTML += p style=line-height:36px;软件地址+startNum+:input type=text name=softurlquot;+startNum+quot; style=width:280px; value=http:// / 服务器名字:input type=text name=servermsgquot;+startNum+quot; style=width:150px; //p\r\n;
}
}
function ShowHideAddr
{
document.getElementById.style.display = .style.display==block ? none : block);
document.getElementById.style.height = 100%;
document.getElementById.value = .style.display==block ? 隐藏地址 : 显示地址);
}
这个是可以增加下载地址个数的JS代码。
2、找到trtd colspan=2?php PrintAutoFieldsAdd; ?/td/tr再其后边加入trtd height=24 bgcolor=#F9FCEF class=bline2strong 下载限制:/strong/td/trtrtd height=24 class=blinetable width=800 border=0 cellpadding=0 cellspacing=0trtd width=90 height=30 需会员权限:/tdtd width=179 align=leftselect name=daccess id=daccess style=width:90px; ?php
$dsql-SetQuery;
$dsql-Execute;
while)
{
if $row[membername] = 不限会员;
if echo option value={$row[rank]}selected{$row[membername]}/option\r\n;
else echo option value={$row[rank]}{$row[membername]}/option\r\n;
}
? /select /tdtd width=120 align=center需消费金币:/tdtd width=411input name=needmoney type=text id=needmoney value=?php echo $softconfig[dfywboy]; ? size=8 /个/td/trtrtd height=26 colspan=4 style=border-TOP:1px dashed #8EAF61; span class=STYLE1(假如设定了下载限制,[a href=soft_config.php target=_blanku软件频道设置/u/a]中附件下载方法:需要选择链接到跳转页面) /span/td/tr/table/td/trtrtd height=24 bgcolor=#F9FCEF class=bline2strong 当地软件选择:/strong/td/trtrtd height=24 class=blinetable width=800 border=0 cellspacing=0 cellpadding=0trtd width=90 height=30 当地地址:/tdtdinput name=softurl1 type=text id=softurl1 size=35 / input name=sel1 type=button id=sel1 value=选取 onclick=SelectSoft / 服务器名字: input name=servermsg1 type=text id=servermsg1 value=当地下载 style=width:150px; / /td/tr/table/td/tr?php
if != )
{
?trtd height=24 bgcolor=#F9FCEF class=bline2b 预设的镜像服务器:/b/td/trtr class=blinetd style=padding-left:10px;
?php
$sites = explode;
$startNum = 2;
foreach
{
$site = trim;
if) continue;
list = explode;
$siteurl = trim;
$sitename = trim;
?
?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=checked /启用
?php
$startNum++;
}//foreach
echo
script language=javascriptstartNum = $startNum;/script
\r\n;
?/td/tr?php
}//需要预设镜像
?trtd height=24 bgcolor=#F9FCEF class=bline2b 手工指定地址:/b/td/trtrtd height=24 class=bline style=padding-left:8px;table width=800 border=0 cellspacing=0 cellpadding=0 style=margin-bottom:5px; class=blinetrtd width=90其它地址:/tdtdinput 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; / /td/tr/tablep id=morelink style=display:block;p id=uploadfield style=width:790px;/p/p/td/tr到这里article_add.htm文件就修改完了。
3、打开article_edit.htm文件,在头部的
script/script
中加入以下代码,在/script
之前加入就好
var startNum = ?php echo $newRowStart?;
function MakeUpload
{
var upfield = document.getElementById;
var endNum = parseInt + startNum;
if endNum = 30;
for
{
upfield.innerHTML += p style=line-height:36px;软件地址+startNum+:input type=text name=softurlquot;+startNum+quot; style=width:280px; value=http:// / 服务器名字:input type=text name=servermsgquot;+startNum+quot; style=width:150px; //p\r\n;
}
}
function ShowHideAddr
{
document.getElementById.style.display = .style.display==block ? none : block);
document.getElementById.value = .style.display==block ? 隐藏地址 : 显示地址);
}
4、找到trtd colspan=2?php
PrintAutoFieldsEdit;
?/td/tr在其下边加入以下代码:trtd height=24 class=blinetable width=800 border=0 cellpadding=0 cellspacing=0trtd width=90 height=30 需会员权限:/tdtd width=179 align=centerselect name=daccess id=daccess style=width:90px; ?php
$dsql-SetQuery;
$dsql-Execute;
while)
{
if $row[membername] = 不限会员;
if echo option value={$row[rank]}selected{$row[membername]}/option\r\n;
else echo option value={$row[rank]}{$row[membername]}/option\r\n;
}
? /select /tdtd width=120 align=center需消费金币:/tdtd width=411input name=needmoney type=text id=needmoney value=?php echo $needmoney; ? size=8 /个/td/trtrtd height=26 colspan=4 style=border-TOP:1px dashed #8EAF61; span class=STYLE1(假如设定了下载限制,a href=soft_config.php target=_blanku软件频道设置/u/a中附件下载方法:需要选择链接到跳转页面) /span/td/tr/table/td/trtrtd height=24 colspan=4 bgcolor=#F9FCEFclass=bline2strong 软件链接列表:/strong/td/trtrtd height=24 colspan=4 class=blinetable width=800 border=0 cellspacing=0 cellpadding=0trtd width=72 其它地址:/tdtdinput 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; / /td/tr/table/td/trtrtd height=24 colspan=4 class=bline style=padding-left:8px;?php
echo $nForm;
?p id=morelink style=display:block;p id=uploadfield style=width:800px;/p/p/td/trarticle_edit.html修改完毕,下面开始修改article_add.php,要认真看哦!
5、打开article_add.php,找到
//保存到附加表
$cts = $dsql-GetOne;
在其上边加入
//软件链接列表
$urls = ;
//当地链接处置
$softurl1 = stripslashes;
$nsoftsize = ;
if
{
$urls .= {dede:link islocal=1 text={$servermsg1}} $softurl1 {/dede:link}\r\n;
}
//其它链接处置
for
{
if)
{
$forconfig = ? FALSE : TRUE;
if
{
if) continue;
$serverUrl = stripslashes;
$serverUrl = preg_replace;
$softurl = stripslashes;
if != / ) $softurl = /.$softurl;
$softurl = $serverUrl.$softurl;
}
else
{
$softurl = stripslashes;
}
$servermsg = str_replace);
if $servermsg = 下载地址.$i;
if
{
$urls .= {dede:link text=$servermsg} $softurl {/dede:link}\r\n;
}
}
}
$urls = addslashes;
这段大概在203行左右,主要用途是处置下载地址。然后再找到
$query = INSERT INTO `{$addtable}` Values;
替换为
$query = INSERT INTO `{$addtable}` Values;
article_add.php修改完毕,添加一下文章,把下载地址,金币,会员组都写进来,看看数据库是否有这条记录了^ ^。
6、打开article_edit.php,找到
$channelid = $arcRow[channel];
在其上边加入
$newRowStart = 1;
$nForm = ;
$daccess = $addRow[daccess];
$needmoney = $addRow[needmoney];
if
{
$dtp = new DedeTagParse;
$dtp-LoadSource;
if)
{
foreach
{
if==link)
{
$islocal = $ctag-GetAtt;
if $needmsg = input type=checkbox name=del{$newRowStart} value=1 /删除;
else $needmsg = input name=sel1 type=button id=sel1 value=选取 onclick=SelectSoft /;
$nForm .= p style=line-height:36px;软件地址{$newRowStart}:input type=text name=softurl{$newRowStart} style=width:280px; value=quot;.trim).quot; / 服务器名字:input type=text name=servermsg{$newRowStart} value=quot;.$ctag-GetAtt.quot; style=width:150px; / input type=hidden name=islocal{$newRowStart} value={$islocal} / $needmsg/p\r\n;
$newRowStart++;
}
}
}
$dtp-Clear;
}
找到
$cts = $dsql-GetOne;
在其上边加入以下代码:
//软件链接列表
$urls = ;

for
{
if)
{
$islocal = empty ? : 1;
$isneed = empty ? true : false;
$servermsg = str_replace);
$softurl = stripslashes;

if
{
$servermsg = 下载地址.$i;
}
if
{
if $urls .= {dede:link islocal=$islocal text={$servermsg}} $softurl {/dede:link}\r\n ;
else if $urls .= {dede:link text=$servermsg} $softurl {/dede:link}\r\n;
else continue;
}
}
}
$urls = addslashes;
找到
$iquery = UPDATE `$addtable` SET typeid=$typeid,body=$body{$inadd_f},redirecturl=$redirecturl,templet=$templet,userip=$useip WHERE aid=$id;
替换为:
$iquery = UPDATE `$addtable` SET typeid=$typeid,body=$body{$inadd_f},redirecturl=$redirecturl,templet=$templet,userip=$useip,softlinks =$urls,needmoney = $needmoney,daccess = $daccess WHERE aid=$id;
至此本课程后台修改部分已经完毕,你掌握了吗?下面开始前台部分。
3、前台调用,和软件的前台调用方法一样,看以下代码
{dede:field name=softlinks/}
这个就是调用下载地址,打开的页面为软件模型的下载页,在哪儿可以判断到下载的权限。这里就不多讲了,改完后就可以看到了。
有一种状况,就是有的网友期望没下载地址的话就不显示,这里可以提供一种办法。把如下代码复制到文章模板里即可。
{dede:php}
$thisid = $refObj-Fields[aid];
$totrow=$dsql-GetOne;
if
{
echo a href=\/plus/download.php?open=0aid=.$thisid.cid=1\ style=\color:white\ target=\_blank\下载地址/a;
}
{/dede:php}

前台成效图
到这里,本课程全文完毕。