>dede>> 分类信息地区与类型快捷链接 全局标记 V55,V56,V57 调用分类信息地区与类型快捷链接 {dede:infolink /} >>dede>>*/ require_once(DEDEINC.'/enums.func.php'); require_once(DEDEDATA.'/enums/nativeplace.php'); require_once(DEDEDATA.'/enums/infotype.php'); function lib_infolink(&$ctag,&$refObj) { global $dsql,$nativeplace,$infotype,$hasSetEnumJs,$cfg_cmspath,$cfg_mainsite; global $em_nativeplaces,$em_infotypes; //属性处理 //$attlist="row|12,titlelen|24"; //FillAttsDefault($ctag->CAttribute->Items,$attlist); //extract($ctag->CAttribute->Items, EXTR_SKIP); $cmspath = ( (empty($cfg_cmspath) || !preg_match("#\/$#", $cfg_cmspath)) ? $cfg_cmspath.'/' : $cfg_cmspath ); $baseurl = preg_replace("#\/$#", '', $cfg_mainsite).$cmspath; $smalltypes = ''; if( !empty($refObj->TypeLink->TypeInfos['smalltypes']) ) { $smalltypes = explode(',', $refObj->TypeLink->TypeInfos['smalltypes']); } if(empty($refObj->Fields['typeid'])) { $row = $dsql->GetOne("SELECT id FROM `#@__arctype` WHERE channeltype='-8' And reid = '0' "); $typeid = (is_array($row) ? $row['id'] : 0); } else { $typeid = $refObj->Fields['typeid']; } $innerText = trim($ctag->GetInnerText()); if(empty($innerText)) $innerText = GetSysTemplets("info_link.htm"); $ctp = new DedeTagParse(); $ctp->SetNameSpace('field','[',']'); $ctp->LoadSource($innerText); $revalue = $seli = ''; $channelid = ( empty($refObj->TypeLink->TypeInfos['channeltype']) ? -8 : $refObj->TypeLink->TypeInfos['channeltype'] ); $fields = array('nativeplace'=>'','infotype'=>'','typeid'=>$typeid, 'channelid'=>$channelid,'linkallplace'=>'','linkalltype'=>''); $fields['nativeplace'] = $fields['infotype'] = ''; $fields['linkallplace'] = "不限"; $fields['linkalltype'] = "不限"; //地区链接 if(empty($nativeplace)) { foreach($em_nativeplaces as $eid=>$em) { if($eid % 500 != 0) continue; $fields['nativeplace'] .= " {$em}\r\n"; } } else { $sontype = ( ($nativeplace % 500 != 0) ? $nativeplace : 0 ); $toptype = ( ($nativeplace % 500 == 0) ? $nativeplace : ( $nativeplace-($nativeplace%500) ) ); $fields['nativeplace'] = " {$em_nativeplaces[$toptype]} >> "; foreach($em_nativeplaces as $eid=>$em) { if($eid < $toptype+1 || $eid > $toptype+499) continue; if($eid == $nativeplace) { $fields['nativeplace'] .= " {$em}\r\n"; } else { $fields['nativeplace'] .= " {$em}\r\n"; } } } //小分类链接 if(empty($infotype) || is_array($smalltypes)) { foreach($em_infotypes as $eid=>$em) { if(!is_array($smalltypes) && $eid % 500 != 0) continue; if(is_array($smalltypes) && !in_array($eid, $smalltypes)) continue; if($eid == $infotype) { $fields['infotype'] .= " {$em}\r\n"; } else { $fields['infotype'] .= " {$em}\r\n"; } } } else { $sontype = ( ($infotype % 500 != 0) ? $infotype : 0 ); $toptype = ( ($infotype % 500 == 0) ? $infotype : ( $infotype-($infotype%500) ) ); $fields['infotype'] .= "{$em_infotypes[$toptype]} >> "; foreach($em_infotypes as $eid=>$em) { if($eid < $toptype+1 || $eid > $toptype+499) continue; if($eid == $infotype) { $fields['infotype'] .= " {$em}\r\n"; } else { $fields['infotype'] .= " {$em}\r\n"; } } } if(is_array($ctp->CTags)) { foreach($ctp->CTags as $tagid=>$ctag) { if(isset($fields[$ctag->GetName()])) { $ctp->Assign($tagid,$fields[$ctag->GetName()]); } } $revalue .= $ctp->GetResult(); } return $revalue; }