织梦dedecms如何让文章第二页之后不显示文章摘要

2017-04-13 14:27:48 dedecms

     

之前有人问如何实现文章分页的第二页后不显示摘要,毕竟文章摘要只需要在文章第一页展示就行了,要实现这样的效果靠

织梦

自带的功能是不行的,下面多

素材

为大家分享下具体实现的方法吧。

     

其实在前台显示的时候,所有对文章内容的解析都是通过 /include/arc.archives.class.php 进行处理的,所有列表页的解析都是通过 /include/arc.listview.class.php进行处理的,所以我们得走arc.archives.class.php里面去找。  要想读懂里面的全部代码,还是有一些难度,反正我是还没有完全把里面的代码搞懂。

    

     我还是直接说方法吧,打开 /include/arc.archives.class.php  在找到ParseDMFields方法,在方法里面把if($pageNo>1) $this->Fields['description'] = trim(preg_replace("/[\r\n\t]/", ' ', cn_substr(html2text($this->Fields[$this->SplitPageField]), 200)));  修改成 if($pageNo>1) $this->Fields['description'] = '';   它这里的意思就是,当页数大于0的时候 摘要就为空。 修改之后的结果就是

        $this->NowPage = $pageNo;

        $this->Fields['nowpage'] = $this->NowPage;

        if($this->SplitPageField!='' && isset($this->Fields[$this->SplitPageField]))

        {

            $this->Fields[$this->SplitPageField] = $this->SplitFields[$pageNo - 1];

            //if($pageNo>1) $this->Fields['description'] = trim(preg_replace("/[\r\n\t]/", ' ', cn_substr(html2text($this->Fields[$this->SplitPageField]), 200)));

   if($pageNo>1) $this->Fields['description'] = '';

        }

     

然后在模板调用的调用:

  {dede:field.description runphp='yes'}

  if(@me<>'' )@me = '<div class="intro">'.@me.'</div>';

  {/dede:field.description}