各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > DEDE

dedecms会员中心空间中,spacenewart标签功能的拓展

管理员 2017-10-13
DEDE
86
在dede的博客空间中,spacenewart标签只能调用频道的内容,不能调用特定栏目的文章,不能调用附加表字段,功能有限。    现修改spacenewart标签的文件includetpllibplus_spacenewart.php    以实现如下功能:可以调用特定栏目的文章,可以调用附加表的字段。   includetpllibplus_spacenewart.php 修改后的代码如下:

<?php   if(!defined('DEDEINC')) exit('Request Error!');/** * 动态dedecms模板spacenewart标签 * * @version        $Id: plus_spacenewart.php 1 13:58 2010年7月5日Z tianya $ * @package        DedeCMS.Tpllib * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc. * @license        http://help.dedecms.com/usersguide/license.html * @link           http://www.dedecms.com */ function plus_spacenewart(&$atts,&$refObj,&$fields){    global $dsql,$_vars;    $attlist = "channel=1,titlelen=40,infolen=200,row=8,imgwidth=120,imgheight=90";    FillAtts($atts,$attlist);    FillFields($atts,$fields,$refObj);    extract($atts, EXTR_OVERWRITE);    //获取附加表信息 //$addfield ='fengge';    $addfield =trim($addfields); //echo  $addfield;    $addfieldsSql = '';    $addfieldsSqlJoin = '';    if($addfield != '' && !empty($channel))    {        $row2 = $dsql->GetOne("SELECT addtable FROM `dede_channeltype` WHERE id='$channel' ");        if(isset($row2['addtable']) && trim($row2['addtable']) != '')        {            $addtable = trim($row2['addtable']);            $addfields = explode(',', $addfield);            $row2['addtable'] = trim($row2['addtable']);            $addfieldsSql = ",addf.".join(',addf.', $addfields);            $addfieldsSqlJoin = " LEFT JOIN `$addtable` addf ON addf.aid = arc.id ";        }    }    $query = "Select arc.*,mt.mtypename,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,        tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath $addfieldsSql        from `dede_archives` arc        left join `dede_arctype` tp on arc.typeid=tp.id        left join `dede_mtypes` mt on mt.mtypeid=arc.mtype $addfieldsSqlJoin        where arc.mid='{$_vars['mid']}' and arc.channel=$channel and arc.ismake='1' and arc.typeid in ($typeid)        order by id desc limit 0,$row";    //echo $query;    $dsql->SetQuery($query);    $dsql->Execute("al");    $artlist = '';    $rearr = array(); $i=1;    while($row = $dsql->GetArray("al"))    {        //处理一些特殊字段  $row['i']=$i;  $i=$i+1;        $row['infos'] = cn_substr($row['description'],$infolen);        $row['id'] =  $row['id'];        $row['arcurl'] = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],        $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);        $row['typeurl'] = GetTypeUrl($row['typeid'],$row['typedir'],$row['isdefault'],$row['defaultname'],$row['ispart'],        $row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);        if($row['litpic']=='')        {            $row['litpic'] = '/images/defaultpic.gif';        }        if(!preg_match("#^http://#i", $row['litpic']))        {            $row['picname'] = $row['litpic'] = $GLOBALS['cfg_cmsurl'].$row['litpic'];        }        else        {            $row['picname'] = $row['litpic'] = $row['litpic'];        }        $row['stime'] = GetDateMK($row['pubdate']);        $row['typelink'] = "<a href='".$row['typeurl']."'>".$row['typename']."</a>";        $row['image'] = "<img src='".$row['picname']."' border='0' width='$imgwidth' height='$imgheight' alt='".preg_replace("#['><]#", "", $row['title'])."'>";        $row['imglink'] = "<a href='".$row['filename']."'>".$row['image']."</a>";        $row['fulltitle'] = $row['title'];        $row['title'] = cn_substr($row['title'],$titlelen);        if($row['color']!='') {            $row['title'] = "<font color='".$row['color']."'>".$row['title']."</font>";        }        if(preg_match('#b#', $row['flag']))        {            $row['title'] = "<strong>".$row['title']."</strong>";        }        //$row['title'] = "<b>".$row['title']."</b>";        $row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";        $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];        $row['memberurl'] = $GLOBALS['cfg_memberurl'];        $row['templeturl'] = $GLOBALS['cfg_templeturl'];          //$row['fengge'] = $row['fengge'];          $rearr[] = $row;    }//loop line    $dsql->FreeResult("al");    return $rearr;}

功能拓展后的spacenewart标签使用示例如下:  
{dede:spacenewart row=1 titlelen=60  typeid='29' channel='18' addfields='name,shengshi,nianling' }<table width="220" border="0" cellspacing="0" cellpadding="0"><tr><td height="28" align="left" valign="middle">姓名:<font color="#0041D9">{dede:field.name/}</font></td></tr><tr><td height="28" align="left" valign="middle">籍贯:<font color="#0041D9">{dede:field.shengshi/}</font></td></tr><tr><td height="28" align="left" valign="middle">年龄:<font color="#0041D9">{dede:field.nianling/}</font></td></tr></table>{/dede:spacenewart}
  其中name,shengshi,nianling字段为附加表字段,typeid='29'指定栏目,channel='18'指定频道。 本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关推荐

扫码关注

qrcode

QQ交谈

回顶部