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 = ""; $innertext = $myformItem; } else if ($fieldType == 'stepselect') { global $hasSetEnumJs, $cfg_cmspath; $cmspath = ((empty($cfg_cmspath) || !preg_match('/[/$]/', $cfg_cmspath)) ? $cfg_cmspath.'/' : $cfg_cmspath); $myformItem = ''; $myformItem .= ""; $myformItem .= ""; $myformItem .= ""; $myformItem .= ""; if ($hasSetEnumJs != 'hasset') { $myformItem .= ''.""; $GLOBALS['hasSetEnumJs'] = 'hasset'; } $myformItem .= ""; $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 ? "
" : "
"); $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 .= "
"; } else { $myformItem .= "
"; } } } $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, 360, 'Basic', 'string'); } else if ($admintype == 'diy') { $innertext = GetEditor($fieldname, $dfvalue, 360, 'Diy', 'string'); } else { $innertext = GetEditor($fieldname, $dfvalue, 360, 'Member', 'string'); } } else if ($fieldType == "multitext") { $innertext = ""; } else if ($fieldType == "datetime") { $nowtime = GetDateTimeMk(time()); $innertext = ""; } else if ($fieldType == 'img' || $fieldType == 'imgfile') { if ($admintype == 'diy') { $innertext = ""; } else { $innertext = " "; } } else if ($fieldType == 'media') { if ($admintype == 'diy') { $innertext = " 不支持的类型"; } else { $innertext = " "; } } else if ($fieldType == 'addon') { if ($admintype == 'diy') { $innertext = ""; } else { $innertext = " "; } } else if ($fieldType == 'int' || $fieldType == 'float') { $dfvalue = ($ctag->GetAtt('default') != '' ? $ctag->GetAtt('default') : '0'); $innertext = "(填写数值)"; } else if ($fieldType == 'relation') { $dfvalue = ($ctag->GetAtt('default') != '' ? $ctag->GetAtt('default') : ''); $channel = ($ctag->GetAtt('channel') == "") ? "1" : $ctag->GetAtt('channel'); $innertext = "
"; 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 = " "; } $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 == 'relation') { $dvalue = trim(preg_replace("#[^0-9,]#", "", $dvalue)); return $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|https):\/\//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 = ""; $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 .= ""; $myformItem .= ""; $myformItem .= ""; $myformItem .= ""; if ($hasSetEnumJs != 'hasset') { $myformItem .= ''.""; $GLOBALS['hasSetEnumJs'] = 'hasset'; } $myformItem .= ""; $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 ? "
" : "
"); } } $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 .= "
"; } else { $myformItem .= "
"; } } } $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, 360, 'Basic', 'string')." "; } else { $myformItem = GetEditor($fieldname, $okfvalue, 360, 'Member', 'string')." "; } $innertext = $myformItem; } else if ($ftype == "htmltext") { if ($admintype == 'admin') { $myformItem = GetEditor($fieldname, $fvalue, 360, 'Basic', 'string')." "; } else { $myformItem = GetEditor($fieldname, $fvalue, 360, 'Member', 'string')." "; } $innertext = $myformItem; } else if ($ftype == "multitext") { $innertext = ""; } 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 = " "; } else if ($ftype == "imgfile") { $innertext = " "; } else if ($ftype == "media") { $innertext = " "; } else if ($ftype == "addon") { $innertext = " "; } else if ($ftype == "int" || $ftype == "float") { $innertext = "(填写数值)"; } else if ($ftype == "relation") { $channel = ($ctag->GetAtt('channel') == "") ? "1" : $ctag->GetAtt('channel'); $innertext = "
"; 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 = ""; } $formitem = str_replace('~name~', $ctag->GetAtt('itemname'), $formitem); $formitem = str_replace('~form~', $innertext, $formitem); return $formitem; }