织梦DedeCMS默认的文章上一页下一页只能调用文章标题和链接,在做模板的时候能实现的样式十分有限,有时我们需要获取上一篇文章封面缩微图,这样默认的调用标签就显得很LOW了。并且在没有上一篇或者下一篇文章的时候DedeCMS还会输出一个“没有了”的文字在对应的位置,看起来很碍眼。今天来分享一个dedecms的二次开发方案,来实现文章上下篇的美化。
dedecms二次开发美化上一篇 下一篇具体执行步骤,打开/include/arc.archives.class.php搜索下面内容
- 
else if($ctag->GetName()=='fieldlist') 
在他的上面加入下面代码:
- 
else if($ctag->GetName()=='prenextdiy') 
- 
{
- 
$innertext = trim($ctag->GetInnerText()); if($innertext) 
- 
{
- 
$get = $ctag->GetAtt('get'); 
- 
$diys['diy'] = $this->GetPreNext('diy'); 
- 
$revalue = ''; 
- 
$dtp2 = new DedeTagParse(); 
- 
$dtp2->SetNameSpace('field','[',']'); 
- 
$dtp2->LoadSource($innertext); foreach($diys as $row) 
- 
{ foreach($dtp2->CTags as $tid=>$ctag2) 
- 
{ if(isset($row[$get][$ctag2->GetName()])) 
- 
{
- 
$dtp2->Assign($tid,$row[$get][$ctag2->GetName()]); 
- 
}
- 
}
- 
$revalue .= $dtp2->GetResult(); 
- 
} if($row[$get]['id']) $this->dtp->Assign($i,$revalue); 
- 
}
- 
}
搜索下面一行代码:
- 
$this->PreNext['pre'] = "上一篇:<a href='$mlink'>{$preRow['title']}</a> "; 
然后在它上面插入下面代码:
- 
$preRow['litpic'] = (empty($preRow['litpic'])) ? $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif' : $preRow['litpic']; 
- 
$this->PreNext['diy']['pre']['id'] = $preRow['id']; 
- 
$this->PreNext['diy']['pre']['arcurl'] = $mlink; 
- 
$this->PreNext['diy']['pre']['title'] = $preRow['title']; 
- 
$this->PreNext['diy']['pre']['litpic'] = $preRow['litpic']; 
- 
$this->PreNext['diy']['pre']['pubdate'] = $preRow['senddate']; 
继续搜索下面一行代码:
- 
$this->PreNext['next'] = "下一篇:<a href='$mlink'>{$nextRow['title']}</a> "; 
在它上边添加以下代码:
- 
$nextRow['litpic'] = (empty($nextRow['litpic'])) ? $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif' : $nextRow['litpic']; 
- 
$this->PreNext['diy']['next']['id'] = $nextRow['id']; 
- 
$this->PreNext['diy']['next']['arcurl'] = $mlink; 
- 
$this->PreNext['diy']['next']['title'] = $nextRow['title']; 
- 
$this->PreNext['diy']['next']['litpic'] = $nextRow['litpic']; 
- 
$this->PreNext['diy']['next']['pubdate'] = $nextRow['senddate']; 
最后再搜索代码:
- 
if($gtype=='pre') 
在其前面插入:
- 
if($gtype=='diy') 
- 
{ return $this->PreNext['diy']; 
- 
}
至此大功告成。
调用方法:
上一篇:
- 
{dede:prenextdiy get='pre'} 
- 
<li><a href="[field:arcurl/]"><img src="[field:litpic/]" width="50" height="50"></a></li> 
- 
<p><a href="[field:arcurl/]">[field:title/]</a><span>时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]</span></p> 
- 
{/dede:prenextdiy} 
下一篇:
- 
{dede:prenextdiy get='next'} 
- 
<li><a href="[field:arcurl/]"><img src="[field:litpic/]" width="50" height="50"></a></li> 
- 
<p><a href="[field:arcurl/]">[field:title/]</a><span>时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]</span></p> 
- 
{/dede:prenextdiy} 
这样,有了文字、图片、时间、链接。想美化成什么样子都可以了!并且不同的组合对网站的SEO优化也是很有帮助的。
并且,最关键的是这种织梦cms二次开发的方案非常优秀,因为原理是额外添加了一个diy的标签,所以完全不损伤系统原有的功能,如有需求,依旧可以使用织梦系统原有的标签进行上下篇的调用。
	声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
		
