在不影响程序原来功能的基础下,二次开发让上一篇下一篇标签自由可控地输出链接、标题、缩略图、时间,没有上一篇或者下一篇时不输出任何东西
实现教程
打开 /include/arc.archives.class.php 找到 大概在 735 行左右的
else if($ctag->GetName()=='fieldlist')制
在它的 上面 加入
01 | else if ($ctag->GetName()== 'prenextdiy' ) |
03 | $innertext = trim($ctag->GetInnerText()); |
06 | $get = $ctag->GetAtt( 'get' ); |
07 | $diys[ 'diy' ] = $this->GetPreNext( 'diy' ); |
09 | $dtp2 = new DedeTagParse(); |
10 | $dtp2->SetNameSpace( 'field' , '[' , ']' ); |
11 | $dtp2->LoadSource($innertext); |
12 | foreach($diys as $row) |
14 | foreach($dtp2->CTags as $tid=>$ctag2) |
16 | if (isset($row[$get][$ctag2->GetName()])) |
18 | $dtp2->Assign($tid,$row[$get][$ctag2->GetName()]); |
21 | $revalue .= $dtp2->GetResult(); |
23 | if ($row[$get][ 'id' ]) $this->dtp->Assign($i,$revalue); |
|
如图
![](https://i-blog.csdnimg.cn/blog_migrate/70cf5f8cb38e480483cd2616a2b6d96a.png)
(此图片来源于网络,如有侵权,请联系删除! )
继续找到,大概在852行左右的
1 | $this->PreNext[ 'pre' ] = "上一篇:<a href='$mlink'>{$preRow['title']}</a> " ; |
|
在它的 上面 加入
1 | $preRow[ 'litpic' ] = (empty($preRow[ 'litpic' ])) ? $GLOBALS[ 'cfg_cmspath' ]. '/images/defaultpic.gif' : $preRow[ 'litpic' ]; |
2 | $this->PreNext[ 'diy' ][ 'pre' ][ 'id' ] = $preRow[ 'id' ]; |
3 | $this->PreNext[ 'diy' ][ 'pre' ][ 'arcurl' ] = $mlink; |
4 | $this->PreNext[ 'diy' ][ 'pre' ][ 'title' ] = $preRow[ 'title' ]; |
5 | $this->PreNext[ 'diy' ][ 'pre' ][ 'litpic' ] = $preRow[ 'litpic' ]; |
6 | $this->PreNext[ 'diy' ][ 'pre' ][ 'pubdate' ] = $preRow[ 'senddate' ]; |
|
如图
![](https://i-blog.csdnimg.cn/blog_migrate/456b2f805d5ebdd20494369dfc8c5c58.png)
(此图片来源于网络,如有侵权,请联系删除! )
继续找到,大概在875行左右的
1 | $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'];
如图
![](https://i-blog.csdnimg.cn/blog_migrate/49db306004c8c82106b0712f2b1cf00a.png)
(此图片来源于网络,如有侵权,请联系删除! )
继续找到,大概在 889 行左右的
if($gtype=='pre')
在它的 上面 加入
if($gtype=='diy') { return $this->PreNext['diy']; }
如图
![](https://i-blog.csdnimg.cn/blog_migrate/1732f6c30ffe68def0a168531e88236d.png)
(此图片来源于网络,如有侵权,请联系删除! )
内容页模板里上一篇下一篇调用标签写法
02 | {dede:prenextdiy get= 'pre' } |
04 | <a href= "[field:arcurl/]" ><img src= "[field:litpic/]" width= "50" height= "50" ></a> |
05 | <p><a href= "[field:arcurl/]" >[field:title/]</a><span>时间:[field:pubdate function = "MyDate('Y-m-d',@me)" /]</span></p> |
10 | {dede:prenextdiy get= 'next' } |
12 | <a href= "[field:arcurl/]" ><img src= "[field:litpic/]" width= "50" height= "50" ></a> |
13 | <p><a href= "[field:arcurl/]" >[field:title/]</a><span>时间:[field:pubdate function = "MyDate('Y-m-d',@me)" /]</span></p> |
|
注意:标签是自定义的 dede:prenextdiy