| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 | 
							- <?php
 
- class formguide_form {
 
- 	var $formid;
 
- 	var $fields;
 
- 	var $id;
 
- 	var $formValidator;
 
-     function __construct($formid, $no_allowed = 0) {
 
- 		$this->formid = $formid;
 
- 		$this->no_allowed = $no_allowed ? 'disabled=""' : '';
 
- 		$this->fields = getcache('formguide_field_'.$formid, 'model');
 
- 		$this->siteid = get_siteid();
 
-     }
 
- 	function get($data = array()) {
 
- 		$_groupid = param::get_cookie('_groupid');
 
- 		$this->data = $data;
 
- 		if(isset($data['id'])) $this->id = $data['id'];
 
- 		$info = array();
 
- 		$info = array();
 
- 		if (is_array($this->fields)) { 
 
- 			foreach($this->fields as $field=>$v) {
 
- 				$func = $v['formtype'];
 
- 				$value = isset($data[$field]) ? new_html_special_chars($data[$field]) : '';
 
- 				if($func=='pages' && isset($data['maxcharperpage'])) {
 
- 					$value = $data['paginationtype'].'|'.$data['maxcharperpage'];
 
- 				}
 
- 				if(!method_exists($this, $func)) continue;
 
- 				$form = $this->$func($field, $value, $v);
 
- 				if($form !== false) {
 
- 					$star = $v['minlength'] || $v['pattern'] ? 1 : 0;
 
- 					$info[$field] = array('name'=>$v['name'], 'tips'=>$v['tips'], 'form'=>$form, 'star'=>$star,'isomnipotent'=>$v['isomnipotent'],'formtype'=>$v['formtype']);
 
- 				}
 
- 			}
 
- 		}
 
- 		return $info;
 
- 	}
 
- 	function text($field, $value, $fieldinfo) {
 
- 		extract($fieldinfo);
 
- 		$setting = string2array($setting);
 
- 		$size = $setting['size'];
 
- 		if(!$value) $value = $defaultvalue;
 
- 		$type = $ispassword ? 'password' : 'text';
 
- 		$errortips = $this->fields[$field]['errortips'];
 
- 		$regexp = $pattern ? '.regexValidator({regexp:"'.substr($pattern,1,-1).'",onerror:"'.$errortips.'"})' : '';
 
- 		if($errortips) $this->formValidator .= '$("#'.$field.'").formValidator({onshow:"'.$errortips.'",onfocus:"'.$errortips.'"}).inputValidator({min:'.$minlength.',max:'.$maxlength.',onerror:"'.$errortips.'"})'.$regexp.';';
 
- 		return '<input type="text" name="info['.$field.']" id="'.$field.'" size="'.$size.'" value="'.$value.'" '.$this->no_allowed.' class="input-text" '.$formattribute.' '.$css.'>';
 
- 	}
 
- 	function textarea($field, $value, $fieldinfo) {
 
- 		extract($fieldinfo);
 
- 		$setting = string2array($setting);
 
- 		extract($setting);
 
- 		if(!$value) $value = $defaultvalue;
 
- 		$allow_empty = 'empty:true,';
 
- 		if($minlength || $pattern) $allow_empty = '';
 
- 		if($errortips) $this->formValidator .= '$("#'.$field.'").formValidator({'.$allow_empty.'onshow:"'.$errortips.'",onfocus:"'.$errortips.'"}).inputValidator({min:1,onerror:"'.$errortips.'"});';
 
- 		$value = empty($value) ? $setting['defaultvalue'] : $value;
 
- 		return "<textarea name='info[{$field}]' id='$field' style='width:{$width}%;height:{$height}px;' $formattribute $css $this->no_allowed>{$value}</textarea>";
 
- 	}
 
- 	function editor($field, $value, $fieldinfo) {
 
- 		//是否允许用户上传附件 ,后台管理员开启此功能
 
- 		extract($fieldinfo);
 
- 		extract(string2array($setting));
 
- 		$allowupload = defined('IN_ADMIN') ? 1 : 0;
 
- 		if(!$value) $value = $defaultvalue;
 
- 		if($minlength || $pattern) $allow_empty = '';
 
- 		if($errortips) $this->formValidator .= '$("#'.$field.'").formValidator({'.$allow_empty.'onshow:"",onfocus:"'.$errortips.'"}).inputValidator({min:1,onerror:"'.$errortips.'"});';
 
- 		return "<div id='{$field}_tip'></div>".'<textarea name="info['.$field.']" id="'.$field.'" boxid="'.$field.'">'.$value.'</textarea>'.form::editor($field,$toolbar,'member','','',$allowupload,1,'',300);
 
- 	}
 
- 	function box($field, $value, $fieldinfo) {
 
- 		$setting = string2array($fieldinfo['setting']);
 
- 		if($value=='') $value = $this->fields[$field]['defaultvalue'];
 
- 		$options = explode("\n",$this->fields[$field]['options']);
 
- 		foreach($options as $_k) {
 
- 			$v = explode("|",$_k);
 
- 			$k = trim($v[1]);
 
- 			$option[$k] = $v[0];
 
- 		}
 
- 		$values = explode(',',$value);
 
- 		$value = array();
 
- 		foreach($values as $_k) {
 
- 			if($_k != '') $value[] = $_k;
 
- 		}
 
- 		$value = implode(',',$value);
 
- 		switch($this->fields[$field]['boxtype']) {
 
- 			case 'radio':
 
- 				$string = form::radio($option,$value,"name='info[$field]'",$setting['width'],$field);
 
- 			break;
 
- 			case 'checkbox':
 
- 				$string = form::checkbox($option,$value,"name='info[$field][]'",1,$setting['width'],$field);
 
- 			break;
 
- 			case 'select':
 
- 				$string = form::select($option,$value,"name='info[$field]' id='$field'");
 
- 			break;
 
- 			case 'multiple':
 
- 				$string = form::select($option,$value,"name='info[$field][]' id='$field' size=2 multiple='multiple' style='height:60px;'");
 
- 			break;
 
- 		}
 
- 		return $string;
 
- 	}	function image($field, $value, $fieldinfo) {
 
- 		$setting = string2array($fieldinfo['setting']);
 
- 		extract($setting);
 
- 		if(!defined('IMAGES_INIT')) {
 
- 			$str = '<script type="text/javascript" src="'.JS_PATH.'swfupload/swf2ckeditor.js"></script><script language="javascript" type="text/javascript" src="'.JS_PATH.'content_addtop.js"></script>';
 
- 			define('IMAGES_INIT', 1);
 
- 		}
 
- 		$authkey = upload_key("1,$upload_allowext,$isselectimage,$images_width,$images_height");
 
- 		if($show_type) {
 
- 			$preview_img = $value ? $value : IMG_PATH.'icon/upload-pic.png';
 
- 			return $str."<div class='upload-pic img-wrap'><input type='hidden' name='info[$field]' id='$field' value='$value'>
 
- 			<a href='javascript:;' onclick=\"javascript:flashupload('{$field}_images', '".L('attachment_upload')."','{$field}',thumb_images,'1,$upload_allowext,$isselectimage,$images_width,$images_height','member','','{$authkey}')\">
 
- 			<img src='$preview_img' id='{$field}_preview' width='135' height='113' style='cursor:hand' /></a></div>";
 
- 		} else {
 
- 			return $str."<input type='text' name='info[$field]' id='$field' value='$value' size='$size' $this->no_allowed class='input-text' />  <input type='button' class='button' $this->no_allowed onclick=\"javascript:flashupload('{$field}_images', '".L('attachment_upload')."','{$field}',submit_images,'1,{$upload_allowext},$isselectimage,$images_width,$images_height','member','','{$authkey}')\"/ value='".L('image_upload')."'>";
 
- 		}
 
- 	}
 
- 	function images($field, $value, $fieldinfo) {
 
- 		extract($fieldinfo);
 
- 		$list_str = '';
 
- 		if($value) {
 
- 			$value = string2array(new_html_entity_decode($value));
 
- 			if(is_array($value)) {
 
- 				foreach($value as $_k=>$_v) {
 
- 				$list_str .= "<li id='image{$_k}' style='padding:1px'><input type='text' name='{$field}_url[]' value='{$_v[url]}' style='width:310px;' ondblclick='image_priview(this.value);' class='input-text'> <input type='text' name='{$field}_alt[]' value='{$_v[alt]}' style='width:160px;' class='input-text'> <a href=\"javascript:remove_div('image{$_k}')\">".L('remove')."</a></li>";
 
- 				}
 
- 			}
 
- 		} else {
 
- 			//$list_str .= "<input type='hidden' name='{$field}_url[]' value='0'>";
 
- 			$list_str .= "<center><div class='onShow' id='nameTip'>".L('max_upload_num')." <font color='red'>{$upload_number}</font> ".L('zhang')."</div></center>";
 
- 		}
 
- 		$string = '<input name="info['.$field.']" type="hidden" value="1">
 
- 		<fieldset class="blue pad-10">
 
-         <legend>'.L('picutre_list').'</legend>';
 
- 		$string .= $list_str;
 
- 		$string .= '<ul id="'.$field.'" class="picList"></ul>
 
- 		</fieldset>
 
- 		<div class="bk10"></div>
 
- 		';
 
- 		if(!defined('IMAGES_INIT')) {
 
- 			$str = '<script type="text/javascript" src="'.JS_PATH.'swfupload/swf2ckeditor.js"></script><script language="javascript" type="text/javascript" src="'.JS_PATH.'content_addtop.js"></script>';
 
- 			define('IMAGES_INIT', 1);
 
- 		} else {
 
- 			$str = '';
 
- 		}
 
- 		$authkey = upload_key("$upload_number,$upload_allowext,$isselectimage");
 
- 		$string .= $str."<div class='picBut cu'><a herf='javascript:void(0);' onclick=\"javascript:flashupload('{$field}_images', '".L('attachment_upload')."','{$field}',change_images,'{$upload_number},{$upload_allowext},{$isselectimage}','formguide','','{$authkey}')\"/> ".L('select_picture')." </a></div>";
 
- 		return $string;
 
- 	}	function number($field, $value, $fieldinfo) {
 
- 		extract($fieldinfo);
 
- 		if(!$value) $value = $defaultvalue;
 
- 		$errortips = $this->fields[$field]['errortips'];
 
- 		if($errortips) $this->formValidator .= '$("#'.$field.'").formValidator({onshow:"'.$errortips.'",onfocus:"'.$errortips.'"}).inputValidator({min:'.$minnumber.',max:'.$maxnumber.',onerror:"'.$errortips.'"}).regexValidator({regexp:"num",datatype:"enum",onerror:"'.$errortips.'"});';
 
- 		return "<input type='text' name='info[$field]' id='$field' value='$value' size='$size' $this->no_allowed class='input-text' {$formattribute} {$css}>";
 
- 	}
 
- 	function datetime($field, $value, $fieldinfo) {
 
- 		extract(string2array($fieldinfo['setting']));
 
- 		$isdatetime = 0;
 
- 		if($fieldtype=='int') {
 
- 			if(!$value) $value = SYS_TIME;
 
- 			$format_txt = $format == 'm-d' ? 'm-d' : $format;
 
- 			$value = date($format_txt,$value);
 
- 			$isdatetime = strlen($format) > 6 ? 1 : 0;
 
- 		} elseif($fieldtype=='datetime') {
 
- 			$isdatetime = 1;
 
- 		}
 
- 		return form::date("info[$field]",$value,$isdatetime,1);
 
- 	}
 
- 	function linkage($field, $value, $fieldinfo) {
 
- 		$setting = string2array($fieldinfo['setting']);
 
- 		$linkageid = $setting['linkageid'];
 
- 		return menu_linkage($linkageid,$field,$value);
 
- 	}
 
-  } 
 
- ?>
 
 
  |