好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

我们先测试一下读取子类 

复制代码

代码如下:


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

 

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

增加字段如图

取第一个给刚加的字段 first_l

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

function  getfristword( $tid )  

{  

$str = '' ;  

$tid = intval( $tid );  

$dsql =  new  Dedesql( false );  

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

$dsql->SetQuery($sql);  

$dsql->Execute( 'hw' );  

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

{  

if ($row[ 'first_word' ])  

{  

$wd =$row[ 'first_word' ];  

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

$dsql->SetQuery($sql);  

$dsql->Execute( 'wd' );  

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

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

{  

$str .= '<a href="' .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文件,我们在这里增加自定义函数

 

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

好了看看最终效果

查看更多关于dedecms按栏目名首字母/数字排序输出的实现方法的详细内容...

  阅读:23次