Das DEDE-System verfügt über die Funktion „alphabetischer Index“
Die Implementierungsmethode ist wie folgt
Schritt eins: Zuerst müssen Sie die Datenbankstruktur ändern und ein Feld zum Speichern von Pinyin hinzufügen. (Empfohlenes Lernen: Dreaming CMS )
Ändern Sie die Tabelle DEDE_ARCHIVES, fügen Sie pytitle und varchar (250) hinzu und lassen Sie sie leer sein. Das Folgende ist die SQL zum Erstellen der Tabelle, nur als Referenz. Der rote Teil ist der neue Teil, der durch direktes Ändern der Tabellenstruktur mit phpmyadmin implementiert werden kann.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;
Die Dateien, die geändert werden müssen, sind:
article_add.php、article_add_action.php、article_edit.php、article_eidt_action.php
Artikel_add.php ändern in:
<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>
Artikel_edit.php ändern in:
<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>
Artikel_add_action.php ändern in:
//获得标题的拼音码 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’);”;
Ändern Sie auch Article_eidt_action.php wie folgt:
//用拼音命名 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>
Ändern Sie die Datei /plus/search.php, der geänderte Teil ist rot:
//判断是否为声母搜索 if($searchtype<>”pytitle”){ if($keyword==”"||strlen($keyword)<3){ ShowMsg(“关键字不能小于3个字节!”,”-1″); exit(); } }
Der fünfte Schritt besteht darin, die Suche zu ändern und zu implementieren.
Ändern /include/inc_arcsearch_view.php, Ziel: Buchstabenschlüsselwörter abrufen, neue Suchbedingungen generieren, Suchtypschlüsselwörter abrufen ($searchtype), verschiedene Anzeigevorlagen aufrufen. Okay, lasst uns mit den Änderungen fortfahren. Die roten Teile sind die neuen oder geänderten Teile.Ändern Sie die Funktion GetKeywordSql() und fügen Sie hinzu:
//声母搜索支持 if($this->SearchType==”pytitle”){ $kwsql .= ” And dede_archives.pytitle like ‘$this->Keywords%’ “; }
Es wird empfohlen, sie unter foreach($ks as $k){…} zu platzieren.
Schritt sechs: Durch das oben Gesagte wurde die alphabetische Indizierung implementiert, es wird jedoch die Suchvorlage des Systems aufgerufen, die nicht für die alphabetische Indizierung geeignet ist. Daher müssen wir noch einen Schritt weiter gehen und eine neue Vorlage hinzufügen Unterstützung. 1. Ändern Sie /include/inc_arcsearch_view.php und ändern Sie den Konstruktor der Funktion __construct(). Für: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”;
//拼音搜索模板 $cfg_templets_pysearch = ‘pylist.htm’;
Weiß ich noch nicht, hier ist ein Beispiel:
<a href=”/plus/search.php?keyword=a&searchtype=pytitle&typeid=2&$channeltype=3&$orderby=title”>A</a>
Das obige ist der detaillierte Inhalt vonDreamweaver dedecms implementiert eine alphabetische Indexsuchfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!