dede模板自定义模型中联动类别修改及调用

时间:2014-08-13

 

效果展示:

 

 dede模板自定义模型中联动类别修改及调用
注意,建模型的时候一定是独立模型:
先修改 include\taglib\infolink.lib.php 文件

   1.  
   2. require_once(DEDEROOT.’/data/enums/infotype.php’);
   3. 下面添加
   4. require_once(DEDEROOT.’/data/enums/自定义联动类别字段名.php’);
   5. 
   6. 
   7. 
   8. function lib_infolink(&$ctag,&$refObj)
   9. {
  10.     global $dsql,$nativeplace,$infotype,$自定义联动类别字段名,$hasSetEnumJs,$cfg_cmspath,$cfg_mainsite;
  11.     global $em_nativeplaces,$em_infotypes,$em_自定义联动类别字段名s;  //看清楚,这里后面的个S
  12. 
  13. 
  14. 
  15. 
  16. 
  17. 
  18. $fields = array(‘nativeplace’=>”,’infotype’=>”,’自定义联动类别字段名’=>”,’typeid’=>$typeid,
  19.                     ‘channelid’=>$channelid,’linkallplace’=>”,’linkealltype’=>”,’linkeall自定义联动类别字段名’=>”);
  20.    
  21.     $fields['nativeplace'] = $fields['infotype'] = $fields['自定义联动类别字段名'] = ”;
  22. 
  23. 
  24. 
  25. 
  26. $fields['linkalltype'] = "<a href=’{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}& amp;nativeplace={$nativeplace}’>不限</a>";
  27. 
  28. 
  29. //下面添加一行
  30. 
  31. $fields['linkeall 自定义联动类别字段名'] = "<a href=’{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}& amp;自定义联动类别字段名={$自定义联动类别字段名}&nativeplace={$nativeplace}’>不限< /a>";
  32. 
  33. 
  34. 搜索  if(is_array($ctp->CTags)) 在这句上面添加
  35. 
  36. 
  37.  
  38.     //自定义联动类别字段链接
  39.     if(empty($自定义联动类别字段名))
  40.     {
  41.         foreach($em_自定义联动类别字段名s as $eid=>$em)
  42.         {
  43.             if($eid % 500 != 0) continue;
  44.             $fields[' 自定义联动类别字段名'] .= " <a href=’{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}& amp;自定义联动类别字段名={$eid}&nativeplace={$nativeplace}’>{$em}</a& gt;";
  45.         }
  46.     }
  47.     else
  48.     {
  49.         $sontype = ( ($自定义联动类别字段名 % 500 != 0) ? $自定义联动类别字段名 : 0 );
  50.       $toptype = ( ($自定义联动类别字段名 % 500 == 0) ? $自定义联动类别字段名 : ( $自定义联动类别字段名-($membertype%500) ) );
  51.         $fields[' 自定义联动类别字段名'] = "<a href=’{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}& amp;自定义联动类别字段名={$toptype}&nativeplace={$nativeplace}’><b& gt;{$em_自定义联动类别字段名s[$toptype]}</b></a> ";
  52.         foreach($em_自定义联动类别字段名s as $eid=>$em)
  53.         {
  54.             if($eid < $toptype+1 || $eid > $toptype+499) continue;
  55.             if($eid == $自定义联动类别字段名) {
  56.                 $fields['自定义联动类别字段名'] .= " <b>{$em}</b>";
  57.             }
  58.             else {
  59.                 $fields[' 自定义联动类别字段名'] .= " <a href=’{$baseurl}plus/list.php?channelid={$channelid}&tid={$typeid}& amp;自定义联动类别字段名={$eid}&nativeplace={$nativeplace}’>{$em}</a& gt;";
  60.           }
  61.       }
  62.     }
  63. 
  64. 再修改 plus\list.php 文件
  65. 
  66. 搜索  $infotype = ( (empty($infotype) || !is_numeric($infotype)) ? 0 : $infotype );  在下面添加一句
  67. 
  68. 
  69.     $自定义联动类别字段名 = ( (empty($自定义联动类别字段名) || !is_numeric($自定义联动类别字段名)) ? 0 : $自定义联动类别字段名 );
  70.    
  71. 再搜索      if(!empty($infotype)) $cArr['infotype'] = $infotype;
  72. 
  73. 在下面添加
  74.     if(!empty($自定义联动类别字段名)) $cArr['自定义联动类别字段名'] = $自定义联动类别字段名;
  75.    
  76. 
  77. 找到 include\arc.sglistview.class.php 文件
  78. 
  79. 搜索  if(!empty($this->searchArr['keyword']))      在上面添加
  80. 
  81. 
  82. 
  83. 
  84. 
  85.     //自定义联动类别       
  86.            
  87.             if(!empty($this->searchArr['自定义联动类别字段名']))
  88.             {
  89.                 if($this->searchArr['自定义联动类别字段名'] % 500 ==0 )
  90.                 {
  91.                     $naddQuery .= " And arc.自定义联动类别字段名 >= ‘{$this->searchArr['自定义联动类别字段名']}’ And arc.自定义联动类别字段名 < ‘".($this->searchArr['自定义联动类别字段名']+500)."’";
  92.                 }
  93.                 else
  94.                 {
  95.                     $naddQuery .= "And arc.自定义联动类别字段名 = ‘{$this->searchArr['自定义联动类别字段名']}’";
  96.                 }
  97.             }
  98.            

  模板调用  [field:linkeall自定义联动类别字段名/] [field:自定义联动类别字段名 /]

即可完成!

上一条:去掉dede下载地址中的li标签 下一条:dedecms上传附件时不改名 中文名的附件改为拼音文件名

相关文章

最新文章