dedecms调用指定id文章

2013-03-02 10:12 来源:www.chinab4c.com 作者:dedecms专家

    dedecms调用指定id文章,这个是非常有作用的。dedecms模板写的很死,你想调用指定的某个文章id的文章信息,你还必须的自己写dedecms的标签,才能实现这个功能。为了更加方便灵活的调用dedecms指定文章,我们特别编写了以下接口,来调用。

   1:以下是调用dedecms指定id的文章信息。

    
function lib_info(&$ctag,&$refObj)
{   
    global $dsql;
    $list = "id|1";
    FillAttsDefault($ctag->CAttribute->Items,$list);
    extract($ctag->CAttribute->Items);
    $text = $ctag->GetInnerText();
    $tcp = new DedeTagParse();
    $tcp->SetNameSpace('field','[',']');
    $tcp->LoadSource($text);
    $str = '';
   
    $query = "Select arc.id,arc.title,arc.shorttitle,arc.typeid,arc.ismake,arc.senddate,arc.arcrank,arc.money,arc.filename,arc.litpic,
                        t.typedir,t.typename,t.namerule,t.namerule2,t.ispart,t.moresite,t.siteurl,t.sitepath
                        from `dede_archives` arc left join dede_arctype t on arc.typeid=t.id where arc.id='$id' ";
    $preRow = $dsql->GetOne($query);
   
    $url = GetFileUrl($preRow['id'],$preRow['typeid'],$preRow['senddate'],$preRow['title'],$preRow['ismake'],$preRow['arcrank'],
                $preRow['namerule'],$preRow['typedir'],$preRow['money'],$preRow['filename'],$preRow['moresite'],$preRow['siteurl'],$preRow['sitepath']);
    $preRow['url'] = $url;
    if($tcp->CTags){
        foreach($tcp->CTags as $k=>$v){
            $tcp->Assign($k,$preRow[$v->GetName()]);
        }
        $str.=$tcp->GetResult();
    }
    return $str;
   
}

2:dedecms模板中如此调用。

  {dede:info id="5"}
<a href=[field:url/]>[field:title/]</a>
{/dede:info}

 来源:http://www.chinab4c.com