www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/include/fields.fun.php

    <?php
!defined('M_COM') && exit('No Permission');
load_cache('rprojects');
@set_time_limit(0);
$datatypearr = array(
	'text' => lang('text'),
	'multitext' => lang('multitext'),
	'htmltext' => lang('htmltext'),
	'image' => lang('image_f'),
	'images' => lang('images'),
	'flash' => lang('flash'),
	'flashs' => lang('flashs'),
	'media' => lang('media'),
	'medias' => lang('medias'),
	'file' => lang('file_f'),
	'files' => lang('files_f'),
	'select' => lang('select'),
	'mselect' => lang('mselect'),
	'date' => lang('date_f'),
	'int' => lang('int'),
	'float' => lang('float'),
);
$limitarr = array(
	'' => lang('nolimit format'),
	'int' => lang('int'),
	'number' => lang('number'),
	'letter' => lang('letter'),
	'numberletter' => lang('numberletter'),
	'tagtype' => lang('tagtype'),
	'date' => lang('date'),
	'email' => lang('email'),
);
$rpidsarr = array('0' => lang('notremote'));
foreach($rprojects as $rpid => $rproject){
	$rpidsarr[$rpid] = $rproject['cname'];
}
$commonarr = array('1' => lang('based message'),'0'=> lang('advanced message'));

function fieldlist($fname,$field=array(),$mode='ch'){
	global $datatypearr,$chid,$mchid;
	if($mode == 'ch'){
		echo "<tr>\n".
			"<td class=\"item1\" align=\"center\" width=\"40\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$fname]\" value=\"$fname\"".(!empty($field['mcommon']) || !empty($field['issystem']) ? ' disabled' : '')."></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"40\"><input class=\"checkbox\" type=\"checkbox\" name=\"fieldsnew[$fname][available]\" value=\"1\"".($field['available'] ? ' checked' : '').(!empty($field['issystem']) ? ' disabled' : '')."></td>\n".
			"<td class=\"item1\" align=\"center\" width=\"250\"><input type=\"text\" size=\"25\" name=\"fieldsnew[$fname][cname]\" value=\"".mhtmlspecialchars($field['cname'])."\"></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"60\"><input class=\"checkbox\" type=\"checkbox\" name=\"fieldsnew[$fname][isadmin]\" value=\"1\"".(!empty($field['issystem']) ? ' disabled' : '').($field['isadmin'] ? ' checked' : '')."></td>\n".
			"<td class=\"item1\" align=\"center\" width=\"60\"><input type=\"text\" size=\"4\" name=\"fieldsnew[$fname][vieworder]\" value=\"$field[vieworder]\"></td>\n".
			"<td class=\"item2\" align=\"center\">".mhtmlspecialchars($fname)."</td>\n".
			"<td class=\"item1\" align=\"center\" width=\"100\">".$datatypearr[$field['datatype']]."</td>\n".
			"<td class=\"item2\" align=\"center\" width=\"50\"><a href=\"?entry=channels&action=fielddetail&chid=$chid&fieldename=$fname\">".lang('detail')."</a></td>\n".
			"</tr>";
	}elseif($mode == 'fch'){
		echo "<tr>\n".
			"<td class=\"item1\" align=\"center\" width=\"40\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$fname]\" value=\"$fname\"".(!empty($field['issystem']) ? ' disabled' : '')."></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"250\"><input type=\"text\" size=\"25\" name=\"fieldsnew[$fname][cname]\" value=\"".mhtmlspecialchars($field['cname'])."\"></td>\n".
			"<td class=\"item1\" align=\"center\" width=\"60\"><input class=\"checkbox\" type=\"checkbox\" name=\"fieldsnew[$fname][isadmin]\" value=\"1\"".(!empty($field['issystem']) ? ' disabled' : '').($field['isadmin'] ? ' checked' : '')."></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"60\"><input type=\"text\" size=\"4\" name=\"fieldsnew[$fname][vieworder]\" value=\"$field[vieworder]\"></td>\n".
			"<td class=\"item1\" align=\"center\">".mhtmlspecialchars($fname)."</td>\n".
			"<td class=\"item2\" align=\"center\" width=\"100\">".$datatypearr[$field['datatype']]."</td>\n".
			"<td class=\"item1\" align=\"center\" width=\"50\"><a href=\"?entry=fchannels&action=fielddetail&chid=$chid&fieldename=$fname\">".lang('detail')."</a></td>\n".
			"</tr>";
	}elseif($mode == 'init'){
		echo "<tr>\n".
			"<td class=\"item1\" align=\"center\" width=\"40\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$fname]\" value=\"$fname\"".(empty($field['iscustom']) ? ' disabled' : '')."></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"250\"><input type=\"text\" size=\"25\" name=\"fieldsnew[$fname][cname]\" value=\"".mhtmlspecialchars($field['cname'])."\"></td>\n".
			"<td class=\"item1\" align=\"center\">".mhtmlspecialchars($fname)."</td>\n".
			"<td class=\"item2\" align=\"center\" width=\"100\">".$datatypearr[$field['datatype']]."</td>\n".
			"<td class=\"item1\" align=\"center\" width=\"60\"><a href=\"?entry=channels&action=initfielddetail&fieldename=$fname\">".lang('detail')."</a></td>\n".
			"</tr>";
	}elseif($mode == 'initm'){
		echo "<tr>\n".
			"<td class=\"item1\" align=\"center\" width=\"40\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$fname]\" value=\"$fname\"".($field['issystem'] ? ' disabled' : '')."></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"250\"><input type=\"text\" size=\"25\" name=\"fieldsnew[$fname][cname]\" value=\"".mhtmlspecialchars($field['cname'])."\"></td>\n".
			"<td class=\"item1\" align=\"center\">".mhtmlspecialchars($fname)."</td>\n".
			"<td class=\"item2\" align=\"center\" width=\"100\">".$datatypearr[$field['datatype']]."</td>\n".
			"<td class=\"item1\" align=\"center\" width=\"60\">".($field['issystem'] ? lang('system') : "<a href=\"?entry=mchannels&action=initmfielddetail&fieldename=$fname\">".lang('detail')."</a>")."</td>\n".
			"</tr>";
	}elseif($mode == 'member'){
		echo "<tr>\n".
			"<td class=\"item1\" align=\"center\" width=\"40\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$fname]\" value=\"$fname\"".($field['mcommon'] ? ' disabled' : '')."></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"40\"><input class=\"checkbox\" type=\"checkbox\" name=\"fieldsnew[$fname][available]\" value=\"1\"".($field['available'] ? ' checked' : '').($field['issystem'] ? ' disabled' : '')."></td>\n".
			"<td class=\"item1\" width=\"200\"><input type=\"text\" size=\"20\" name=\"fieldsnew[$fname][cname]\" value=\"".mhtmlspecialchars($field['cname'])."\"></td>\n".
			"<td class=\"item2\" align=\"center\">".mhtmlspecialchars($fname)."</td>\n".
			"<td class=\"item1\" align=\"center\" width=\"60\"><input class=\"checkbox\" type=\"checkbox\" name=\"fieldsnew[$fname][isadmin]\" value=\"1\"".(!empty($field['issystem']) ? ' disabled' : '').($field['isadmin'] ? ' checked' : '')."></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"60\"><input type=\"text\" size=\"4\" name=\"fieldsnew[$fname][vieworder]\" value=\"$field[vieworder]\"></td>\n".
			"<td class=\"item1\" align=\"center\" width=\"100\">".$datatypearr[$field['datatype']]."</td>\n".
			"<td class=\"item2\" align=\"center\" width=\"50\">".($field['issystem'] ? lang('system') : "<a href=\"?entry=mchannels&action=mfielddetail&mchid=$mchid&fieldename=$fname\">".lang('detail')."</a>")."</td>\n".
			"</tr>";
	}elseif($mode == 'ca'){
		echo "<tr>\n".
			"<td class=\"item1\" align=\"center\" width=\"40\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$fname]\" value=\"$fname\"></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"250\"><input type=\"text\" size=\"25\" name=\"fieldsnew[$fname][cname]\" value=\"".mhtmlspecialchars($field['cname'])."\"></td>\n".
			"<td class=\"item1\" align=\"center\" width=\"60\"><input type=\"text\" size=\"4\" name=\"fieldsnew[$fname][vieworder]\" value=\"$field[vieworder]\"></td>\n".
			"<td class=\"item2\" align=\"center\">".mhtmlspecialchars($fname)."</td>\n".
			"<td class=\"item1\" align=\"center\" width=\"100\">".$datatypearr[$field['datatype']]."</td>\n".
			"<td class=\"item2\" align=\"center\" width=\"60\"><a href=\"?entry=catalogs&action=cafielddetail&fieldename=$fname\">".lang('detail')."</a></td>\n".
			"</tr>";
	}elseif($mode == 'cc'){
		echo "<tr>\n".
			"<td class=\"item1\" align=\"center\" width=\"40\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$fname]\" value=\"$fname\"></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"250\"><input type=\"text\" size=\"25\" name=\"fieldsnew[$fname][cname]\" value=\"".mhtmlspecialchars($field['cname'])."\"></td>\n".
			"<td class=\"item1\" align=\"center\" width=\"60\"><input type=\"text\" size=\"4\" name=\"fieldsnew[$fname][vieworder]\" value=\"$field[vieworder]\"></td>\n".
			"<td class=\"item2\" align=\"center\">".mhtmlspecialchars($fname)."</td>\n".
			"<td class=\"item1\" align=\"center\" width=\"100\">".$datatypearr[$field['datatype']]."</td>\n".
			"<td class=\"item2\" align=\"center\" width=\"60\"><a href=\"?entry=cotypes&action=ccfielddetail&fieldename=$fname\">".lang('detail')."</a></td>\n".
			"</tr>";
	}elseif($mode == 'p'){
		echo "<tr>\n".
			"<td class=\"item1\" align=\"center\" width=\"40\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$fname]\" value=\"$fname\"></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"250\"><input type=\"text\" size=\"25\" name=\"fieldsnew[$fname][cname]\" value=\"".mhtmlspecialchars($field['cname'])."\"></td>\n".
			"<td class=\"item1\" align=\"center\" width=\"60\"><input class=\"checkbox\" type=\"checkbox\" name=\"fieldsnew[$fname][isadmin]\" value=\"1\"".($field['isadmin'] ? ' checked' : '')."></td>\n".
			"<td class=\"item2\" align=\"center\" width=\"60\"><input type=\"text\" size=\"4\" name=\"fieldsnew[$fname][vieworder]\" value=\"$field[vieworder]\"></td>\n".
			"<td class=\"item1\" align=\"center\">".mhtmlspecialchars($fname)."</td>\n".
			"<td class=\"item2\" align=\"center\" width=\"100\">".$datatypearr[$field['datatype']]."</td>\n".
			"<td class=\"item1\" align=\"center\" width=\"50\"><a href=\"?entry=commus&action=pfielddetail&fieldename=$fname\">".lang('detail')."</a></td>\n".
			"</tr>";
	}
}
function fields_order($fields){
	if(!is_array($fields) || empty($fields) || !function_exists('array_multisort')) return $fields;
	foreach($fields as $k => $field){
		if(in_array($field['datatype'],array('int','float','date','select','mselect'))){
			$fields[$k]['dorder'] = '0';
		}elseif(in_array($field['datatype'],array('text','multitext','htmltext'))){
			$fields[$k]['dorder'] = '1';
		}elseif(in_array($field['datatype'],array('image','flash','media','file'))){
			$fields[$k]['dorder'] = '2';
		}else{
			$fields[$k]['dorder'] = '3';
		}
		$dorder[$k] = $fields[$k]['dorder'];
	}
	array_multisort($dorder,SORT_ASC,$fields);
	return $fields;
}
function trspecial($trname,$varname,$value = '',$type = 'htmltext',$mode=0,$guide='',$width='25%'){
	global $cms_abs,$ftp_url,$cmsurl;
	$trname .= empty($guide) ? '' : "<font class=\"gray\">&nbsp; $guide</font>";
	$trname .= "&nbsp; <font id=\"alert_$varname\" name=\"alert_$varname\" class=\"red\"></font>";
	if($type == 'htmltext'){
		echo !$mode ? "<tr><td colspan=\"2\" class=\"item1\">".$trname."</td></tr><tr><td colspan=\"2\" class=\"item2\">\n" : "<tr><td width=\"$width\" class=\"item1\">".$trname."</td><td class=\"item2\">\n";
		include_once M_ROOT.'./include/fckeditor/fckeditor.php';
		$sBasePath = $cmsurl.'include/fckeditor/';
		$oFCKeditor = new FCKeditor($varname);
		$oFCKeditor->BasePath	= $sBasePath;
		$oFCKeditor->Height		= !$mode ? '500' : '280';
		$oFCKeditor->Value		= tag2atm($value,1);
		$oFCKeditor->ToolbarSet	= !$mode ? 'Default' : 'Basic';
		$oFCKeditor->Create();
		echo "</td></tr>\n";
	}elseif(in_array($type,array('images','files','medias','flashs'))){
		$type = substr($type,0,strlen($type)-1);
		echo "<tr><td width=\"$width\" class=\"item1\">".$trname."</td>\n";
		echo "<td class=\"item2\">\n";
		uploadmodule($varname,$value,$type,$mode);
		echo "</td></tr>\n";
	}elseif($type == 'image'){
		echo "<tr><td width=\"$width\" class=\"item1\">".$trname."</td>\n";
		echo "<td class=\"item2\">\n";
		singlemodule($varname,$value,'image');
		echo "<div class=\"s_view\" style=\"display:none;\" id=\"view$varname\">\n".
		"<img src=\"./images/admina/pview.gif\" id=\"{$varname}view\" width=\"150\" height=\"120\" align=\"absmiddle\">\n".
		"</div>\n";
		echo "</td></tr>\n";
	}elseif(in_array($type,array('file','flash','media'))){
		echo "<tr><td width=\"$width\" class=\"item1\">".$trname."</td>\n";
		echo "<td class=\"item2\">\n";
		singlemodule($varname,$value,$type,$mode);
		echo "</td></tr>\n";
	}elseif($type == 'text'){
		echo "<tr><td width=\"$width\" class=\"item1\">".$trname."</td>\n";
		echo "<td class=\"item2\"><input type=\"text\" size=\"".($mode ? 60 : 20)."\" id=\"$varname\" name=\"$varname\" value=\"".$value."\"></td></tr>\n";
	}elseif($type == 'multitext'){//
		echo "<tr><td width=\"$width\" class=\"item1\">".$trname."</td>\n";
		echo "<td class=\"item2\"><textarea rows=\"".($mode ? 10 : 4)."\" id=\"$varname\" name=\"$varname\" id=\"$varname\" cols=\"".($mode ? 100 : 50)."\">".$value."</textarea></td></tr>\n";
	}elseif($type == 'select'){
		echo "<tr><td width=\"$width\" class=\"item1\">".$trname."</td>\n";
		echo "<td class=\"item2\">".($mode ? $value : "<select name=\"$varname\">".$value."</select>")."</td></tr>\n";
	}elseif($type == 'mselect'){
		echo "<tr><td width=\"$width\" class=\"item1\">".$trname."</td>\n";
		echo "<td class=\"item2\">".$value."</td></tr>\n";
	}elseif($type == 'date'){
		echo "<tr><td width=\"$width\" class=\"item1\">".$trname."</td>\n";
		echo "<td class=\"item2\"><input type=\"text\" id=\"$varname\" size=\"10\" name=\"$varname\" value=\"".$value."\" onclick=\"ShowCalendar(this.id);\"></td></tr>\n";
	}
}
function uploadmodule($fieldname,$value = '',$mode = 'image',$vp = 0){
	global $localfiles,$images_max,$files_max,$medias_max,$flashs_max;
	load_cache('localfiles');
	$upfilestr = '';
	${'exts_'.$mode} = implode(',',array_keys($localfiles[$mode]));
	$countlimit = ${$mode.'s_max'};
	if($mode == 'image'){
		if($value){
			$upfiles = @unserialize($value);
			if(is_array($upfiles)){
				foreach($upfiles as $k => $upfile){
					$viewwidth = 150;
					$viewheight = 120;
					if(!empty($upfile['width']) && !empty($upfile['height'])){
						$x_ratio = $viewwidth / $upfile['width'];
						$y_ratio = $viewheight / $upfile['height'];
						if(($x_ratio * $upfile['height']) < $viewheight) {
							$thumb['height'] = @ceil($x_ratio * $upfile['height']);
							$thumb['width'] = $viewwidth;
						} else {
							$thumb['width'] = @ceil($y_ratio * $upfile['width']);
							$thumb['height'] = $viewheight;
						}
					}else{
							$thumb['width'] = $viewwidth;
							$thumb['height'] = $viewheight;
					}
					$upfile['preview'] = view_thumburl($upfile['remote']);
					$upfile['remote'] = tag2atm($upfile['remote']);
					$upfilestr .= "addmodule('$fieldname','$mode',$k,'$upfile[title]','$upfile[remote]','$upfile[preview]');";
				}
				$countlimit -= count($upfiles); 
			}
		}
		echo "<div id=\"add$fieldname\" style=\"display:none;\">".
			"<div class=\"ibox\">".
			"<div class=\"info\">".
			"<div class=\"tr\">".
			"<div class=\"td1\">".lang('mode')."</div>".
			"<div class=\"td2\"><input class=\"checkbox\" type=\"checkbox\" name=\"{$fieldname}mode\" value=\"1\">".
			"<span id=\"{$fieldname}edit\" style=\"vertical-align: middle;\">".lang('local_upload')."</span></div>".
			"</div>".
			"<div class=\"tr\">".
			"<div class=\"td1\">".lang('file')."</div>".
			"<div class=\"td2\"><input type=\"file\" size=\"30\" name=\"{$fieldname}local\" style=\"display:none;\" onChange=\"\">".
			"<input type=\"text\" size=\"30\" name=\"{$fieldname}remote\" value=\"\" style=\"display:;\" onChange=\"\">".
			"<input class=\"button\" type=\"button\" name=\"{$fieldname}select\" value=\"".lang('chooseinserver')."\" style=\"display:;\">".
			"<span id=\"{$fieldname}name\" style=\"vertical-align: middle;\"></span></div>".
			"</div>".
			"<div class=\"tr\">".
			"<div class=\"td1\">".lang('title')."</div>".
			"<div class=\"td2\"><input type=\"text\" size=\"50\" name=\"{$fieldname}title\" value=\"\"></div>".
			"</div>".
			"</div>".
			"<div class=\"thumb\"><img src=\"./images/admina/pview.gif\" id=\"{$fieldname}view\" width=\"150\" height=\"120\" align=\"absmiddle\"></div>".
			"</div>".
			"</div>";
		echo "<div id=\"new$fieldname\"></div><script type=\"text/javascript\">".
			"_08cms_uploads.$mode.$fieldname=0;".
			"var {$fieldname}_limit = '$countlimit';".
			"var viewwidth = 150;".
			"var viewheight = 120;".
			"var image_extensions = '".$exts_image."';$upfilestr".
			"addmodule('".$fieldname."','".$mode."');".
			"</script>";
	}
	elseif(in_array($mode,array('file','media','flash'))){
		if($vp && in_array($mode,array('media','flash'))){
			global $players;
			load_cache('players');
			$playerarr = array('0' => lang('default player'));
			foreach($players as $plid => $player){
				($player['available'] && $player['ptype'] == $mode) && $playerarr[$plid] = $player['cname'];
			}
		}
		if($value){
			$upfiles = @unserialize($value);
			if(is_array($upfiles)){
				foreach($upfiles as $k => $upfile){
					$tmp=$vp && in_array($mode,array('media','flash'))?1:0;
					$upfile['remote'] = tag2atm($upfile['remote']);
					$upfilestr .= "addmodule('$fieldname','$mode',$k,'$upfile[title]','$upfile[remote]','".($tmp?$upfile['player']:'')."',$tmp);";
				}
				$countlimit -= count($upfiles); 
			}
		}
		echo "<div id=\"add$fieldname\" style=\"display:none;\">".
			"<div class=\"fbox\">".
			"<div class=\"tr\">".
			"<div class=\"td1\">".lang('mode')."</div>".
			"<div class=\"td2\"><input class=\"checkbox\" type=\"checkbox\" name=\"{$fieldname}mode\" value=\"1\">".
			"<span id=\"{$fieldname}edit\" style=\"vertical-align: middle;\">".lang('local_upload')."</span></div>".
			"</div>".
			"<div class=\"tr\">".
			"<div class=\"td1\">".lang('file')."</div>".
			"<div class=\"td2\"><input type=\"file\" size=\"30\" name=\"{$fieldname}local\" style=\"display:none;\" onChange=\"\">".
			"<input type=\"text\" size=\"30\" name=\"{$fieldname}remote\" value=\"\" style=\"display:;\" onChange=\"\">".
			"<input class=\"button\" type=\"button\" name=\"{$fieldname}select\" value=\"".lang('chooseinserver')."\" style=\"display:;\">".
			"<span id=\"{$fieldname}name\" style=\"vertical-align: middle;\"></span></div>".
			"</div>".
			"<div class=\"tr\">".
			"<div class=\"td1\">".lang('title')."</div>".
			"<div class=\"td2\"><input type=\"text\" size=\"50\" name=\"{$fieldname}title\" value=\"\"></div>".
			"</div>";
		if($vp && in_array($mode,array('media','flash'))){
			echo "<div class=\"tr\">".
			"<div class=\"td1\">".lang('player')."</div>".
			"<div class=\"td2\"><select id=\"{$fieldname}player\" name=\"{$fieldname}player\">".makeoption($playerarr)."</select></div>".
			"</div>";
		}
		echo "</div>".
			"</div>";
		echo "<div id=\"new$fieldname\"></div>";
		echo "<script type=\"text/javascript\">".
			"_08cms_uploads.$mode.$fieldname=0;".
			"var {$fieldname}_limit = '$countlimit';".
			"var ".$mode."_extensions = '".${'exts_'.$mode}."';$upfilestr".
			"addmodule('".$fieldname."','".$mode."');".
			"</script>";
	}
}
function singlemodule($varname,$value = '',$mode = 'image',$vp = 0){
	global $localfiles;
	load_cache('localfiles');
	${'exts_'.$mode} = implode(',',array_keys($localfiles[$mode]));
	$oldarr = explode('#',$value);
	$oldremote = tag2atm($oldarr[0]);
	if($mode == 'image'){
		echo "<div class=\"s_tr\">\n".
			"<div class=\"td1\">\n".
			"<input type=\"file\" size=\"30\" id=\"{$varname}local\" name=\"{$varname}local\" style=\"display:none;\" unselectable=\"on\" onchange=\"checksingle('".$varname."','image')\">\n".
			"<input type=\"text\" size=\"30\" id=\"{$varname}remote\" name=\"{$varname}remote\" value=\"$oldremote\" style=\"display:;\" onchange=\"checksingle('".$varname."','image')\">\n".	
			"<input type=\"button\" class=\"button\" id=\"{$varname}select\" value=\"".lang('chooseinserver')."\" style=\"display:;\" onclick=\"severmanager('".$varname."','0','singleimage')\">\n".
			"</div>".
			"<div class=\"td2\">\n".
			"<input class=\"checkbox\" type=\"checkbox\" id=\"{$varname}mode\" name=\"{$varname}mode\" value=\"1\" onclick = \"singlemode('".$varname."','image')\">".lang('local_upload')."\n".
			"</div>".
			"<div class=\"td3\">\n".
			"<span id=\"openview$varname\" style=\"cursor:pointer;\" onclick=\"openview('".$varname."')\"><img src=\"./images/admina/pv_open.gif\" title=\"".lang('preview')."\"></span>\n".
			"</div>\n".
			"</div>\n".
			"<div id=\"{$varname}_hidden\" style=\"position:absolute;left:-100000px;top:-100000px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale');width:250px;height:250px\"></div>\n".
			"<script type=\"text/javascript\">\n".
			"var viewwidth = 150;\n".
			"var viewheight = 120;\n".
			"var ".$mode."_extensions = '".${"exts_".$mode}."';\n".
			"</script>\n";
	
	}elseif(in_array($mode,array('flash','media','file'))){
		if($vp && in_array($mode,array('flash','media'))){
			global $players;
			load_cache('players');
			$oldplayer = !empty($oldarr[1]) ? $oldarr[1] : '0';
			$playerarr = array('0' => lang('default player'));
			foreach($players as $plid => $player){
				($player['available'] && $player['ptype'] == $mode) && $playerarr[$plid] = $player['cname'];
			}
		}
		echo "<div class=\"s_tr\">\n".
			"<div class=\"td1\">\n".
			"<input type=\"file\" size=\"30\" id=\"{$varname}local\" name=\"{$varname}local\" style=\"display:none;\" unselectable=\"on\" onchange=\"checksingle('".$varname."','".$mode."')\">\n".
			"<input type=\"text\" size=\"30\" id=\"{$varname}remote\" name=\"{$varname}remote\" value=\"$oldremote\" style=\"display:;\" onchange=\"checksingle('".$varname."','".$mode."')\">\n".	
			"<input type=\"button\" class=\"button\" id=\"{$varname}select\" value=\"".lang('chooseinserver')."\" style=\"display:;\" onclick=\"severmanager('".$varname."','0','single".$mode."')\">\n".
			"</div>".
			"<div class=\"td2\">\n".
			"<input class=\"checkbox\" type=\"checkbox\" id=\"{$varname}mode\" name=\"{$varname}mode\" value=\"1\" onclick = \"singlemode('".$varname."','".$mode."')\">".lang('local_upload')."\n".
			"</div>";
		if($vp && in_array($mode,array('flash','media'))){
			echo "<div class=\"s_tr\">\n".
				"<div class=\"td1\"><select id=\"{$varname}player\" name=\"{$varname}player\">".makeoption($playerarr,$oldplayer)."</select></div>\n".
				"</div>\n";
		}
		echo "</div>\n".
			"<script type=\"text/javascript\">\n".
			"var ".$mode."_extensions = '".${"exts_".$mode}."';\n".
			"</script>\n";
	}
}
function upload_m($varname,$oldvalue = '',$mode = 'image',$rpid=0){
	global $$varname,$c_upload,${'old'.$varname};
	$result = '';
	$maxoldkey = 0;
	$oldfiles = array();
	$old = ${'old'.$varname};
	if(!empty($oldvalue)){
		$oldfiles = unserialize($oldvalue);
		if(!empty($oldfiles)){
			foreach($oldfiles as $k => $oldfile){
				if(!isset($old[$k]['title'])){
					unset($oldfiles[$k]);
					continue;
				}
				if($old[$k]['remote']){
					$old[$k]['remote'] = tag2atm($old[$k]['remote']);
					if(islocal($old[$k]['remote'],1))
						$oldfiles[$k]['remote'] = save_atmurl($old[$k]['remote']);
					else
						$oldfiles[$k] = $c_upload->remote_upload($old[$k]['remote'],$rpid);
					if($mode == 'image' && $infos = @getimagesize(local_file($oldfiles[$k]['remote']))){
						$oldfiles[$k]['width'] = $infos[0];
						$oldfiles[$k]['height'] = $infos[1];
					}
				}else{
					$upload = $c_upload->local_upload('old'.$varname.'local'.$k,$mode);
					if(empty($uploadfile['error']))$oldfiles[$k]=$upload;
				}
				$oldfiles[$k]['title'] = strip_tags($old[$k]['title']);
				isset($old[$k]['player']) && $oldfiles[$k]['player'] = $old[$k]['player'];
			}
		}
		if(!empty($oldfiles)){
			$maxoldkey = max(array_keys($oldfiles)) + 1;
		}
	}

	if(!empty($$varname)){
		$upfilesadd = $$varname;

		foreach($upfilesadd as $k => $upfileadd){
			$addok = 0;
			$uploadfile = array();
			if($upfileadd['remote']){
				$upfileadd['remote'] = strip_tags($upfileadd['remote']);
				if(!islocal($upfileadd['remote'],1)){
					$uploadfile = $c_upload->remote_upload($upfileadd['remote'],$rpid);
					$upfileadd = array_merge($upfileadd,$uploadfile);
				}
				if($mode == 'image' && !isset($uploadfile['width']) && $infos = @getimagesize(local_file($upfileadd['remote']))){
					$upfileadd['width'] = $infos[0];
					$upfileadd['height'] = $infos[1];
				}
				$addok = 1;
			}else{
				$uploadfile = $c_upload->local_upload($varname.'local'.$k,$mode);
				if(empty($uploadfile['error'])){
					$upfileadd = array_merge($upfileadd,$uploadfile);
					$addok = 1;
				}
			}
			$upfileadd['remote'] = save_atmurl($upfileadd['remote']);
			$upfileadd['title'] = strip_tags($upfileadd['title']);
			if($addok) $oldfiles[$maxoldkey + $k] = $upfileadd;
		}
	}
	$result = empty($oldfiles) ? '' : addslashes(serialize($oldfiles));
	return $result;
}
function upload_s($varname,$oldvalue = '',$mode = 'image',$rpid=0){
	$remotename = $varname.'remote';
	$modename = $varname.'mode';
	$playername = $varname.'player';
	global $$remotename,$$modename,$$playername,$c_upload;
	$upremote = $$remotename;
	$upmode = $$modename;
	$plid = $$playername;
	$plidstr = !empty($plid) ? '#'.$plid : '';
	
	$oldarr = explode('#',$oldvalue);
	$oldremote = tag2atm($oldarr[0]);
	$filearr = array();
	$newvalue = '';
	$upremote = trim($upremote);
	
	if(empty($upmode) && empty($upremote)){
		$newvalue = '';
	}elseif(!empty($upremote) && empty($upmode) && ($upremote != $oldremote)){
		$upremote = strip_tags($upremote);
		if(!islocal($upremote,1)){
			$filearr = $c_upload->remote_upload($upremote,$rpid);//返回的是小url
			$newvalue = $filearr['remote'];
			if($mode == 'image' && isset($filearr['width']) && isset($filearr['height'])){
				$newvalue .= '#'.$filearr['width'].'#'.$filearr['height'];
			}elseif($mode == 'image' && $infos = getimagesize(local_file($newvalue))){
				$newvalue .= '#'.$infos[0].'#'.$infos[1];
			}
		}else{
			$newvalue = $upremote;
			if($mode == 'image' && $infos = getimagesize(local_file($newvalue))){
				$newvalue .= '#'.$infos[0].'#'.$infos[1];
			}
		}
	}elseif(!empty($upmode)){
		$filearr = $c_upload->local_upload($varname.'local',$mode);
		if(empty($filearr['error'])){
			$newvalue = $filearr['remote'];
			if($mode == 'image' && isset($filearr['width']) && isset($filearr['height'])){
				$newvalue .= '#'.$filearr['width'].'#'.$filearr['height'];
			}
		}
	}else{
		$newvalue = in_array($mode,array('flash','media')) ? $oldremote : $oldvalue;
	}
	$newvalue .= !empty($newvalue) ? $plidstr : '';
	$newvalue = save_atmurl($newvalue);
	unset($filearr,$oldarr);
	return $newvalue;
}
function rm_filesize($url){
	$url = parse_url($url);
	if($fp = fsockopen($url['host'],empty($url['port']) ? 80 : $url['port'],$error)){
		fputs($fp,"GET ".(empty($url['path']) ? '/' : $url['path'])." HTTP/1.1\r\n");
		fputs($fp,"Host:$url[host]\r\n\r\n");
		while(!feof($fp)){
			$tmp = fgets($fp);
			if(trim($tmp) == ''){
				break;
			}elseif(preg_match('/Content-Length:(.*)/si',$tmp,$arr)){
				return trim($arr[1]);
			}
		}
	}
	return 0;
}

function atm_size($value,$datatype,$mode=0){//使用没有经过addslashes的值,以k为单位
	if(empty($value)) return 0;
	$size = 0;
	if(in_array($datatype,array('image','flash','media','file'))){
		$temps = explode('#',$value);
		if($url = tag2atm($temps[0])) $size = islocal($url) ? filesize(local_file($url)) : rm_filesize($url);
	}elseif(in_array($datatype,array('images','flashs','medias','files'))){
		if($temps = @unserialize($value)){
			foreach($temps as $v){
				if($url = tag2atm($v['remote'])){
					$size += isset($v['size']) ? $v['size'] : (islocal($url) ? filesize(local_file($url)) : rm_filesize($url));
					if($mode) break;
				}
			}
		}
	}
	unset($temps,$url);
	return intval($size / 1024);
}
?>