詳細(xì)介紹:https://eyou.5ee.net/eyou_rczj/511.html
演示地址:https://eyou.5ee.net/tags
思路
圖片不完整請進(jìn)詳細(xì)介紹地址查看
此方法有瑕疵,并不是很完美,因?yàn)椴欢甈HP,有能力的希望幫忙優(yōu)化一下首字母獲取的一個(gè)方案。
話不多說教程開始,快準(zhǔn)狠。
本教程在eyoucms1.5.8 ,靜態(tài)tag下可使用。其他請自測
第一步:數(shù)據(jù)庫如何進(jìn)行首字母獲取(數(shù)據(jù)庫使用為可視化操作)
1、在數(shù)據(jù)表ey_tagindex中新建一個(gè)字段 initial 做為首字母字段
2、新建一個(gè)定時(shí)器 用來每日執(zhí)行sql代碼,進(jìn)行每日更新一次tag首字母。(這個(gè)地方官方的多城市獲取首字母方式我不知道,有能力改成php應(yīng)該執(zhí)行效率更好)
(如何開啟這個(gè)事件狀態(tài)呢?)
要么百度,要么按照我這個(gè)方式來
my.ini的[mysqld]下加上一行event_scheduler=ON
寶塔環(huán)境。
然后就可以了。
進(jìn)行添加事件
每天更新的意思。
定義里面放sql語句,復(fù)制黏貼即可
update ey_tagindex as u
INNER JOIN
(
select tag ,
ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(tag USING gbk),1)),16,10),0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,
0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,0xC8F6,0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1),
'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P',
'Q','R','S','T','W','X','Y','Z')
AS `initial` FROM ey_tagindex WHERE LEFT(tag,1) NOT IN ('A','B','C','D','E','F','G','H','J','K','L','M','N','O','P',
'Q','R','S','T','W','X','Y','Z')
)
as r
on u.tag = r.tag
set u.initial= r.initial
37分時(shí)自動更新,查看數(shù)據(jù)
自動更新首字母大概就這樣完成了,缺點(diǎn)就是不能實(shí)時(shí)更新,當(dāng)然也能,每小時(shí)定時(shí)就行了,就是執(zhí)行效率不高。
第二步:TAG主頁模板代碼(適用城市站里面加了注釋)
代碼多就不貼出來了,放附件。
index_tags.zip