Le système DEDE a la fonction "index alphabétique"
La méthode de mise en œuvre est la suivante
Première étape : Tout d'abord, vous devez modifier la structure de la base de données et ajouter un champ pour stocker le pinyin. (Apprentissage recommandé : Dreaming CMS )
Modifier la table DEDE_ARCHIVES, ajouter pytitle, varchar (250), permet d'être vide. Ce qui suit est le SQL pour créer la table, à titre de référence uniquement. La partie rouge est la nouvelle partie, qui peut être implémentée en modifiant directement la structure de la table avec 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;
Les fichiers qui doivent être modifiés sont :
article_add.php、article_add_action.php、article_edit.php、article_eidt_action.php
Modifiez article_add.php en :
<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>
Modifiez article_edit.php en :
<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>
Modifiez article_add_action.php en :
//获得标题的拼音码 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’);”;
De même, modifiez article_eidt_action.php en :
//用拼音命名 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>
Modifiez le fichier /plus/search.php, la partie modifiée est en rouge :
//判断是否为声母搜索 if($searchtype<>”pytitle”){ if($keyword==”"||strlen($keyword)<3){ ShowMsg(“关键字不能小于3个字节!”,”-1″); exit(); } }
La cinquième étape consiste à modifier et mettre en œuvre la recherche.
Modifier /include/inc_arcsearch_view.php, objectif : Obtenir des mots-clés de lettres, générer de nouvelles conditions de recherche, obtenir des mots-clés de type de recherche ($searchtype) et appeler différents modèles d'affichage. Bon, continuons à modifier. Les modifications sont les suivantes. Les parties rouges sont les pièces nouvelles ou modifiées.Modifiez la fonction GetKeywordSql() et ajoutez :
//声母搜索支持 if($this->SearchType==”pytitle”){ $kwsql .= ” And dede_archives.pytitle like ‘$this->Keywords%’ “; }
Il est recommandé de le placer sous foreach($ks as $k){…}
Étape six, à travers ce qui précède, l'indexation alphabétique a été implémentée, mais le modèle de recherche du système est appelé, ce qui n'est pas adapté aux caractéristiques de l'indexation alphabétique, nous devons donc aller plus loin et ajouter un nouveau support de modèle. 1. Modifiez /include/inc_arcsearch_view.php et modifiez le constructeur de la fonction __construct(). Pour :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’;
Je ne sais pas encore, voici un exemple :
<a href=”/plus/search.php?keyword=a&searchtype=pytitle&typeid=2&$channeltype=3&$orderby=title”>A</a>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!