日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

织梦dedecms实现按照字母搜索的实现方法

發布時間:2025/3/19 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 织梦dedecms实现按照字母搜索的实现方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目前織夢dedecms v5.7已正式發布,但在實際的使用環境中往往我們需要進行一些特定功能的實現,比如按照字母搜索等,下面我們來說一下該功能是如何實現的,主要的方法就是提取發布資源中第一個字母,存儲到數據表中,然后進行索引。

DedeCMS 基于PHP和MySQL技術開發,可同時使用于Windows、Linux、Unix平臺,環境需求如下:

1、Windows 平臺:
IIS/Apache + PHP4/PHP5 + MySQL3/4/5
如果在windows環境中使用,建議用DedeCMS提供的DedeAMPZ套件以達到最佳使用性能。

2、Linux/Unix 平臺
Apache + PHP4/PHP5 + MySQL3/4/5 (PHP必須在非安全模式下運行)

建議使用平臺:Linux + Apache2.2 + PHP5.2 + MySQL5.0

織夢版本為5.7 GBK 其他沒有測試
在進行本操作之前 要先備份數據庫
首先 要添加數據庫字段
ALTER TABLE `dede_archives` ADD `fpy` VARCHAR( 40 ) NOT NULL AFTER `weight` ;
用于保存標題的第一個字母的拼音
打開dede/templets/article_add.htm大概在136行 (</td>上面)添加以下代碼提示是否保存
<input name="F_PY" type="checkbox" id="S_PY" class="np" value="1" checked="checked">保存拼音
同理在article_edit.htm也需要添加
打開dede/article_add.php 在102行以下添加$fpy=$F_PY==1 ? str_replace('_','',GetPinyin(stripslashes

($title),1)) : '';用于獲得標題的拼音 找到191行 ,對剛新建的字段進行賦值,相信大家都會的:
將原來的 $query = "INSERT INTO `dede_archives`

(id,typeid,typeid2,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,sour

ce,litpic,pubdate,senddate,mid,voteid,notpost,description,keywords,filename,dutyadmin,weight) VALUES

('$arcID','$typeid','$typeid2','$sortrank','$flag','$ismake','$channelid','$arcrank','$click','$money'

,'$title','$shorttitle','$color','$writer','$source','$litpic','$pubdate','$senddate','$adminid','$vot

eid','$notpost','$description','$keywords','$filename','$adminid','$weight');";
改為
$query = "INSERT INTO dede_archives`

(id,typeid,typeid2,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,sour

ce,litpic,pubdate,senddate,mid,voteid,notpost,description,keywords,filename,dutyadmin,weight,fpy)

VALUES

('$arcID','$typeid','$typeid2','$sortrank','$flag','$ismake','$channelid','$arcrank','$click','$money'

,'$title','$shorttitle','$color','$writer','$source','$litpic','$pubdate','$senddate',

'$adminid','$voteid','$notpost','$description','$keywords','$filename','$adminid','$weight','$fpy');";

你應該能看懂的。

到此 在你添加文章的時候 標題拼音會自動保存的。


接下來 就要看search.php了
為了 調用方便 我寫了個標簽 只需要在調用的地方添加 {dede:letter /} (include/tablib) 新建letter.lib.php
<?php
if(!defined('DEDEINC'))
{
exit("Request Error!");
}
function lib_letter(&$ctag,&$refObj)
{
global $dsql,$sqlCt,$cfg_soft_lang,$cfg_indexurl;
$attlist="letter|A,row|26";
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);

$letter='';
$le_end=64+$row;
for($i=65;$i<=$le_end;$i++){
$letter.="<a href='$cfg_indexurl/plus/search.php?keyword=".strtolower(chr

($i))."&searchtype=pytitle'>".chr($i)."</a> ";
}
return $letter;
}
?>

最后也是最關鍵的一部 更改search.php 默認的是不能小于2個字符的
找到plus/search.php
將if(($keyword=='' || strlen($keyword)<2) && empty($typeid))
{
ShowMsg('關鍵字不能小于2個字節!','-1');
exit();
}改為if($searchtype<>'pytitle'){
if(($keyword=='' || strlen($keyword)<2) && empty($typeid))
{
ShowMsg('關鍵字不能小于2個字節!','-1');
exit();
}
}即可

找到include/arc.searchview.class.php
首先要設置sql語句 函數GetKeywordSql
找到if($this->SearchType=="title"){
$kwsqls[] = " arc.title LIKE '%$k%' ";
}else{
$kwsqls[] = " CONCAT(arc.title,' ',arc.writer,' ',arc.keywords) LIKE '%$k%' ";
}改為:
if($this->SearchType=="title"){
$kwsqls[] = " arc.title LIKE '%$k%' ";
}else if($this->SearchType=='pytitle'){
$kwsqls[] = " CONCAT(arc.title,' ',arc.keywords,' ',arc.fpy) LIKE '%$k%' ";
}else{
$kwsqls[] = " CONCAT(arc.title,' ',arc.writer,' ',arc.keywords) LIKE '%$k%' ";
}

在此函數下 添加函數:
function Getletter($num=26,$t,$k){
global $cfg_indexurl;
$le_end=64+$num;
for($i=65;$i<=$le_end;$i++){
if(ord(strtoupper($k))==$i){
$letter.="<a style='background:#000;color:#fff'

href='$cfg_indexurl/plus/search.php?keyword=".strtolower(chr($i))."&searchtype=pytitle'>".chr

($i)."</a> ";
continue;
}
$letter.="<a href='$cfg_indexurl/plus/search.php?keyword=".strtolower(chr

($i))."&searchtype=pytitle'>".chr($i)."</a> ";
}
return $letter;
}
作用就是 讓當前搜索的字母 加亮顯示

設置search的底層模板的標簽 display函數
在 else if($tagname=="likewords")
{
$this->dtp->Assign($tagid,$this->GetLikeWords($ctag->GetAtt('num')));
}下添加
else if($tagname=='letter' and $this->SearchType=='pytitle'){
$this->dtp->Assign($tagid,$this->Getletter($num=26,$this->SearchType,$this-

>Keyword));
}

到此 結束,哈哈,,其實也不是很難的。記住千萬要記得備份你原來的程序啊!

?相關文章:http://www.ithov.com/master/115647.shtml

總結

以上是生活随笔為你收集整理的织梦dedecms实现按照字母搜索的实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品视频久久久 | 女人脱下裤子让男人捅 | 人妖被c到高潮欧美gay | 激情综合网站 | 国产精品卡一卡二 | 丝袜调教91porn| 人人做人人爱人人爽 | 色老头在线一区二区三区 | 你操综合| 久久激情网 | 美国黄色一级毛片 | 深夜国产视频 | 亚洲久久成人 | 四虎影库| 波多野结衣在线播放视频 | 97国产高清 | 欧美69久成人做爰视频 | 日本熟妇色xxxxx日本免费看 | 在线麻豆av | 国产91热爆ts人妖系列 | 嫩草影院一区二区 | 影音先锋啪啪 | 91久久精品国产91性色tv | 人妻体体内射精一区二区 | 亚洲一区二区黄色 | 久操成人| www.xxxxx日本 | 久久片| 在线理论视频 | 草逼视频网站 | 色噜噜视频 | 日韩毛片在线免费观看 | 国产日韩欧美 | 爱爱小视频免费看 | 91在线视频网址 | 女生张开腿给男生桶 | av尤物| 日本黄区免费视频观看 | 亚洲成人生活片 | 国产精品对白刺激久久久 | 少妇精品导航 | av手机网站 | 四虎影视永久免费 | 国产精品欧美久久久久天天影视 | 欧美成人精品激情在线视频 | 国产精品呻吟久久 | 欧美日韩一二三四 | 在线观看一区视频 | 图书馆的女友动漫在线观看 | 国产伦精品一区二区三区视频免费 | av资源在线播放 | 久久黄色一级片 | 国产愉拍 | 免费看裸体网站 | 色婷婷综合激情 | 欧美日韩一卡二卡 | 免费美女毛片 | 精品免费国产一区二区三区 | 三年电影在线观看 | 国产精品久久777777 | 极品av在线 | 久久av免费 | 日韩第四页 | 国产精品嫩草69影院 | 一级黄色片免费看 | 欧美在线不卡视频 | 久久爱99| 日日射夜夜操 | 91精品国产日韩91久久久久久 | 老司机综合网 | 欧美极品一区二区三区 | 亚洲综合另类小说 | 久久91| 欧美一级一级一级 | 91视频网页| 亚洲春色另类 | 91在线日韩| 欧美色v | 五月天中文字幕 | 影音先锋中文字幕在线播放 | 日韩电影一区二区三区 | 日韩激情| 欧美丰满少妇人妻精品 | 日韩一区二区免费视频 | 色婷婷激情av | japan高清日本乱xxxxx | np视频 | 四虎免费久久 | 国产精品www在线观看 | 日本一级吃奶淫片免费 | 中文字幕第八页 | 日韩三级中文字幕 | 国产精品成人自拍 | 天堂亚洲精品 | 天天爽天天| 色先锋av| av之家在线| 国产毛片99 | 亚洲九色 |