首页 >

织梦DedeCMS首页列表页,ajax点击加载更多,瀑布流,首页多栏目切换

简化部分主要是栏目切换时,除子第一个默认栏目,其它的全改成ajax,不再生成静态页,而且通过PHP循环,简化了代码.另外加载更多按钮等也修改了触发形式.

织梦DedeCMS首页列表页,ajax点击加载更多,瀑布流,首页多栏目切换

效果图

一,模板

模板中涉及一个函数.get_url_by_typeid2()在这里的说明,点击查看

[html]view plaincopy

  1. .slideTxtBox{width:100%;text-align:left;}
  2. .slideTxtBox.hd{height:38px;line-height:27px;position:relative;overflow:hidden}
  3. .slideTxtBox.hdul{left:10px;float:left;position:absolute;top:3px;height:39px;over-flow:hidden;}
  4. .slideTxtBox.hdulli{height:40px;float:left;color:#fff;padding:0px7px0px6px;cursor:pointer;}
  5. .slideTxtBox.hdullia{color:#fff;}
  6. .slideTxtBox.hdulli.on
  7. {background:url({dede:global.cfg_templets_skin/}/images/bg5.jpg)repeat-x;}
  8. .slideTxtBox.hdulli.ona{color:#555}
  9. .slideTxtBox.bdul{zoom:1;padding-bottom:50px;display:none;position:relative;min-height:100px}
  10. .slideTxtBox.bdli{height:24px;line-height:24px;}
  11. 全部
  12. {dede:channeltype=’top’row=’50’}
  13. [field:typename/]
  14. {/dede:channel}
  • {dede:channelartlisttypeid=”top”row=’33’}
  • {dede:fieldname=”typename”/}
  • {/dede:channelartlist}
  • {dede:arclistrow=’2’titlelen=’100’orderby=’id’}
  • [field:title/]
  • [field:goodpost/]
  • [field:typename/][field:typeid2function=”get_url_by_typeid2(@me)”/]
  • 进入小程序
  • {/dede:arclist}
  • 加载更多

  • {dede:channeltype=’top’row=’25’}
  • 加载更多

  • {/dede:channel}
  • vartabs=document.getElementById(“tab”).getElementsByTagName(“li”);
  • vardivs=document.getElementById(“slideTxtBox-bd”).getElementsByTagName(“ul”);
  • for(vari=0;i<tabs.length;i++){
  • tabs[i].onclick=function(){change(this);}
  • }
  • functionchange(obj){
  • for(vari=0;i<tabs.length;i++)
  • {
  • if(tabs[i]==obj){
  • tabs[i].className=”on”;
  • divs[i].className=”show”;
  • }
  • else{
  • tabs[i].className=””;
  • divs[i].className=””;
  • }
  • }
  • }
  • //所属分类切换
  • functionchange_tab(typeid){
  • $(“#tab”+typeid).siblings(“li”).removeClass(“on”);
  • $(“#tab”+typeid).addClass(“on”);
  • $(“#”+typeid).siblings(“ul”).removeClass(“show”);
  • $(“#”+typeid).addClass(“show”);
  • }
  • $(‘.icon-angle-down’).each(function(){
  • vare=$(this);
  • vartarget=e.attr(“data-target”);
  • e.click(function(){
  • $(target).toggleClass(“hidden”);
  • });
  • });
  • varloadConfig={
  • url_api:’/plus/list.php’,
  • //typeid:{dede:fieldname=”typeid”/},
  • pagesize:2,
  • loading:0
  • }
  • varpage0=2;
  • {dede:channeltype=’top’row=’25’}
  • varpage[field:id/]=1;
  • {/dede:channel}
  • functionloadMoreApply(orderby,typeid){
  • $(“#navbar2”).addClass(“hidden”);
  • eval(“page=page”+typeid+”;”);
  • varpagesize=loadConfig.pagesize;
  • varurl=loadConfig.url_api,
  • data={ajax:’pullload’,typeid:typeid,page:page,pagesize:pagesize,orderby:orderby};
  • functionajax(url,data){
  • $.ajax({url:url,data:data,async:false,type:’GET’,dataType:’json’,success:function(data){
  • addContent(data,typeid);
  • }});
  • }
  • ajax(url,data);
  • }
  • functionaddContent(rs,typeid){
  • if(rs.statu==1){
  • vardata=rs.list;
  • vartotal=rs.total;
  • vararr=[];
  • varlength=data.length;
  • for(vari=0;i<length;i++){
  • arr.push(”);
  • arr.push(‘‘+data[i].title+’‘+data[i].click+’‘);
  • arr.push(‘‘+data[i].goodpost+’‘);
  • arr.push(”+data[i].typename+’‘+data[i].typeid2+’进入小程序‘);
  • }
  • $(‘#’+typeid).append(arr.join(”));
  • loadConfig.load_num=rs.load_num;
  • if(totalloadConfig.load_num){
  • //$(‘#’+typeid).append(‘没有了!

    ‘);
  • $(“#”+typeid+”data”).html(‘没有了!’);
  • }else{
  • //$(‘#’+typeid).append(‘加载更多

    ‘);
  • }
  • eval(“page”+typeid+”++;”);
  • }else{
  • $(“#”+typeid+”data”).html(‘没有了!’);
  • }
  • }
  • $(document).ready(function(){
  • loadMoreApply(1,0);
  • $(‘.copy-lay.close2’).click(function(){
  • $(‘.alert2’).hide();
  • });
  • $(‘.alert2’).click(function(e){
  • if($(e.target).parents().hasClass(‘copy-lay’)){
  • return;
  • }else{
  • $(this).hide();
  • }
  • });
  • });
  • functionshowtip(title){
  • $(‘#alerttip,#copyBtn’).html(title);
  • $(‘.alert2’).show();
  • }
  • {dede:sqlsql=’Select*from`myppttype`whereid=2′}
  • {/dede:sql}

  • 二,,修改,plus/list.PHP在require_once(dirname(__FILE__).”/../include/common.inc.php“);

    的下面增加一段

    [php]view plaincopy

    1. if(isset($_GET[‘ajax’])){
    2. $typeid=isset($_GET[‘typeid’])?intval($_GET[‘typeid’]):0;//传递过来的分类ID
    3. $orderby=isset($_GET[‘orderby’])?intval($_GET[‘orderby’]):1;
    4. //print_r($orderby);exit;
    5. //1id排,2hot排序
    6. $page=isset($_GET[‘page’])?intval($_GET[‘page’]):0;//页码
    7. $pagesize=isset($_GET[‘pagesize’])?intval($_GET[‘pagesize’]):10;//每页多少条,也就是一次加载多少条数据
    8. $start=$page>0?($page-1)*$pagesize:0;//数据获取的起始位置。即limit条件的第一个参数。
    9. $ntime2=gmmktime(0,0,0,gmdate(‘m’),gmdate(‘d’),gmdate(‘Y’));
    10. $limitday=$ntime2-(40*24*3600);//40天内热文
    11. $orwheres=”senddate>$limitday”;
    12. //$typesql=$typeid?”WHEREtypeid=$typeid”:”;
    13. if($orderby==1){//id降序
    14. $typesql=$typeid?”WHEREa.arcrank=0anda.typeid=$typeidorCONCAT(‘,’,a.typeid2,’,’)LIKE’%,”.$typeid.”,%'”:”;
    15. $typesql3=$typeid?”WHEREarcrank=0andtypeid=$typeidorCONCAT(‘,’,typeid2,’,’)LIKE’%,”.$typeid.”,%'”:”;
    16. }else{//hot排序
    17. $typesql=$typeid?”WHEREa.arcrank=0anda.typeid=$typeidorCONCAT(‘,’,a.typeid2,’,’)LIKE’%,”.$typeid.”,%’and”.$orwheres:”WHERE”.$orwheres;
    18. $typesql3=$typeid?”WHEREarcrank=0andtypeid=$typeidorCONCAT(‘,’,typeid2,’,’)LIKE’%,”.$typeid.”,%’and”.$orwheres:”WHERE”.$orwheres;
    19. }
    20. //print_r($typesql);exit;
    21. //这个是用于首页实现瀑布流加载,
    22. //因为首页加载数据是无需分类的,所以要加以判断,如果无需
    23. $total_sql=”SELECTCOUNT(id)asnumFROM`archives`$typesql3″;
    24. $temp=$dsql->GetOne($total_sql);
    25. $total=0;//数据总数
    26. $load_num=0;
    27. if(is_array($temp)){
    28. $load_num=round(($temp[‘num’]-$pagesize)/$pagesize);//要加载的次数,因为默认已经加载了
    29. $total=$temp[‘num’];
    30. }
    31. //print_r($total);exit;
    32. if($orderby==1){//新
    33. $sql=”SELECTa.*,t.typedir,t.typename,t.isdefault,t.defaultname,t.namerule,
    34. t.namerule2,t.ispart,t.moresite,t.siteurl,t.sitepath
    35. FROM`archives`asaJOIN`arctype`AStONa.typeid=t.id$typesqlORDERBYa.idDESCLIMIT$start,$pagesize”;
    36. }else{//热门
    37. $sql=”SELECTa.*,t.typedir,t.typename,t.isdefault,t.defaultname,t.namerule,
    38. t.namerule2,t.ispart,t.moresite,t.siteurl,t.sitepath
    39. FROM`archives`asaJOIN`arctype`AStONa.typeid=t.id$typesqlORDERBYa.clickDESCLIMIT$start,$pagesize”;
    40. }
    41. //echo”$sql”;exit;
    42. $dsql->SetQuery($sql);//
    43. $dsql->Execute(‘list’);//die(mysql_error());
    44. $statu=0;//是否有数据,默认没有数据
    45. $data=array();
    46. $index=0;
    47. while($row=$dsql->GetArray(“list”)){
    48. $row[‘info’]=$row[‘info’]=$row[‘infos’]=cn_substr($row[‘description’],250);
    49. $row[‘id’]=$row[‘id’];
    50. $row[‘typeid2’]=get_url_by_typeid2($row[‘typeid2’]);
    51. $row[‘filename’]=$row[‘arcurl’]=GetFileUrl($row[‘id’],$row[‘typeid’],$row[‘senddate’],$row[‘title’],$row[‘ismake’],
    52. $row[‘arcrank’],$row[‘namerule’],$row[‘typedir’],$row[‘money’],$row[‘filename’],$row[‘moresite’],$row[‘siteurl’],$row[‘sitepath’]);
    53. $row[‘typeurl’]=GetTypeUrl($row[‘typeid’],$row[‘typedir’],$row[‘isdefault’],$row[‘defaultname’],$row[‘ispart’],$row[‘namerule2’],$row[‘moresite’],$row[‘siteurl’],$row[‘sitepath’]);
    54. if($row[‘litpic’]==’-‘||$row[‘litpic’]==”){
    55. $row[‘litpic’]=$GLOBALS[‘cfg_cmspath’].’/images/defaultpic.jpg’;
    56. }
    57. if(!preg_match(“#^http:\/\/#i”,$row[‘litpic’])&&$GLOBALS[‘cfg_multi_site’]==’Y’){
    58. $row[‘litpic’]=$GLOBALS[‘cfg_mainsite’].$row[‘litpic’];
    59. }
    60. $row[‘picname’]=$row[‘litpic’];//缩略图
    61. $row[‘writer’]=$row[‘writer’];
    62. $row[‘click’]=$row[‘click’];
    63. $row[‘stime’]=GetDateMK($row[‘pubdate’]);
    64. $row[‘timeago’]=timeago($row[‘pubdate’]);
    65. $row[‘typelink’]=””.$row[‘typename’].”“;//分类链
    66. $row[‘fulltitle’]=$row[‘title’];//完整的标题
    67. $row[‘shorttitle’]=$row[‘shorttitle’];//副标题
    68. $row[‘title’]=cn_substr($row[‘title’],60);//截取后的标题
    69. $data[$index]=$row;
    70. $index++;
    71. }
    72. if(!empty($data)){
    73. $statu=1;//有数据
    74. }
    75. $result=array(‘statu’=>$statu,’list’=>$data,’total’=>$total,’load_num’=>$load_num);
    76. echojson_encode($result);//返回数据
    77. exit();
    78. }


     

    织梦DedeCMS首页列表页,ajax点击加载更多,瀑布流,首页多栏目切换
  • 织梦DedeCMS留言板edit.inc.php注入漏洞修复方法
  • 织梦DedeCMS留言板edit.inc.php注入漏洞修复方法 | 织梦DedeCMS留言板edit.inc.php注入漏洞修复方法 ...

    织梦DedeCMS首页列表页,ajax点击加载更多,瀑布流,首页多栏目切换
  • 织梦DedeCMS的友情链接图片logo调整大小
  • 织梦DedeCMS的友情链接图片logo调整大小 | 织梦DedeCMS的友情链接图片logo调整大小 ...

    织梦DedeCMS首页列表页,ajax点击加载更多,瀑布流,首页多栏目切换
  • 织梦DedeCMS模板织梦DedeCMS 替换保存文章中的div为P的代码
  • 织梦DedeCMS模板织梦DedeCMS 替换保存文章中的div为P的代码 | 织梦DedeCMS模板织梦DedeCMS 替换保存文章中的div为P的代码 ...