DEDE系統帶「字母索引」功能
實作方法如下
需要修改的檔案有:article_add.php、article_add_action.php、article_edit.php、article_eidt_action.php
分別為新增文章和修改文章控制的四個檔案。
修改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>
#道理同上。
修改article_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取得文章標題的拼音首字母,並產生insert語句,保存標題拼音首字母到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>
其中關鍵部分為keyword=字母&searchtype=pytitle。
第四步,我們透過search.php實現搜索,dedecms不允許小於3個字元的搜索,因此我們要修改它。
修改/plus/search.php文件,修改的部分為紅色://判断是否为声母搜索 if($searchtype<>”pytitle”){ if($keyword==”"||strlen($keyword)<3){ ShowMsg(“关键字不能小于3个字节!”,”-1″); exit(); } }
第五步,修改並實現搜尋。
修改/include/inc_arcsearch_view.php,目標:#取得字母關鍵字,產生新的檢索條件,取得搜尋類型關鍵字($searchtype),呼叫不同的顯示模板。
好的,我們繼續修改,修改如下,紅色部分為新增或修改的部分。
修改function GetKeywordSql()函數,新增://声母搜索支持 if($this->SearchType==”pytitle”){ $kwsql .= ” And dede_archives.pytitle like ‘$this->Keywords%’ “; }
建議放在foreach($ks as $k){…}下面
第六步,透過上面,已經實現了按字母索引,但是調用的是系統的搜尋模板,不適合按照字母索引的特點,因此我們需要更進一步,增加新的模板支援。 1、修改/include/inc_arcsearch_view.php,修改function __construct()建構子。為:
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模板,來顯示字母列表的結果了。
第七步,事情還沒結束。要是我希望限制顯示的範圍怎麼辦?例如我只想顯示軟體的,或是某個欄位目的這麼顯示,更進一步。
其實search支援很多參數,例如$typeid(欄位編號)、$channeltype(文章類型編號)、$orderby(排序方法)等,現在你知道怎麼辦了吧?
還不知道,以下是一個例子:<a href=”/plus/search.php?keyword=a&searchtype=pytitle&typeid=2&$channeltype=3&$orderby=title”>A</a>
以上是織夢dedecms實現字母索引搜尋功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能