DedeCMS 是一款功能强大的内容管理系统,以其出色的可定制性和扩展性而闻名。即使您对 PHP 并不熟悉,也可以轻松修改其源代码以满足特定需求。本文将介绍如何在 DedeCMS 中实现中英文双语分页条的自定义,确保分页文本能够根据语言环境动态切换。

问题背景

在开发一个中英双语网站时,我们发现尽管其他部分已经成功适配了双语,但分页条的文本始终显示为中文。为了解决这一问题,我们需要对 DedeCMS 的核心文件进行一些简单的修改。

解决方案

以下是具体的操作步骤:

1. 修改核心文件

打开 `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));
    

接下来,需要对分页条的文本进行多语言支持。例如,将以下代码:

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"; }

    2. 修改模板文件

    打开列表模板页面,例如 `list_article_en.htm`(这是英文版的列表页面模板)。将以下代码:
    
    {dede:pagelist listsize='5'/}
        

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

    完成生成

    保存所有修改后,重新生成列表页面。此时,分页条的文本将根据语言环境自动切换为中文或英文。 通过以上步骤,您可以轻松实现 DedeCMS 网站的中英文双语分页条功能。这种方法不仅简单易行,而且可以有效提升用户体验。希望这篇文章对您有所帮助!