在使用Dedecms进行多语言网站开发时,常常需要对分页功能进行自定义设置。以下是一个详细的教程,帮助您实现英文和中文的分页显示。

首先,打开include/arc.listview.class.php文件(以Dedecms 5.6版本为例)。

找到大约第29行:
var $remoteDir;
在其下方新增一行:
var $pagelang;

接着,找到大约第528行:

$list_len = trim($ctag->GetAtt("listsize"));
在其下方新增一行:
$pagelang = trim($ctag->GetAtt("pagelang"));

然后,找到大约第531行:

if($list_len=="") {
    $list_len = 3;
}
在其下方添加:
if($pagelang=="") {
    $pagelang = 'cn';
}

修改大约第545行:

$this->dtp->Assign($tagid,$this->GetPageListST($list_len,$listitem));
修改为:
$this->dtp->Assign($tagid,$this->GetPageListST($list_len,$listitem,$pagelang));

接下来,修改函数定义:

function GetPageListST($list_len,$listitem="index,end,pre,next,pageno")
修改为:
function GetPageListST($list_len,$listitem="index,end,pre,next,pageno",$pagelang='cn')

最后,修改大约第826行:

return "
  • 1".$this->TotalResult." 条记录
  • \\r\\n";
    修改为:
    if($pagelang=='cn') { 
        return "
  • 1".$this->TotalResult." 条记录
  • \\r\\n"; } else { return "
  • Total 1 Page  ".$this->TotalResult." Records
  • \\r\\n"; }

    按照上述方法,依次修改获取上一页、主页、下一页、末页的内容。

    完成以上步骤后,打开列表模板页面,例如list_article_en.htm(英文版列表页面模板),将:

    {dede:pagelist listsize='5'/}
    修改为:
    {dede:pagelist pagelang='en' listsize='5'/}

    重新生成列表页即可成功实现多语言分页功能。此方法已在Dedecms 5.7版本中测试通过。