ShopEx文章页添加上一篇下一篇功能

ShopEx文章页添加上一篇下一篇功能

在全部的文章页中,会常常发现都会有这么一个功能。能引导用户去查看上一篇文章或下一篇文章,而在ShopEx中,我DEZEND了一下文章模型。并没有找到上一篇这种函数功能,因此,这就须要我们手动在相应的文章控制器中自己去加入一个这种功能。

文章控制器相应文件:\core\shop\controller\ctl.article.php

找到这个文件。我们须要操作的就是在这个文件尾加一个我们自己的函数例如以下:

function getPrevAndNextArticle($currentArticleId, $nodeId){//查找上一篇和下一篇的函数
$nodeId = $nodeId == ''?0:$nodeId;
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die('Could not connect: ' . mysql_error());
mysql_select_db(DB_NAME) or die('Could not select database');
//查找上一篇
$sql_prev = "SELECT * FROM ".DB_PREFIX."articles WHERE ifpub='1' AND
node_id=$nodeId AND
article_id<$currentArticleId ORDER BY article_id DESC LIMIT 0,1";
$result = mysql_query($sql_prev) or die('Query failed: ' . $sql_prev);
$prev = mysql_fetch_array($result, MYSQL_ASSOC);
mysql_free_result($result);// 释放结果集
//查找下一篇
$sql_next = "SELECT * FROM ".DB_PREFIX."articles WHERE ifpub='1' AND
node_id=$nodeId AND
article_id>$currentArticleId ORDER BY article_id ASC LIMIT 0,1";
$result = mysql_query($sql_next) or die('<br/>Query failed: ' . $sql_next);
$next = mysql_fetch_array($result, MYSQL_ASSOC);
mysql_free_result($result);// 释放结果集
//mysql_close($link);//不能关闭连接。否则页面空白
return array('prev'=>$prev, 'next'=>$next);
}

添加完这个函数以后。就须要在Index()函数中引用,添加下面代码

$this->pagedata['extra'] = $this->getPrevAndNextArticle($articleid, $this->pagedata['article']['node_id']);

控制器这样就完毕了。接下来须要操作的就是改动模板

找到适当的位置,加入下面代码

上一篇:<{if $extra.prev}><a href="/?article-<{$extra.prev.article_id}>.html"><{$extra.prev.title}></a><{else}>没有了<{/if}>
下一篇:<{if $extra.next}><a href="/? article-<{$extra.next.article_id}>.html"><{$extra.next.title}></a><{else}>没有了<{/if}>

好了,这样上一篇下一篇功能已经实现,赶快动手改动吧~

上一篇:WorldWind源码剖析系列:影像存储类ImageStore、Nlt影像存储类NltImageStore和WMS影像存储类WmsImageStore


下一篇:cocos2d-x 卡牌翻牌效果的实现