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