详细介绍:https://eyou.5ee.net/eyou_rczj/511.html
演示地址:https://eyou.5ee.net/tags
思路
图片不完整请进详细介绍地址查看
此方法有瑕疵,并不是很完美,因为不懂PHP,有能力的希望帮忙优化一下首字母获取的一个方案。
话不多说教程开始,快准狠。
本教程在eyoucms1.5.8 ,静态tag下可使用。其他请自测
第一步:数据库如何进行首字母获取(数据库使用为可视化操作)
1、在数据表ey_tagindex中新建一个字段 initial 做为首字母字段
2、新建一个定时器 用来每日执行sql代码,进行每日更新一次tag首字母。(这个地方官方的多城市获取首字母方式我不知道,有能力改成php应该执行效率更好)
(如何开启这个事件状态呢?)
要么百度,要么按照我这个方式来
my.ini的[mysqld]下加上一行event_scheduler=ON
宝塔环境。
然后就可以了。
进行添加事件
每天更新的意思。
定义里面放sql语句,复制黏贴即可
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分时自动更新,查看数据
自动更新首字母大概就这样完成了,缺点就是不能实时更新,当然也能,每小时定时就行了,就是执行效率不高。
第二步:TAG主页模板代码(适用城市站里面加了注释)
代码多就不贴出来了,放附件。
index_tags.zip