多语言展示
当前在线:1627今日阅读:23今日分享:25

shopex新闻上一篇,下一篇代码

最近用了shopex的系统,大家都知道shop没有完全开源,很多东西做得很保守,有些细节就很粗糙,比如这个新闻就没有上一篇,下一篇这一功能,这对于一般人来说没什么,对于重视SEO的人来说,就是个很大的瑕疵了!
工具/原料
1

FTP

2

Notepad++

方法/步骤
1

用FTP连接网站文件,编辑core-->shop-->controller-->ctl.article.php文件,把下面的代码复制到php结尾处即“?>”前进行粘贴。代码如下://废掉$nodeId参数function getPrevAndNextArticle($currentArticleId, $nodeId=0){//查找上一篇和下一篇的函数 //$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 article_id<$currentArticleId and node_id = (select node_id from '.DB_PREFIX.'articles where article_id=$currentArticleId) ORDER BY article_id DESC LIMIT 0,1'; echo $sql_prev; $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 article_id>$currentArticleId and node_id = (select node_id from '.DB_PREFIX.'articles where article_id=$currentArticleId) ORDER BY article_id ASC LIMIT 0,1'; $result = mysql_query($sql_next) or die('
Query failed: ' . $sql_next); $next = mysql_fetch_array($result, MYSQL_ASSOC); mysql_free_result($result);// 释放结果集 //mysql_close($link);//不能关闭连接,否则页面空白 return array('prev'=>$prev, 'next'=>$next);}

2

在上面的文件中找到“$this->pagedata['article']['content'] = implode('',$tmpContent);”这代码的位置,在这个代码的下面粘贴以下代码:$this->pagedata['extra'] =getPrevAndNextArticle($articleid);

3

最后就是去模板页调用了,模板页的位置是core-->shop--->view--->article.html,在合适的位置放以下代码: 

上一篇:<{if $extra.prev}><{$extra.prev.title}><{else}>没有了<{/if}>

 

下一篇:<{if $extra.next}><{$extra.next.title}><{else}>没有了<{/if}>

4

调用的最终结果见下图!

注意事项

我当前用的是4.8.5版本,如果其它版本不能保证有效,可以在此代码的基础上修改~

推荐信息