modelid = $modelid; $this->catid = $catid; $this->categorys = $categorys; $this->fields = getcache('model_field_'.$modelid,'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(); $this->content_url = $data['url']; foreach($this->fields as $field=>$v) { if(defined('IN_ADMIN')) { if($v['iscore'] || check_in($_SESSION['roleid'], $v['unsetroleids'])) continue; } else { if($v['iscore'] || !$v['isadd'] || check_in($_groupid, $v['unsetgroupids'])) continue; } $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) { if(defined('IN_ADMIN')) { if($v['isbase']) { $star = $v['minlength'] || $v['pattern'] ? 1 : 0; $info['base'][$field] = array('name'=>$v['name'], 'tips'=>$v['tips'], 'form'=>$form, 'star'=>$star,'isomnipotent'=>$v['isomnipotent'],'formtype'=>$v['formtype']); } else { $star = $v['minlength'] || $v['pattern'] ? 1 : 0; $info['senior'][$field] = array('name'=>$v['name'], 'tips'=>$v['tips'], 'form'=>$form, 'star'=>$star,'isomnipotent'=>$v['isomnipotent'],'formtype'=>$v['formtype']); } } else { $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']; if($errortips || $minlength) $this->formValidator .= '$("#'.$field.'").formValidator({onshow:"",onfocus:"'.$errortips.'"}).inputValidator({min:1,onerror:"'.$errortips.'"});'; return ''; } 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; $str = "'.form::editor($field,$toolbar,$toolvalue,'content',$this->catid,'',$allowupload,1,'',$height,$disabled_page); } function catid($field, $value, $fieldinfo) { if(!$value) $value = $this->catid; $publish_str = ''; if(defined('IN_ADMIN') && ROUTE_A=='add') $publish_str = " siteid."','".L('publish_to_othor_category')."',1);return false;\" style='color:#B5BFBB'>[".L('publish_to_othor_category')."]"; return ''.$this->categorys[$value]['catname'].$publish_str; } function title($field, $value, $fieldinfo) { extract($fieldinfo); $style_arr = explode(';',$this->data['style']); $style_color = $style_arr[0]; $style_font_weight = $style_arr[1] ? $style_arr[1] : ''; $style = 'color:'.$this->data['style']; if(!$value) $value = $defaultvalue; $errortips = $this->fields[$field]['errortips']; $errortips_max = L('title_is_empty'); if($errortips) $this->formValidator .= '$("#'.$field.'").formValidator({onshow:"",onfocus:"'.$errortips.'"}).inputValidator({min:'.$minlength.',max:'.$maxlength.',onerror:"'.$errortips_max.'"});'; $str = ' '; if(defined('IN_ADMIN')) $str .= ' '; $str .= L('can_enter').''.$maxlength.' '.L('characters'); return $str; } 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]' $fieldinfo[formattribute]",$setting['width'],$field); break; case 'checkbox': $string = form::checkbox($option,$value,"name='info[$field][]' $fieldinfo[formattribute]",1,$setting['width'],$field); break; case 'select': $string = form::select($option,$value,"name='info[$field]' id='$field' $fieldinfo[formattribute]"); break; case 'multiple': $string = form::select($option,$value,"name='info[$field][]' id='$field ' size=2 multiple='multiple' style='height:60px;' $fieldinfo[formattribute]"); break; } return $string; } function image($field, $value, $fieldinfo) { $setting = string2array($fieldinfo['setting']); extract($setting); if(!defined('IMAGES_INIT')) { $str = ''; define('IMAGES_INIT', 1); } $html = ''; if (defined('IN_ADMIN')) { $html = ""; } $authkey = upload_key("1,$upload_allowext,$isselectimage,$images_width,$images_height,$watermark"); if($show_type && defined('IN_ADMIN')) { $preview_img = $value ? $value : IMG_PATH.'icon/upload-pic.png'; return $str."
catid','$authkey');return false;\"> ".$html."
"; } else { return $str." catid','$authkey')\"/ value='".L('upload_pic', '', 'content')."'>".$html; } } 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 .= "
".L('remove_out', '', 'content')."
"; } } } else { $list_str .= "
".L('upload_pic_max', '', 'content')." {$upload_number} ".L('tips_pics', '', 'content')."
"; } $string = '
'.L('pic_list').''; $string .= $list_str; $string .= '
'; if(!defined('IMAGES_INIT')) { $str = ''; define('IMAGES_INIT', 1); } $authkey = upload_key("$upload_number,$upload_allowext,$isselectimage"); $string .= $str."
catid','{$authkey}')\"/> ".L('select_pic')."
"; return $string; } function number($field, $value, $fieldinfo) { extract($fieldinfo); $setting = string2array($setting); $size = $setting['size']; if(!$value) $value = $defaultvalue; return ""; } function datetime($field, $value, $fieldinfo) { extract(string2array($fieldinfo['setting'])); $isdatetime = 0; $timesystem = 0; if($fieldtype=='int') { if(!$value) $value = SYS_TIME; $format_txt = $format == 'm-d' ? 'm-d' : $format; if($format == 'Y-m-d Ah:i:s') $format_txt = 'Y-m-d h:i:s'; $value = date($format_txt,$value); $isdatetime = strlen($format) > 6 ? 1 : 0; if($format == 'Y-m-d Ah:i:s') { $timesystem = 0; } else { $timesystem = 1; } } elseif($fieldtype=='datetime') { $isdatetime = 1; $timesystem = 1; } elseif($fieldtype=='datetime_a') { $isdatetime = 1; $timesystem = 0; } return form::date("info[$field]",$value,$isdatetime,1,'true',$timesystem); } function posid($field, $value, $fieldinfo) { $setting = string2array($fieldinfo['setting']); $position = getcache('position','commons'); if(empty($position)) return ''; $array = array(); foreach($position as $_key=>$_value) { if($_value['modelid'] && ($_value['modelid'] != $this->modelid) || ($_value['catid'] && strpos(','.$this->categorys[$_value['catid']]['arrchildid'].',',','.$this->catid.',')===false)) continue; $array[$_key] = $_value['name']; } $posids = array(); if(ROUTE_A=='edit') { $this->position_data_db = pc_base::load_model('position_data_model'); $result = $this->position_data_db->select(array('id'=>$this->id,'modelid'=>$this->modelid),'*','','','','posid'); $posids = implode(',', array_keys($result)); } else { $posids = $setting['defaultvalue']; } return "".form::checkbox($array,$posids,"name='info[$field][]'",'',$setting['width']); } function keyword($field, $value, $fieldinfo) { extract($fieldinfo); if(!$value) $value = $defaultvalue; return ""; } function author($field, $value, $fieldinfo) { return ''; } function copyfrom($field, $value, $fieldinfo) { $value_data = ''; if($value && strpos($value,'|')!==false) { $arr = explode('|',$value); $value = $arr[0]; $value_data = $arr[1]; } $copyfrom_array = getcache('copyfrom','admin'); $copyfrom_datas = array(L('copyfrom_tips')); if(!empty($copyfrom_array)) { foreach($copyfrom_array as $_k=>$_v) { if($this->siteid==$_v['siteid']) $copyfrom_datas[$_k] = $_v['sitename']; } } return "".form::select($copyfrom_datas,$value_data,"name='{$field}_data' "); } function groupid($field, $value, $fieldinfo) { extract(string2array($fieldinfo['setting'])); $grouplist = getcache('grouplist','member'); foreach($grouplist as $_key=>$_value) { $data[$_key] = $_value['name']; } return ''.form::checkbox($data,$value,'name="'.$field.'[]" id="'.$field.'"','','120'); } function islink($field, $value, $fieldinfo) { if($value) { $url = $this->data['url']; $checked = 'checked'; $_GET['islink'] = 1; } else { $disabled = 'disabled'; $url = $checked = ''; $_GET['islink'] = 0; } $size = $fieldinfo['size'] ? $fieldinfo['size'] : 25; return ' '.L('islink_url').''; } function template($field, $value, $fieldinfo) { $sitelist = getcache('sitelist','commons'); $default_style = $sitelist[$this->siteid]['default_style']; return form::select_template($default_style,'content',$value,'name="info['.$field.']" id="'.$field.'"','show'); } function pages($field, $value, $fieldinfo) { extract($fieldinfo); if($value) { $v = explode('|', $value); $data = "".L('page_maxlength').""; return $data; } else { return " ".L('page_maxlength').""; } } function typeid($field, $value, $fieldinfo) { extract($fieldinfo); $setting = string2array($setting); if(!$value) $value = $setting['defaultvalue']; if($errortips) { $errortips = $this->fields[$field]['errortips']; $this->formValidator .= '$("#'.$field.'").formValidator({onshow:"",onfocus:"'.$errortips.'"}).inputValidator({min:1,onerror:"'.$errortips.'"});'; } $usable_type = $this->categorys[$this->catid]['usable_type']; $usable_array = array(); if($usable_type) $usable_array = explode(',',$usable_type); //获取站点ID if(intval($_GET['siteid'])){ $siteid = intval($_GET['siteid']); }else{ $siteid = $this->siteid; } $type_data = getcache('type_content_'.$siteid,'commons'); if($type_data) { foreach($type_data as $_key=>$_value) { if(in_array($_key,$usable_array)) $data[$_key] = $_value['name']; } } return form::select($data,$value,'name="info['.$field.']" id="'.$field.'" '.$formattribute.' '.$css,L('copyfrom_tips')); } function readpoint($field, $value, $fieldinfo) { $paytype = $this->data['paytype']; if($paytype) { $checked1 = ''; $checked2 = 'checked'; } else { $checked1 = 'checked'; $checked2 = ''; } return ' '.L('point').' '.L('money'); } function linkage($field, $value, $fieldinfo) { $setting = string2array($fieldinfo['setting']); $linkageid = $setting['linkageid']; return menu_linkage($linkageid,$field,$value); } function downfile($field, $value, $fieldinfo) { $list_str = $str = ''; extract(string2array($fieldinfo['setting'])); if($value){ $value_arr = explode('|',$value); $value = $value_arr['0']; $sel_server = $value_arr['1'] ? explode(',',$value_arr['1']) : ''; $edit = 1; } else { $edit = 0; } $server_list = getcache('downservers','commons'); if(is_array($server_list)) { foreach($server_list as $_k=>$_v) { if (in_array($_v['siteid'],array(0,$fieldinfo['siteid']))) { $checked = $edit ? ((is_array($sel_server) && in_array($_k,$sel_server)) ? ' checked' : '') : ' checked'; $list_str .= " {$_v['sitename']}"; } } } $string = '
'.L('mirror_server_list').''; $string .= $list_str; $string .= '
'; if(!defined('IMAGES_INIT')) { $str = ''; define('IMAGES_INIT', 1); } $authkey = upload_key("$upload_number,$upload_allowext,$isselectimage"); $string .= $str." catid','{$authkey}')\"/ value='".L('upload_soft')."'>"; return $string; } function file($field, $value, $fieldinfo) { $list_str = $str = ''; extract(string2array($fieldinfo['setting'])); if($value){ $value_arr = explode('|',$value); $value = $value_arr['0']; $sel_server = $value_arr['1'] ? explode(',',$value_arr['1']) : ''; $edit = 1; } else { $edit = 0; } if(!defined('IMAGES_INIT')) { $str = ''; define('IMAGES_INIT', 1); } $authkey = upload_key("$upload_number,$upload_allowext,$isselectimage"); $string .= $str." catid','{$authkey}')\"/ value='".L('attachment_upload')."'>"; return $string; } function downfiles($field, $value, $fieldinfo) { extract(string2array($fieldinfo['setting'])); $list_str = ''; if($value) { $value = string2array(new_html_entity_decode($value)); if(is_array($value)) { foreach($value as $_k=>$_v) { $list_str .= "
".L('remove_out')."
"; } } } $string = '
'.L('file_list').''; $string .= $list_str; $string .= '
'; if(!defined('IMAGES_INIT')) { $str = ''; define('IMAGES_INIT', 1); } $authkey = upload_key("$upload_number,$upload_allowext,$isselectimage"); $string .= $str."catid','{$authkey}')\"/> "; return $string; } function map($field, $value, $fieldinfo) { extract($fieldinfo); $setting = string2array($setting); $size = $setting['size']; $errortips = $this->fields[$field]['errortips']; $modelid = $this->fields[$field]['modelid']; $tips = $value ? L('editmark','','map') : L('addmark','','map'); return ''; } function omnipotent($field, $value, $fieldinfo) { extract($fieldinfo); $formtext = str_replace('{FIELD_VALUE}',$value,$formtext); $formtext = str_replace('{MODELID}',$this->modelid,$formtext); preg_match_all('/{FUNC\((.*)\)}/',$formtext,$_match); foreach($_match[1] as $key=>$match_func) { $string = ''; $params = explode('~~',$match_func); $user_func = $params[0]; $string = $user_func($params[1]); $formtext = str_replace($_match[0][$key],$string,$formtext); } $id = $this->id ? $this->id : 0; $formtext = str_replace('{ID}',$id,$formtext); $errortips = $this->fields[$field]['errortips']; if($errortips) $this->formValidator .= '$("#'.$field.'").formValidator({onshow:"",onfocus:"'.$errortips.'"}).inputValidator({min:'.$minlength.',max:'.$maxlength.',onerror:"'.$errortips.'"});'; if($errortips) $this->formValidator .= '$("#'.$field.'").formValidator({onshow:"'.$errortips.'",onfocus:"'.$errortips.'"}).inputValidator({min:1,onerror:"'.$errortips.'"});'; return $formtext; } function video($field, $value, $fieldinfo) { $value_data = ''; //获取flash上传属性 pc_base::load_app_class('ku6api', 'video', 0); $setting = getcache('video', 'video'); if(empty($setting)) return L('please_input_video_setting'); $ku6api = new ku6api($setting['sn'], $setting['skey']); $flash_info = $ku6api->flashuploadparam(); //获取上传的视频 $key = 0; $list_str = "
"; $data = ''; if (!defined('SWFOBJECT_INIT')) { $data .= ''; $data .= ''; define('SWFOBJECT_INIT', 1); $data .= ' '; } $authkey = upload_key("$upload_number,$upload_allowext,$isselectimage"); $video_store_sel = defined('IN_ADMIN') ? '
'.L('videoes_store').'
' : ''; $vms_str = $flash_info['allow_upload_to_vms'] ? '' : ''; return $data.'
'.L('videoes_lists').'
'.L('videoes_num').'
'.$list_str.'
'.L('select_upload_channel', '', 'video').' '.$vms_str.'
'.$video_store_sel.'

'; } } ?>