星联网络专注帝国CMS二次功能插件开发-精品网站模板站长代码素材

  • 最近更新
  • 模板:33
  • 记录:12641|
  • 插件:52|
  • 工具:4|
  • 代码:8|
  • 评论:0

dedecms 二次开发调用当前作者文档的标签

前言

本文主要讲解《dedecms二次开发调用当前作者文档的标签》的详细内容

能帮到别人~还真是有成就感啊,又是百度知道里的问题。

有网友向调用当前内容页面 作者发布的所有文档,这个功能之前写过,但是是用sql调用的。

需要的可以看这里http://www.dede58.com/a/zhimengjiaocheng/development/3573.html

好,下面教大家怎么自己开发一个标签来调用当前作者的所有文章。

首先将以下函数放到 include/extend.func.php 最下边,这个函数是用来获取静态页面的URL地址的。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 functionGetOneDocUrl($aid) { global$dsql; include_once(DEDEINC."/channelunit.func.php"); $aid=trim(ereg_replace('[^0-9]','',$aid)); $chRow=$dsql->GetOne("Selectarc.*,ch.maintable,ch.addtable,ch.issystemFrom`dede_arctiny`arcleftjoin`dede_channeltype`chonch.id=arc.channelwherearc.id='$aid'"); if(!is_array($chRow)){ return$reArr; } else{ if(empty($chRow['maintable']))$chRow['maintable']='dede_archives'; } if($chRow['issystem']!=-1) { $nquery="Selectarc.*,tp.typedir,tp.topid,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath From`{$chRow['maintable']}`arcleftjoin`dede_arctype`tpontp.id=arc.typeid wherearc.id='$aid'"; } else { $nquery="Selectarc.*,1asismake,0asmoney,''asfilename,tp.typedir,tp.topid,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath From`{$chRow['addtable']}`arcleftjoin`dede_arctype`tpontp.id=arc.typeid wherearc.aid='$aid'"; } $arcRow=$dsql->GetOne($nquery); $Url=GetFileUrl($aid,$arcRow['typeid'],$arcRow['senddate'],$reArr['title'],$arcRow['ismake'],$arcRow['arcrank'],$arcRow['namerule'],$arcRow['typedir'],$arcRow['money'],$arcRow['filename'],$arcRow['moresite'],$arcRow['siteurl'],$arcRow['sitepath']); return$Url; }

然后将以下代码保存为diary.lib.php 放到include/taglib 目录下

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 <?php /** *调用当前作者文档 *@version$Id:diary.lib.php1:372015年6月2日byJJM$ *@linkhttp://www.jjm.hk */ if(!defined('DEDEINC')){ exit("RequestError!"); } functionlib_diary(&$ctag,&$refObj) { global$dsql,$envs; $jjmhk="row|1,typeid|0"; FillAttsDefault($ctag->CAttribute->Items,$jjmhk); extract($ctag->CAttribute->Items); $innertext=trim($ctag->GetInnerText()); $ctp=newDedeTagParse(); $ctp->SetNameSpace('field','[',']'); $ctp->LoadSource($innertext); $writer=$ctag->GetAtt('writer'); if($writer=='this') { $writer=isset($refObj->Fields['writer'])?$refObj->Fields['writer']:0; } $query="selecta.id,a.title,a.writer,a.pubdate,a.typeid,b.aidfromdede_archivesaLEFTJOINdede_addonarticlebonb.aid=a.idwherea.typeid='{$typeid}'anda.writer='{$writer}'orderbya.pubdatedescLIMIT0,$row"; $dsql->SetQuery($query); $dsql->Execute('me',$query); while($rs=$dsql->GetArray('me')) { $rs['pubdate']=GetDateMK($rs['pubdate']); $rs['arcurl']=GetOneDocUrl($rs['id']); $rs['title']=0==$titlelen?$rs['title']:cn_substr($rs['title'],$titlelen); $ctp->LoadSource($innertext); foreach($ctp->CTagsas$tagid=>$ctag){ if(!empty($rs[strtolower($ctag->GetName())])){ $ctp->Assign($tagid,$rs[$ctag->GetName()]); } } $revalue.=$ctp->GetResult(); } return$revalue; }

最后再内容页的模板中调用以下标签,下边的li span 标签 自己修改删除。

1 2 3 4 5 {dede:diaryrow='10'typeid='2'writer='this'} <li><ahref="[field:arcurl/]">[field:title/]</a><spanclass="p-l5">([field:pubdate/])</span></li> {/dede:diary}

==============================分割线============================
标签说明:

row= 调用条数
typeid= 调用栏目ID
writer= 默认 this 无需修改

帮百度知道网友免费开发出来的效果,新建立了一个自定义模型,增加了3个自定义字段。 头像,微信号以及二维码上传。

1111114.png

本网刊登的文章均仅代表作者个人观点,并不代表本网立场。文中的论述和观点,敬请读者注意判断。

本文地址:http://www.xlkjgs.com/notes/web/4603.html

以上内容由本站整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

星联网络

星联网络是中国最具实战的互联网创业者的知识服务商,这里有互联网行业动态,网络推广,SEO优化,SEM优化,ESC配置,行业经验分型,互联网项目,微信营销、淘宝客赚钱、新媒体营销、京东运营、跨境电商等众多互联网营销知识分享

站长运营站长必备网站运营之道才能长久发展