优选主流主机商
任何主机均需规范使用

高效实现dedecms按栏目首字母/数字排序输出的实用技巧揭秘

我们先测试一下读取子类 

代码如下:

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文件,我们在这里增加自定义函数。

未经允许不得转载:搬瓦工中文网 » 高效实现dedecms按栏目首字母/数字排序输出的实用技巧揭秘