织梦dedecms文章模型整合下载功能

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

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

  后台效果图

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

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

  下载链接:softlinks

  消费金币:needmoney

  会员组权限:daccess

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

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

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

  ADD `needmoney` SMALLINT( 5 ) NOT NULL ,

  ADD `daccess` SMALLINT( 5 ) NOT NULL

  也可以在phpmyadmin中自行添加。

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

  

  

  

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

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

  1、修改article_add.htm,在头部的

  

  之前加入就行

  var startNum = ;

  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 += "

软件地址”+startNum+”: 服务器名称:

  ”;

  }

  }

  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、找到

在其下边加入以下代码:

需会员权限: 需消费金币: (如果设定了下载限制,软件频道设置中“附件下载方式:”必须选择“链接到跳转页面”)
软件链接列表:
其它地址: (最多为30个链接)

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

  5、打开article_add.php,找到

  //保存到附加表

  $cts = $dsql->GetOne(“SELECT addtable FROM `js_channeltype` WHERE id=’$channelid’ “);

  在其上边加入

  //软件链接列表

  $urls = ”;

  //本地链接处理

  $softurl1 = stripslashes($softurl1);

  $nsoftsize = ”;

  if($softurl1 != ”)

  {

  $urls .= “{dede:link islocal=’1′ text='{$servermsg1}’} $softurl1 {/dede:link}

  ”;

  }

  //其它链接处理

  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 != '')   {   $urls .= "{dede:link text='$servermsg'} $softurl {/dede:link}   ";   }   }   }   $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修改完毕,添加一下文章,把下载地址,金币,会员组都写进去,看看数据库是不是有这条记录了^ ^。   6、打开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 = “删除”;

  else $needmsg = ‘‘;

  $nForm .= “

软件地址{$newRowStart}: $needmsg

  ”;

  $newRowStart++;

  }

  }

  }

  $dtp->Clear();

  }

  找到

  $cts = $dsql->GetOne(“SELECT addtable FROM `js_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 != '')   {   if($islocal==1) $urls .= "{dede:link islocal='$islocal' text='{$servermsg}'} $softurl {/dede:link}   " ;   else if($isneed) $urls .= "{dede:link text='$servermsg'} $softurl {/dede:link}   ";   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'/}   这个就是调用下载地址,打开的页面为软件模型的下载页,在哪里可以判断到下载的权限。这里就不多讲了,改完后就可以看到了。   有一种情况,就是有些网友希望没有下载地址的话就不显示,这里可以提供一种方法。把如下代码复制到文章模板里即可。   {dede:php}   $thisid = $refObj->Fields[‘aid’];

  $totrow=$dsql->GetOne(‘select * from js_addonarticle where aid=’.$thisid);

  if($totrow[‘softlinks’]!=”)

  {

  echo “下载地址“;

  }

  {/dede:php}

  前台效果图

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

☉免责声明:本站所有模板均来自用户分享和网络收集,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服,我们核实后会立即删除。
☉本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
pbootcms模板网 » 织梦dedecms文章模型整合下载功能

Pbootcms模板网 提供优质的模板集合

立即查看 了解详情