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;
}