DEDE 시스템에는 "알파벳순 인덱스" 기능이 있습니다
# 🎜 🎜#구현 방법은 다음과 같습니다
첫 번째 단계: 먼저 데이터베이스 구조를 수정하고 병음을 저장할 필드를 추가해야 합니다. (권장 학습:##((((#)#🎜🎜 ## 🎜🎜#dede_archives 테이블을 수정하고 pytitle, varchar(250)을 추가하고 비워둘 수 있습니다. 다음은 테이블을 생성하는 SQL 입니다. 빨간색 부분은 새로운 부분으로, phpmyadmin으로 테이블 구조를 직접 수정하여 구현할 수 있습니다.CREATE TABLE `dede_archives` ( `ID` int(11) unsigned NOT NULL auto_increment, `typeid` int(11) unsigned NOT NULL default ‘0′, `typeid2` int(11) unsigned NOT NULL default ‘0′, `sortrank` int(11) NOT NULL default ‘0′, `iscommend` smallint(6) NOT NULL default ‘0′, `ismake` smallint(6) NOT NULL default ‘0′, `channel` int(11) NOT NULL default ‘1′, `arcrank` smallint(6) NOT NULL default ‘0′, `click` int(11) unsigned NOT NULL default ‘0′, `money` smallint(6) NOT NULL default ‘0′, `title` varchar(80) NOT NULL default ”, `shorttitle` varchar(36) NOT NULL default ”, `color` varchar(10) NOT NULL default ”, `writer` varchar(30) NOT NULL default ”, `source` varchar(50) NOT NULL default ”, `litpic` varchar(100) NOT NULL default ”, `pubdate` int(11) NOT NULL default ‘0′, `senddate` int(11) NOT NULL default ‘0′, `arcatt` smallint(6) NOT NULL default ‘0′, `adminID` int(11) NOT NULL default ‘0′, `memberID` int(11) unsigned NOT NULL default ‘0′, `description` varchar(250) NOT NULL default ”, `keywords` varchar(60) NOT NULL default ”, `templet` varchar(60) NOT NULL default ”, `lastpost` int(11) NOT NULL default ‘0′, `postnum` int(11) NOT NULL default ‘0′, `redirecturl` varchar(150) NOT NULL default ”, `mtype` int(11) NOT NULL default ‘0′, `userip` varchar(20) NOT NULL default ”, `locklikeid` smallint(6) NOT NULL default ‘0′, `likeid` varchar(240) default ”, `pytitle` varchar(250) default NULL, PRIMARY KEY (`ID`), KEY `click` (`click`), KEY `senddate` (`senddate`), KEY `typeid` (`typeid`), KEY `arcrank` (`arcrank`), KEY `sortrank` (`sortrank`), KEY `pubdate` (`pubdate`), KEY `litpic` (`litpic`), KEY `typeid2` (`typeid2`) ) ENGINE=MyISAM DEFAULT CHARSET=gbk;2단계: 기사 제목의 병음 이니셜을 가져와 데이터베이스에 저장합니다.
수정해야 할 파일은 다음과 같습니다.
article_add.php、article_add_action.php、article_edit.php、article_eidt_action.php은 각각 기사를 추가하고 기사를 수정하여 제어되는 4개의 파일입니다.
article_add.php를 다음으로 수정하세요.
<td> <input name=”iscommend” type=”checkbox” id=”iscommend” value=”11″> 推荐 <input name=”isbold” type=”checkbox” id=”isbold” value=”5″> 加粗 <input name=”isjump” type=”checkbox” id=”isjump” value=”1″ onClick=”ShowUrlTr()”> 跳转网址 <input name=”upinyin” type=”checkbox” id=”upinyin” value=”1″ checked=”checked”>保存拼音 </td>병음 저장 옵션을 추가하세요.
article_edit.php를 다음으로 수정하세요.
<td> <input name=”iscommend” type=”checkbox” id=”iscommend” value=”11″<?php if($arcRow["iscommend"]>10) echo ” checked”;?>> 推荐 <input name=”isbold” type=”checkbox” id=”isbold” value=”5″<?php if($arcRow["iscommend"]==5||$arcRow["iscommend"]==16) echo ” checked”;?>> 加粗 <input name=”isjump” onClick=”ShowUrlTrEdit()” type=”checkbox” id=”isjump” value=”1″<?php echo $arcRow["redirecturl"]==”" ? “” : ” checked”;?>> 跳转网址 <input name=”upinyin” type=”checkbox” id=”upinyin” value=”1″<?php if($arcRow["pytitle"]<>”") echo ” checked”;?>> 保存拼音 </td>위와 동일합니다.
artify_add_action.php를 다음으로 수정:
//获得标题的拼音码 if($upinyin==1) $pytitle = str_replace(“_”,”",GetPinyin($title,1)); //加入数据库的SQL语句 //———————————- $inQuery = “INSERT INTO dede_archives( typeid,typeid2,sortrank,iscommend,ismake,channel, arcrank,click,money,title,shorttitle,color,writer,source,litpic, pubdate,senddate,arcatt,adminID,memberID,description,keywords,templet,redirecturl,pytitle) VALUES (‘$typeid’,'$typeid2′,’$sortrank’,'$iscommend’,'$ismake’,'$channelid’, ‘$arcrank’,'0′,’$money’,'$title’,'$shorttitle’,'$color’,'$writer’,'$source’,'$litpic’, ‘$pubdate’,'$senddate’,'$arcatt’,'$adminID’,'0′,’$description’,'$keywords’,'$templet’,'$redirecturl’,‘$pytitle’);”;GetPingyin 시스템 기능을 통해 기사 제목의 병음 이니셜을 가져오고 삽입 문을 생성합니다. 제목 병음의 첫 글자를 pytitle 필드에 저장합니다.
마찬가지로, article_eidt_action.php를 다음과 같이 수정합니다:
//用拼音命名 if($upinyin==1) $pytitle = str_replace(“_”,”",GetPinyin($title,1)); //更新数据库的SQL语句 //———————————- $inQuery = ” update dede_archives set typeid=’$typeid’, typeid2=’$typeid2′, sortrank=’$sortrank’, redirecturl=’$redirecturl’, iscommend=’$iscommend’, ismake=’$ismake’, arcrank=’$arcrank’, money=’$money’, title=’$title’, color=’$color’, writer=’$writer’, source=’$source’, litpic=’$litpic’, pubdate=’$pubdate’, description=’$description’, keywords=’$keywords’, templet=’$templet’, shorttitle=’$shorttitle’, arcatt=’$arcatt’, pytitle=’$pytitle’ where ID=’$ID’; “;세 번째 단계는 홈페이지 템플릿이나 사용해야 하는 기타 템플릿을 수정하는 것입니다. 이 기능.
<div>中文按声母排列:<a href=”/plus/search.php?keyword=a&searchtype=pytitle”>A</a> – <a href=”/plus/search.php?keyword=b&searchtype=pytitle”>B</a> – <a href=”/plus/search.php?keyword=c&searchtype=pytitle”>C</a> – <a href=”/plus/search.php?keyword=d&searchtype=pytitle”>D</a> – <a href=”/plus/search.php?keyword=e&searchtype=pytitle”>E</a> – <a href=”/plus/search.php?keyword=f&searchtype=pytitle”>F</a> – <a href=”/plus/search.php?keyword=g&searchtype=pytitle”>G</a> – <a href=”/plus/search.php?keyword=h&searchtype=pytitle”>H</a> – <a href=”/plus/search.php?keyword=j&searchtype=pytitle”>J</a> – <a href=”/plus/search.php?keyword=k&searchtype=pytitle”>K</a> – <a href=”/plus/search.php?keyword=l&searchtype=pytitle”>L</a> – <a href=”/plus/search.php?keyword=m&searchtype=pytitle”>M</a> – <a href=”/plus/search.php?keyword=n&searchtype=pytitle”>N</a> – <a href=”/plus/search.php?keyword=o&searchtype=pytitle”>O</a> – <a href=”/plus/search.php?keyword=p&searchtype=pytitle”>P</a> – <a href=”/plus/search.php?keyword=q&searchtype=pytitle”>Q</a> – <a href=”/plus/search.php?keyword=r&searchtype=pytitle”>R</a> – <a href=”/plus/search.php?keyword=s&searchtype=pytitle”>S</a> – <a href=”/plus/search.php?keyword=t&searchtype=pytitle”>T</a> – <a href=”/plus/search.php?keyword=w&searchtype=pytitle”>W</a> – <a href=”/plus/search.php?keyword=x&searchtype=pytitle”>X</a> – <a href=”/plus/search.php?keyword=y&searchtype=pytitle”>Y</a> – <a href=”/plus/search.php?keyword=z&searchtype=pytitle”>Z</a> <- 中文软件名按第一汉字声母排列</div>핵심 부분은 키워드=문자&검색 유형=pytitle입니다. 네 번째 단계는 search.php를 통해 검색을 구현하는 것입니다. dedecms는 3자 미만의 검색을 허용하지 않으므로 수정이 필요합니다.
/plus/search.php 파일을 수정합니다. 수정된 부분은 빨간색입니다.
//判断是否为声母搜索 if($searchtype<>”pytitle”){ if($keyword==”"||strlen($keyword)<3){ ShowMsg(“关键字不能小于3个字节!”,”-1″); exit(); } }
다섯 번째 단계, 검색을 수정하고 구현합니다.
Modify /include/inc_arcsearch_view.php, target:문자 키워드 얻기, 새로운 검색 조건 생성, 검색 유형 키워드 얻기($searchtype) , 호출 다양한 디스플레이 템플릿.
자, 계속해서 수정해 보겠습니다. 빨간색 부분은 신규 또는 수정된 부분입니다.GetKeywordSql() 함수를 수정하고 다음을 추가합니다.
//声母搜索支持 if($this->SearchType==”pytitle”){ $kwsql .= ” And dede_archives.pytitle like ‘$this->Keywords%’ “; }
foreach($ks에 넣는 것이 좋습니다. as $k) {…}다음
6번째 단계는 위의 과정을 거쳐 알파벳순 색인을 이루었지만 시스템의 검색 템플릿이 호출되어 시스템의 특성에 적합하지 않습니다. 알파벳순 색인이 필요하므로 한 단계 더 나아가 새로운 템플릿 지원을 추가해야 합니다.1. /include/inc_arcsearch_view.php를 수정하고 __construct() 생성자 함수를 수정합니다. For:
if($this->SearchType==”pytitle”) $tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'].”/”.$GLOBALS['cfg_df_style'].”/”.$GLOBALS['cfg_templets_pysearch']; else $tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'].”/”.$GLOBALS['cfg_df_style'].”/search.htm”;목표는 $searchtype==pytitle일 때 전역 변수 cfg_templets_pysearch로 정의된 템플릿을 호출하는지 결정하는 것입니다. 2. include/config_hand.php 파일을 수정합니다. 전역 변수 cfg_templets_pysearch를 추가합니다.
//拼音搜索模板 $cfg_templets_pysearch = ‘pylist.htm’;그런 다음 템플릿 폴더에 pylist.htm 템플릿을 추가하여 알파벳순 목록의 결과를 표시할 수 있습니다. 7단계, 아직 끝나지 않았습니다. 디스플레이 범위를 제한하려면 어떻게 해야 합니까? 예를 들어, 한 단계 더 나아가기 위해 소프트웨어나 특정 열만 표시하고 싶습니다. 사실 검색은 $typeid(열 번호), $channeltype(문서 유형 번호), $orderby(정렬 방법) 등과 같은 많은 매개 변수를 지원합니다. 이제 무엇을 해야 할지 알았습니다. ?
아직 모릅니다. 예는 다음과 같습니다.
<a href=”/plus/search.php?keyword=a&searchtype=pytitle&typeid=2&$channeltype=3&$orderby=title”>A</a>
위 내용은 Dreamweaver Dedecms는 알파벳순 색인 검색 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!