• 懒鸟飞:精品网站源码、帝国cms模板专业分享平台

织梦dedecms实现上一篇下一篇中英文显示

用织梦dedecms建设时,在文章内容页中,默认调用的上一篇、下一篇都是汉字,如下图:


 
但在英文内容页中,通常也是中文的上一篇、下一篇,通常我们希望英文内容页显示英文的Preview、Next ,如下图:


本文就来讲解一下,用织梦做中英双语网站时,英文内容页调用上一篇、下一篇英文显示的方法。方法原理:需要对织梦分页文件底层代码部分的修改,具体方法如下:
 
1、需要修改includearc.archives.class.php 文件
 
(1)打开includearc.archives.class.php,找到
 
$this->dtp->Assign($i,$this->GetPreNext($ctag->GetAtt('get')));
 
更改为
 
$this->dtp->Assign($i,$this->GetPreNext($ctag->GetAtt('get'), $ctag->GetAtt('sitelang')));
 
(2)找函数 GetPreNext 找到
 
function GetPreNext($gtype='')
 
更改为
 
function GetPreNext($gtype='', $site_lang)
 
(3)需要增加判断代码了直接在
 
function GetPreNext($gtype='', $site_lang)
 
{
//添加在这里
 
$str_pre = '';
 
$str_next = '';
 
$str_pre_words = '';
 
$str_next_words = ''; 
 
if($site_lang == 'cn')
{
 
$str_pre = '上一篇';
 
$str_next = '下一篇';
 
$str_pre_words = '上一篇:没有了';
 
$str_next_words = '下一篇:没有了';
 
}elseif($site_lang == 'en')
 
{
 
$str_pre = 'Preview';
 
$str_next = 'Next';
 
$str_pre_words = 'Preview:no';
 
$str_next_words = 'Next:no';
 
 
//到这里结束,上面是添加的代码,下面是正常的代码
 
$rs = '';...........}
 
 
(4)将 if(is_array($preRow)) 里面的上一篇下一篇 上一篇:没有了,下一篇:没有换成变量。
 
找到
 
$this->PreNext['pre'] = "上一篇:<a href='$mlink'>{$preRow['title']}</a> ";
 
改为
 
$this->PreNext['pre'] = $str_pre .":<a href='$mlink'>{$preRow['title']}</a> ";
 
找到
 
$this->PreNext['pre'] = "上一篇:没有了 ";
 
改为
 
$this->PreNext['pre'] = $str_pre_words;
 
找到
 
$this->PreNext['next'] = "下一篇:<a href='$mlink'>{$nextRow['title']}</a> ";
 
改为
 
$this->PreNext['next'] = $str_next . ":<a href='$mlink'>{$nextRow['title']}</a> ";
 
找到
 
$this->PreNext['next'] = "下一篇:没有了 ";
 
改为
 
$this->PreNext['next'] = $str_next_words;
 
 
 
到此为止,英文上一篇下一篇的代码已经添加完成。
 
 
 
 
 
2、在前台模板页面如何调用中英文上一篇下一篇
 
(1)打开你的英文内容页模板,以默认模板为例:打开templetsdefaultarticle_article.htm,找到调用上一篇、下一篇的代码:
 
<li>{dede:prenext get='pre'/}</li>
 
<li>{dede:prenext get='next'/}</li>
 
 
(2)如果是中文站的内容页,就更改为:
 
<li>{dede:prenext get='pre' sitelang='cn'/}</li>
 
<li>{dede:prenext get='next' sitelang='cn'/}</li>
 
 
(3)如果是英文站的内容页,就更改为:
<li>{dede:prenext get='pre' sitelang='en'/}</li>
 
<li>{dede:prenext get='next' sitelang='en'/}</li>
 
 
做完以上工作后,调用上一篇下一篇的代码,在不同内容页中显示的中英文就可以指定了。
 
QQ在线咨询
QQ客服
淘宝官网