第一步:修改数据库结构
首先需要调整数据库以支持拼音字段。具体来说,要在dede_archives表中新增一个名为pytitle的字段,类型为varchar(250),允许为空值。以下是创建该字段的SQL语句:
CREATE TABLE `dede_archives` (
`ID` int(11) unsigned NOT NULL auto_increment,
...
`pytitle` varchar(250) default NULL,
PRIMARY KEY (`ID`),
...
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
第二步:获取并保存拼音首字母
接下来需要修改几个关键文件以获取文章标题的拼音首字母,并将其保存到数据库中。这些文件包括article_add.php、article_add_action.php、article_edit.php和article_eidt_action.php。 例如,在article_add.php中添加以下代码片段,增加一个保存拼音的选项:
保存拼音
//获得标题的拼音码
if($upinyin==1) $pytitle = str_replace("_","",GetPinyin($title,1));
第三步:修改模板
编辑首页或相关页面模板,插入按字母排列的链接。例如:
第四步:调整搜索限制
由于Dedecms默认不允许少于三个字符的搜索请求,因此需要修改/plus/search.php文件中的相关部分:
//判断是否为声母搜索
if($searchtype<>"pytitle"){
if($keyword==""||strlen($keyword)<3){
ShowMsg("关键字不能小于3个字节!","-1");
exit();
}
}
第五步:实现搜索功能
最后,修改/include/inc_arcsearch_view.php文件,确保能够根据拼音进行搜索。重点在于调整GetKeywordSql()函数:
//声母搜索支持
if($this->SearchType=="pytitle"){
$kwsql .= " And dede_archives.pytitle like '$this->Keywords%' ";
}