服务器之家

服务器之家 > 正文

dedecms按栏目名首字母/数字排序输出的实现方法

时间:2019-09-16 21:37     来源/作者:织梦教程网

我们先测试一下读取子类 

复制代码

代码如下:


SELECT substr(typename,1,1) FROM `dede_arctype` WHERE topid>0 

 

好了现在正式开始增加字段

增加字段如图

取第一个给刚加的字段 first_l

  1. update `dede_arctype` set first_word=substr( typename,1,1)  

  1. function getfristword( $tid )  

  2. {  

  3. $str ='';  

  4. $tid = intval( $tid );  

  5. $dsql = new Dedesql(false);  

  6. $sql ="select `first_word` from dede_arctype where topid='$tid' group by first_word";  

  7. $dsql->SetQuery($sql);  

  8. $dsql->Execute('hw');  

  9. while($row=$dsql->GetArray('hw'))  

  10. {  

  11. if($row['first_word'])  

  12. {  

  13. $wd =$row['first_word'];  

  14. $sql = "select * from dede_arctype where topid=$tid and first_word= '$wd' ";  

  15. $dsql->SetQuery($sql);  

  16. $dsql->Execute('wd');  

  17. $str .='<div class="ku1_left">'.strtoupper($wd).'开头</div>';  

  18. while( $rs = $dsql->GetArray('wd') )  

  19. {  

  20. $str .='<a href="'.str_replace('{cmspath}','',$rs['typedir']).'" title="'.str_replace('下载','',$rs['typename']).'手机主题" target="_blank">'.$rs['typename'].'</a>';  

  21. }  

  22. }  

  23. }  

  24. return $str;  

  25. }  

写好后,我们找到调用栏目的模板 
jx.html里面这样写 

复制代码

代码如下:


{dede:field.id function="getfristword(@me)"/} 这里是讲把当前栏目的id给getfirestword(); 

 

 

提示影响了 420 行。 ( 查询花费 0.0176 秒 ) 代码成功了,现在查看

如图


现在打开 dedecms的/include/channelunit.func.php文件,我们在这里增加自定义函数

 

好了我们的效果就出来了如图

好了看看最终效果

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-07-24
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
返回顶部