织梦文章模型整合下载功能,可判断金币数,会员组等下载权限_织梦CMS教程


需求:在织梦文章模型中我们要加入一个下载功能,并且需要判断“下载权限,金币消费”。

解决方案:

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

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

下载链接:softlinks

消费金币:needmoney

会员组权限:daccess

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

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

ActionScript

ALTER TABLE  `dede_addonarticle` ADD  `softlinks` TEXT NOT NULL ,

ADD  `needmoney` SMALLINT( 5 ) NOT NULL ,

ADD  `daccess` SMALLINT( 5 ) NOT NULL

也可以在phpmyadmin中自行添加。


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

ActionScript

<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,

【1】在头部的<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 = '*';
document.getElementById('btsh3').value = (document.getElementById('morelink').style.display=='block' ? '隐藏地址' : '显示地址');
}

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

【2】找到

<tr>

<td colspan="2"><?php PrintAutoFieldsAdd($cInfos['fieldset'],'autofield'); ?></td>

</tr>

再其后边加入

<tr>
<td height="24" bgcolor="#F9FCEF"" class="bline2"><strong>&nbsp;下载限制:</strong></td>
</tr>
<tr>
<td height="24"  class="bline">
<table width="800" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="90" height="30">&nbsp;需会员权限:</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">&nbsp; <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>&nbsp;本地软件选择:</strong></td>
</tr>
<tr>
<td height="24"  class="bline">
<table width="800" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="90" height="30">&nbsp;本地地址:</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>&nbsp;预设的镜像服务器:</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>&nbsp;手动指定地址:</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();" />
&nbsp;
<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>


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

2.打开article_edit.htm文件,

【1】在头部的<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' ? '隐藏地址' : '显示地址');
}

【2】找到

<tr>

<td colspan="2"><?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">&nbsp;需会员权限:</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">&nbsp; <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>&nbsp;软件链接列表:</strong></td>
</tr>
<tr>
<td height="24" colspan="4" class="bline">
<table width="800" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="72">&nbsp;其它地址:</td>
<td>
<input name="picnum" type="text" id="picnum" size="8" value="5" />
<input name='kkkup' type='button' id='kkkup2' value='增加数量' onClick="MakeUpload();" />
&nbsp;
<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>

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


3.打开article_add.php,

找到

//保存到附加表

$cts = $dsql->GetOne("SELECT addtable FROM `dede_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);


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

$query = "INSERT INTO `{$addtable}`(aid,typeid,redirecturl,templet,userip,

body{$inadd_f}) Values('$arcID','$typeid','$redirecturl','$templet','$useip','$body'{$inadd_v})";

替换为

$query = "INSERT INTO `{$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修改完毕,添加一下文章,把下载地址,金币,会员组都写进去,看看数据库是不是有这条记录了^ ^。

4.打开article_edit.php,找到

$channelid = $arcRow['channel'];

在其上边加入

$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);


找到

$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'";


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

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

{dede:field name='softlinks'/}

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

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

后台必须取消禁用PHP调用,才能使用PHP标签。

{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=1\" style=\"color:white\" target=\"_blank\">下载地址</a>";
}
{/dede:php}



# 小吃加盟网站建设营销  # 要认真  # 下载链接  # 则会  # 网站建设推广宣传标语  # 周村网站优化团队  # 品牌网站推广认可z火17星热情  # seo是什么意思se  # 嘉定专业*seo推广  # 潍坊济南网站营销推广  # seo怎么做专题页  # seo如何提升价值  # 讲了  # 公司网站推广途径  # 无锡网站建设服务简介  # 英文旅游网站建设  # 莆田推广SEO排名  # SEO书架儿童故事  # 网站建设模型下载  # 青岛seo入门教程  # 衡水网站优化怎么样  # 百度旅游网站推广  # 重庆建设统计年鉴网站  # 行业网站建设要注意什么  # 定了  # 可判断金币数  # 会员组等下载权限  # 织梦CMS教程  # 织梦文章  # 文章模型  # 织梦下载  # 织梦金币  # 下载地址  # 就行  # 镜像  # 跳转  # 织梦文章模型整合下载功能  # 多为  # 自己的  # 本地下载  # 就不  # 有一种  # 不多  # 这段  # 这条  # 然后再  # 请把  # 可以根据 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化91478 】 【 技术知识72672 】 【 云计算0 】 【 GEO优化84317 】 【 优选文章0 】 【 营销推广36048 】 【 网络运营41350 】 【 案例网站102563 】 【 AI智能45237


相关推荐: dedecms织梦列表页单独调用总页数二次开发方法_织梦CMS教程  dedecms织梦首页列表页调用文章从指定位置开始调取_织梦CMS教程  如何在IIS中新建站点并配置端口与物理路径?  织梦自定义表单限制IP发表次数教程_织梦CMS教程  织梦cms DedeTag Engine Create File False解决办法_织梦CMS教程  织梦根据条件查询自定义表单并输出相应的字段值_织梦CMS教程  建站主机选哪家性价比最高?  帝国CMS教程*的随机调用方法_帝国CMS教程  织梦dedecms会员中心我的收藏新增一个自定义字段显示_织梦CMS教程  织梦dedecms自定义表单前台调用显示+分页调用_织梦CMS教程  如何彻底删除建站之星生成的Banner?  织梦二级域名附件相对路径修改*路径链接_织梦CMS教程  常州企业建站如何选择最佳模板?  dedecms织梦*内容页插件_织梦插件  织梦调用文章所属的副栏目id及副栏目名称网址链接教程_织梦CMS教程  织梦dedecms实现文章上传图片自动添加alt属性的教程_织梦CMS教程  建站之星如何实现PC+手机+微信网站五合一建站?  如何挑选高效建站主机与优质域名?  如何快速启动建站代理加盟业务?  dedecms织梦JS代码实现导航高亮显示_织梦CMS教程  织梦dedecms cookies泄漏导致SQL漏洞修复_织梦CMS教程  怎么快速去除帝国CMS底部的版本信息?_帝国CMS教程  建站之星服务器如何实现独立IP配置?  织梦频道管理员信息管理员访问自定义表单的设置_织梦CMS教程  通过sql查询的方法调用栏目SEO标题、栏目描述和关键字_织梦CMS教程  建站之星在线客服如何快速接入解答?  织梦cms调用图片集多张图片及注释的方法(循环输出)_织梦CMS教程  建站主机类型有哪些?如何正确选型  dedecms织梦搜索页有缩略图调用缩略图,无缩图则不显示缩略图_织梦CMS教程  黑客入侵网站服务器的常见手法有哪些?  织梦cms复制页面内容,自动在后面加上网址_织梦CMS教程  织梦dedecms自定义表单调用已审核的留言_织梦CMS教程  织梦dedecms搜索页不显示广告解决方法_织梦CMS教程  织梦dede:sql标签动态查询调用其它文章信息方法_织梦CMS教程  织梦列表页多种属性排序[ajax]-支持select方式和降序升序切换_织梦插件  如何通过主机屋免费建站教程十分钟搭建网站?  织梦dedecms图片集上传图片出错302的解决办法_织梦CMS教程  如何在云服务器上快速搭建个人网站?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  织梦发布文章时添加的tag标签无法保存解决方法_织梦CMS教程  香港服务器建站指南:免备案优势与SEO优化技巧全解析  建站助手共享版:智能模板一键生成与多端适配指南  如何在IIS中新建站点并解决端口绑定冲突?  建站之星如何实现五合一智能建站与营销推广?  如何在IIS服务器上快速部署高效网站?  织梦每天自动更新首页利于SEO优化_织梦CMS教程  如何快速选择适合个人网站的云服务器配置?  dedecms织梦防止别人采集设置方法_织梦CMS教程  织梦修改会员中心目录名称的方法_织梦CMS教程  织梦会员中心*一键登录2.0 FOR V55 V56 V57免费插件_织梦插件 

 2018-09-23

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

南京市珐之弘网络技术有限公司


南京市珐之弘网络技术有限公司

南京市珐之弘网络技术有限公司专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 87067657

 13565296790

 87067657@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.