广

织梦CMS教程

  • 帝国cms教程
  • 织梦CMS教程
  • PHP CMS教程
  • ECSHOP教程
  • WordPress教程
  • Discuz教程
  • CMS学习

    DEDECMS调用特定ID文章内容的实现方法

    2018-04-02 20:50:12 次阅读 稿源:互联网
    广告

     

    DEDECMS调用特定ID文章内容的实现方法,需要的朋友可以参考下。

    方法一:
    找到:include/inc_arcpart_view.php文件,在里面找到第function ParseTemplet();这一个函数里面的
    代码如下:

    1. 〔  
    2. $this->dtp->Assign($tagid,  
    3. $this->GetArcList($typeid,$ctag->GetAtt("row"),$ctag->GetAtt("col"),  
    4. $titlelen,$infolen,$ctag->GetAtt("imgwidth"),$ctag->GetAtt("imgheight"),  
    5. $ctag->GetAtt("type"),$orderby,$ctag->GetAtt("keyword"),$innertext,  
    6. $ctag->GetAtt("tablewidth"),0,"",$channelid,$ctag->GetAtt("limit"),$ctag->GetAtt("att"),  
    7. $ctag->GetAtt("orderway"),$ctag->GetAtt("subday"),$autopartid,$ctag->GetAtt("ismember")  
    8. )  
    9. 〕 

    将里面的红色的0改为$ctag->GetAtt('arcid'),就行了,然后到incclude/inc/inc_fun_spgetarclist.php文件里面找到

    1. if($arcid!=0) $orwhere .= " And arc.ID<>'$arcid' ";〕 

    将这一句改为:

    1. if($arcid!=0) $orwhere ." And arc.ID='$arcid' ";  
    2. if($arcid==0) $orwhere ." And arc.ID<>'$arcid' ";  

    以上两句,替换掉上面需要替换的语句。然后就可以调用了:如在主页中调用ID号为145的文章内容:

     

    代码如下:

    1. {dede:arclist arcid='145' row='5' col='1' titlelen='24' }  
    2. <table cellspacing='2' cellpadding='2'>  
    3. <tr>  
    4. <td>[field:title/]  
    5. [field:info/]</td>  
    6. </tr>  
    7. </table>  
    8. {/dede:arclist}  

    这样就只会调用到一个ID为145的文章,即始ROW设为5也没有用,因为从数据库里面只提出一条记录来, 

    但是现在还不能解析HTML语法,提出来的文章没有版式,下次改进。
    方法二:
    刚一开始没有仔细看论坛,所以自已写出这样的方法,其实大可不必按以上的方法做,可以借助强大的LOOP来实现这一种需求,现将个人方法写在下面,希望对需要的人有帮助;
    在首页模板里面加入如下代码:

    1. {dede:loop table='dede_addonarticle' sort='aid' row='8' if='aid=524'}  
    2. [field:body/]  
    3. <hr>  
    4. [field:body function="Html2Text(cn_substr('@me',200))" /]  
    5. {/dede:loop}  

    注意下面的这一行:
    {dede:loop table='dede_addonarticle' sort='aid' row='8' if='aid=524'}
    其中有一个aid=524代表要取文章列表的ID号为524的文章,
    table='dede_addonarticle' 为所存文章的表
    其中中间的这一行最重要,
    [field:body function="Html2Text(cn_substr('@me',200))" /]
    这一句有多种调用方式:
    如:[field:body/]将得到文章所有的内容,不过滤HTML标记
    [field:body function="(cn_substr('@me',200))" /]
    只取内容的前200个字符
    [field:body function="Html2Text(cn_substr('@me',200))" /]
    取前200个字符并把HTML标记过滤
    其实DEDECMS真的很强大,偶算是领教了。

     

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告