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

时间:2021-05-02

我们先测试一下读取子类

复制代码

代码如下:


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

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

增加字段如图

取第一个给刚加的字段 first_l

  • update`dede_arctype`setfirst_word=substr(typename,1,1)

  • functiongetfristword($tid)

  • {

  • $str='';

  • $tid=intval($tid);

  • $dsql=newDedesql(false);

  • $sql="select`first_word`fromdede_arctypewheretopid='$tid'groupbyfirst_word";

  • $dsql->SetQuery($sql);

  • $dsql->Execute('hw');

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

  • {

  • if($row['first_word'])

  • {

  • $wd=$row['first_word'];

  • $sql="select*fromdede_arctypewheretopid=$tidandfirst_word='$wd'";

  • $dsql->SetQuery($sql);

  • $dsql->Execute('wd');

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

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

  • {

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

  • }

  • }

  • }

  • return$str;

  • }

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

    复制代码

    代码如下:


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

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

    如图


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

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

    好了看看最终效果

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章