GetName(); $fieldType = $ctag->GetAtt('type'); $formitem = $formitem = GetSysTemplets("custom_fields_{$admintype}.htm"); $innertext = trim($ctag->GetInnerText()); if($innertext!='') { $formitem = $innertext; } if($fieldType=='select') { $myformItem = ''; $items = explode(',',$ctag->GetAtt("default")); $myformItem = "\r\n"; $innertext = $myformItem; } else if($fieldType=='stepselect') { global $hasSetEnumJs,$cfg_cmspath; $cmspath = ( (empty($cfg_cmspath) || !preg_match('/[/$]/', $cfg_cmspath)) ? $cfg_cmspath.'/' : $cfg_cmspath ); $myformItem = ''; $myformItem .= "\r\n"; $myformItem .= "\r\n"; $myformItem .= "\r\n"; $myformItem .= "\r\n"; if($hasSetEnumJs != 'hasset') { $myformItem .= ''."\r\n"; $GLOBALS['hasSetEnumJs'] = 'hasset'; } $myformItem .= "\r\n"; $myformItem .= ''."\r\n"; $formitem = str_replace('~name~', $ctag->GetAtt('itemname'), $formitem); $formitem = str_replace('~form~', $myformItem, $formitem); return $formitem; } else if($fieldType=='radio') { $myformItem = ''; $items = explode(',',$ctag->GetAtt("default")); $i = 0; foreach($items as $v) { $v = trim($v); if($v!='') { $myformItem .= ($i==0 ? "$v\r\n" : "$v\r\n"); $i++; } } $innertext = $myformItem; } else if($fieldType=='checkbox') { $myformItem = ''; $items = explode(',',$ctag->GetAtt("default")); foreach($items as $v) { $v = trim($v); if($v!='') { if($admintype == 'membermodel') { $myformItem .= "\r\n"; } else { $myformItem .= "$v\r\n"; } } } $innertext = $myformItem; } else if($fieldType=='htmltext'||$fieldType=='textdata') { $dfvalue = ($ctag->GetAtt('default')!='' ? $ctag->GetAtt('default') : ''); $dfvalue = str_replace('{{', '<', $dfvalue); $dfvalue = str_replace('}}', '>', $dfvalue); if($admintype=='admin') { $innertext = GetEditor($fieldname, $dfvalue, 350, 'Basic', 'string'); } else if($admintype=='diy') { $innertext = GetEditor($fieldname, $dfvalue, 350, 'Diy', 'string'); } else { $innertext = GetEditor($fieldname, $dfvalue, 350, 'Member', 'string'); } } else if($fieldType=="multitext") { $innertext = "\r\n"; } else if($fieldType=="datetime") { $nowtime = GetDateTimeMk(time()); $innertext = ""; } else if($fieldType=='img'||$fieldType=='imgfile') { if($admintype=='diy') { $innertext = "\r\n"; } else { $innertext = " \r\n"; } } else if($fieldType=='media') { if($admintype=='diy') { $innertext = "不支持的类型\r\n"; } else { $innertext = " \r\n"; } } else if($fieldType=='addon') { if($admintype=='diy') { $innertext = "\r\n"; } else { $innertext = " \r\n"; } } else if($fieldType=='int'||$fieldType=='float') { $dfvalue = ($ctag->GetAtt('default')!='' ? $ctag->GetAtt('default') : '0'); $innertext = " (填写数值)\r\n"; } else if($fieldType=='relation') { $dfvalue = ($ctag->GetAtt('default')!='' ? $ctag->GetAtt('default') : ''); $channel = ($ctag->GetAtt('channel') == "")? "1" : $ctag->GetAtt('channel'); $innertext = "
\r\n"; if ($ctag->GetAtt('automake') == 1) { $innertext .= ""; } $innertext .= << if(typeof SelectArcList === "undefined") { function SelectArcList(fname,cid) { var posLeft = 10; var posTop = 10; window.open("content_select_list.php?f=" + fname+"&channelid="+cid, "selArcList", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=500,left=" + posLeft + ", top=" + posTop); } } EOT; } else { $dfvalue = ($ctag->GetAtt('default')!='' ? $ctag->GetAtt('default') : ''); $innertext = " \r\n"; } $formitem = str_replace("~name~",$ctag->GetAtt('itemname'),$formitem); $formitem = str_replace("~form~",$innertext,$formitem); return $formitem; } /** * 处理不同类型的数据 * * @access public * @param string $dvalue 默认值 * @param string $dtype 默认类型 * @param int $aid 文档ID * @param string $job 操作类型 * @param string $addvar 值 * @param string $admintype 管理类型 * @param string $fieldname 变量类型 * @return string */ function GetFieldValue($dvalue, $dtype, $aid=0, $job='add', $addvar='', $admintype='admin', $fieldname='') { global $cfg_basedir, $cfg_cmspath, $adminid, $cfg_ml, $cfg_cookie_encode; if(!empty($adminid)) { $adminid = $adminid; } else { $adminid = isset($cfg_ml) ? $cfg_ml->M_ID : 1; } if($dtype=='int') { if($dvalue=='') { return 0; } return GetAlabNum($dvalue); } else if($dtype=='stepselect') { $dvalue = trim(preg_replace("#[^0-9\.]#", "", $dvalue)); return $dvalue; } else if($dtype=='float') { if($dvalue=='') { return 0; } return GetAlabNum($dvalue); } else if($dtype=='datetime') { if($dvalue=='') { return 0; } return GetMkTime($dvalue); } else if($dtype=='checkbox') { $okvalue = ''; if(is_array($dvalue)) { $okvalue = join(',',$dvalue); } return $okvalue; } else if($dtype=="htmltext") { if($admintype=='member' || $admintype=='diy') { $dvalue = HtmlReplace($dvalue,-1); } return $dvalue; } else if($dtype=="multitext") { if($admintype=='member' || $admintype=='diy') { $dvalue = HtmlReplace($dvalue,0); } return $dvalue; } else if($dtype=="textdata") { $ipath = $cfg_cmspath."/data/textdata"; $tpath = ceil($aid / 5000); if(!is_dir($cfg_basedir.$ipath)) { MkdirAll($cfg_basedir.$ipath, $GLOBALS['cfg_dir_purview']); } if(!is_dir($cfg_basedir.$ipath.'/'.$tpath)) { MkdirAll($cfg_basedir.$ipath.'/'.$tpath,$GLOBALS['cfg_dir_purview']); } $ipath = $ipath.'/'.$tpath; $filename = "{$ipath}/{$aid}-".cn_substr(md5($cfg_cookie_encode), 0, 16).".txt"; //会员投稿内容安全处理 if($admintype=='member' || $admintype=='diy') { $dvalue = HtmlReplace($dvalue, -1); } $fp = fopen($cfg_basedir.$filename,"w"); fwrite($fp, stripslashes($dvalue)); fclose($fp); CloseFtp(); return $filename; } else if($dtype=='img' || $dtype=='imgfile') { if(preg_match("#[\\|/]uploads[\\|/]userup#", $dvalue)) return $dvalue; if($admintype=='diy') { $iurl = MemberUploads($fieldname, '', 0, 'image', '', -1, -1, false); return $iurl; } $iurl = stripslashes($dvalue); if(trim($iurl)=='') { return ''; } $iurl = trim(str_replace($GLOBALS['cfg_basehost'],"",$iurl)); $imgurl = "{dede:img text='' width='' height=''} ".$iurl." {/dede:img}"; if(preg_match("/^http:\/\//i", $iurl) && $GLOBALS['cfg_isUrlOpen']) { //远程图片 $reimgs = ''; if($GLOBALS['cfg_isUrlOpen']) { $reimgs = GetRemoteImage($iurl,$adminid); if(is_array($reimgs)) { if($dtype=='imgfile') { $imgurl = $reimgs[1]; } else { $imgurl = "{dede:img text='' width='".$reimgs[1]."' height='".$reimgs[2]."'} ".$reimgs[0]." {/dede:img}"; } } } else { if($dtype=='imgfile') { $imgurl = $iurl; } else { $imgurl = "{dede:img text='' width='' height=''} ".$iurl." {/dede:img}"; } } } else if($iurl != '') { //站内图片 $imgfile = $cfg_basedir.$iurl; if(is_file($imgfile)) { $info = ''; $imginfos = GetImageSize($imgfile,$info); if($dtype=="imgfile") { $imgurl = $iurl; } else { $imgurl = "{dede:img text='' width='".$imginfos[0]."' height='".$imginfos[1]."'} $iurl {/dede:img}"; } } } return addslashes($imgurl); } else if($dtype=='addon' && $admintype=='diy') { if(preg_match("#[\\|/]uploads[\\|/]userup#", $dvalue)) return $dvalue; $dvalue = MemberUploads($fieldname,'', 0, 'addon', '', -1, -1, false); return $dvalue; } else { if($admintype=='member' || $admintype=='diy') { $dvalue = HtmlReplace($dvalue,1); } return $dvalue; } } /** * 获得带值的表单(编辑时用) * * @access public * @param object $ctag 标签 * @param mixed $fvalue 变量值 * @param string $admintype 会员类型 * @param string $fieldname 变量名称 * @return string */ function GetFormItemValue($ctag, $fvalue, $admintype='admin', $fieldname='') { global $cfg_basedir; $fieldname = $ctag->GetName(); $formitem = $formitem = GetSysTemplets("custom_fields_{$admintype}.htm"); $innertext = trim($ctag->GetInnerText()); if($innertext!='') { $formitem = $innertext; } $ftype = $ctag->GetAtt('type'); $myformItem = ''; if(preg_match("/select|radio|checkbox/i", $ftype)) { $items = explode(',',$ctag->GetAtt('default')); } if($ftype=='select') { $myformItem = "\r\n"; $innertext = $myformItem; } else if($ctag->GetAtt("type")=='stepselect') { global $hasSetEnumJs,$cfg_cmspath; $cmspath = ( (empty($cfg_cmspath) || preg_match('/[/$]/', $cfg_cmspath)) ? $cfg_cmspath.'/' : $cfg_cmspath ); $myformItem = ''; $myformItem .= "\r\n"; $myformItem .= "\r\n"; $myformItem .= "\r\n"; $myformItem .= "\r\n"; if($hasSetEnumJs != 'hasset') { $myformItem .= ''."\r\n"; $GLOBALS['hasSetEnumJs'] = 'hasset'; } $myformItem .= "\r\n"; $myformItem .= "\r\n"; $formitem = str_replace('~name~', $ctag->GetAtt('itemname'), $formitem); $formitem = str_replace('~form~', $myformItem, $formitem); return $formitem; } else if($ftype=='radio') { if(is_array($items)) { foreach($items as $v) { $v = trim($v); if($v=='') continue; $myformItem.= ($fvalue==$v ? "$v\r\n" : "$v\r\n"); } } $innertext = $myformItem; } //checkbox else if($ftype=='checkbox') { $myformItem = ''; $fvalues = explode(',',$fvalue); if(is_array($items)) { foreach($items as $v) { $v = trim($v); if($v=='') { continue; } if(in_array($v,$fvalues)) { $myformItem .= "$v\r\n"; } else { $myformItem .= "$v\r\n"; } } } $innertext = $myformItem; } //文本数据的特殊处理 else if($ftype=="textdata") { if(is_file($cfg_basedir.$fvalue)) { $fp = fopen($cfg_basedir.$fvalue,'r'); $okfvalue = ''; while(!feof($fp)){ $okfvalue .= fgets($fp,1024); } fclose($fp); } else { $okfvalue = ''; } if($admintype=='admin') { $myformItem = GetEditor($fieldname,$okfvalue,350,'Basic','string')."\r\n \r\n "; } else { $myformItem = GetEditor($fieldname,$okfvalue,350,'Member','string')."\r\n \r\n "; } $innertext = $myformItem; } else if($ftype=="htmltext") { if($admintype=='admin') { $myformItem = GetEditor($fieldname,$fvalue,350,'Basic','string')."\r\n "; } else { $myformItem = GetEditor($fieldname,$fvalue,350,'Member','string')."\r\n "; } $innertext = $myformItem; } else if($ftype=="multitext") { $innertext = "\r\n"; } else if($ftype=="datetime") { $nowtime = GetDateTimeMk($fvalue); $innertext = ""; } else if($ftype=="img") { $ndtp = new DedeTagParse(); $ndtp->LoadSource($fvalue); if(!is_array($ndtp->CTags)) { $ndtp->Clear(); $fvalue = ""; } else { $ntag = $ndtp->GetTag("img"); $fvalue = trim($ntag->GetInnerText()); } $innertext = " \r\n"; } else if($ftype=="imgfile") { $innertext = " \r\n"; } else if($ftype=="media") { $innertext = " \r\n"; } else if($ftype=="addon") { $innertext = " \r\n"; } else if($ftype=="int"||$ftype=="float") { $innertext = " (填写数值)\r\n"; } else if($ftype=="relation") { $channel = ($ctag->GetAtt('channel') == "")? "1" : $ctag->GetAtt('channel'); $innertext = "
\r\n"; if ($ctag->GetAtt('automake') == 1) { $innertext .= ""; } $innertext .= << if(typeof SelectArcList === "undefined") { function SelectArcList(fname,cid) { var posLeft = 10; var posTop = 10; window.open("content_select_list.php?f=" + fname+"&channelid="+cid, "selArcList", "scrollbars=yes,resizable=yes,statebar=no,width=800,height=500,left=" + posLeft + ", top=" + posTop); } } EOT; } else { $innertext = "\r\n"; } $formitem = str_replace('~name~',$ctag->GetAtt('itemname'),$formitem); $formitem = str_replace('~form~',$innertext,$formitem); return $formitem; }