目前織夢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行 (上面)新增以下**提示是否儲存
儲存拼音
同理在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了
為了 呼叫方便 我寫了個標籤 只需要在呼叫的地方新增 (include/tablib) 新建letter.lib.php
<?php
if(!defined('dedeinc'))
function lib_letter(&$ctag,&$refobj)
return $letter;
}?>
最後也是最關鍵的一部 更改search.php 預設的是不能小於2個字元的
找到plus/search.php
將if(($keyword=='' || strlen($keyword)<2) && empty($typeid))
改為if($searchtype<>'pytitle')
}即可找到include/arc.searchview.class.php
首先要設定sql語句 函式getkeywordsql
找到if($this->searchtype=="title")else改為:
if($this->searchtype=="title")else if($this->searchtype=='pytitle')else
在此函式下 新增函式:
function getletter($num=26,$t,$k)
$letter.="".chr($i)." ";
}return $letter;
}作用就是 讓當前搜尋的字母 加亮顯示
設定search的底層模板的標籤 display函式
在 else if($tagname=="likewords")
下新增else if($tagname=='letter' and $this->searchtype=='pytitle')
到此 結束,哈哈,,其實也不是很難的。記住千萬要記得備份你原來的程式啊!
dedecms 織夢 整合discuz
所用版本 dedecms 5.7 discuz x2.5 sc utf8 如何完成dedecms模板系統與discuz論壇整合呢?這裡的整合指會員資訊,會員登陸 退出的同步 論壇資訊的引用 等等。首先,我們先來安裝織夢 dedecms 系統。然後,我們在 根目錄下建乙個bbs資料夾,將discuz ...
織夢dedecms自動編號
專欄入口下的欄目需要不同的顏色,我們這裡用到了自動編號,每個編號定義不同的顏色。我們先看一下自動編號的用法 1 簡介 自動編號屬性 autoindex和itemindex 在列表迴圈中自增的乙個編號,預設從0開始。在dedecms中以下三個標籤含有這個屬性。arclist 標籤下使用 field g...
織夢dedecms自動編號
專欄入口下的欄目需要不同的顏色,我們這裡用到了自動編號,每個編號定義不同的顏色。我們先看一下自動編號的用法 1 簡介 自動編號屬性 autoindex和itemindex 在列表迴圈中自增的乙個編號,預設從0開始。在dedecms中以下三個標籤含有這個屬性。arclist 標籤下使用 field g...