model_id = $model_id; $this->cat_id = $cat_id; $this->categorys = $categorys; $this->catTits = Category::getTits($cat_id); $arr_parent_ids = $this->categorys[$cat_id]['arr_parent_ids']; if(!empty($arr_parent_ids)) { $extResult = CategoryConfig::find()->where("cat_id=".$this->cat_id." or cat_id in(".trim($arr_parent_ids,',').")")->orderBy(['cat_id'=>SORT_ASC,'list_order'=>SORT_ASC])->limit(5)->asArray()->all(); } else { $extResult = CategoryConfig::find()->where("cat_id=".$this->cat_id)->orderBy(['cat_id'=>SORT_ASC,'list_order'=>SORT_ASC])->limit(5)->asArray()->all(); } if(is_array($extResult))foreach($extResult as $k=>$tmpResult) { $tmpResult['var_name']= 'ext_type_'.($k+1); $this->extTypeList[$tmpResult['var_name']] = $tmpResult; } $this->fields = json_decode(Yii::$app->cache->get(CacheId::modelFieldCacheId($model_id)),true); foreach($this->fields as $k=>$field) { if(!empty($this->extTypeList))foreach($this->extTypeList as $extType) { if($k==$extType['var_name']) { $this->fields[$k]['tips'] = $extType['name']; $this->fields[$k]['name'] = $extType['bak']; } } } } function get($data = array()) { $identityInfo = Yii::$app->controller->getIdentityInfo(); //获取用户组或角色 if(!defined('IN_ADMIN')) $group_id = $identityInfo['group_id']; else $role_id = $identityInfo['role_id']; $this->data = $data; if(isset($data['id'])) $this->id = $data['id']; $this->url = isset($data['url'])?$data['url']:'';//跳转链接 $info = array(); if(is_array($this->fields))foreach($this->fields as $field=>$v) { if(defined('IN_ADMIN')) { if($v['is_core'] || check_rights($role_id, $v['unset_role_ids'])) continue; } else { if($v['is_core'] || !$v['is_add'] || check_rights($group_id, $v['unset_group_ids'])) continue; } $func = $v['form_type']; $value = isset($data[$field]) ? htmlspecialchars($data[$field], ENT_QUOTES) : ''; if($func=='pages' && isset($data['maxchar_perpage'])) { $value = $data['pagination_type'].'|'.$data['maxchar_perpage']; } if(!method_exists($this, $func)) continue; if($func!='box'&&$func!='author'&&$func!='cat_id'&&$func!='copy_from'&&$func!='datetime'&&$func!='downfiles'&&$func!='editor'&&$func!='ext_type'&&$func!='group_id'&&$func!='image'&&$func!='images'&&$func!='is_link'&&$func!='keywords'&&$func!='linkmenu'&&$func!='map'&&$func!='number'&&$func!='pages'&&$func!='pos_id'&&$func!='read_price'&&$func!='sysconfig'&&$func!='text'&&$func!='textarea'&&$func!='title'&&$func!='type_id')continue; $form = $this->$func($field, $value, $v); //star 1:必填 if($form !== false) { if(defined('IN_ADMIN')) { if($v['is_base']) { $star = $v['min_length'] || $v['pattern'] ? 1 : 0; $info['base'][$field] = array('name'=>$v['name'], 'tips'=>$v['tips'], 'form'=>$form, 'star'=>$star,'is_omnipotent'=>$v['is_omnipotent'],'form_type'=>$v['form_type'],'is_add_admin'=>$v['is_add_admin']); } else { $star = $v['min_length'] || $v['pattern'] ? 1 : 0; $info['senior'][$field] = array('name'=>$v['name'], 'tips'=>$v['tips'], 'form'=>$form, 'star'=>$star,'is_omnipotent'=>$v['is_omnipotent'],'form_type'=>$v['form_type'],'is_add_admin'=>$v['is_add_admin']); } } else { $star = $v['min_length'] || $v['pattern'] ? 1 : 0; $info[$field] = array('name'=>$v['name'], 'tips'=>$v['tips'], 'form'=>$form, 'star'=>$star,'is_omnipotent'=>$v['is_omnipotent'],'form_type'=>$v['form_type'],'is_add'=>$v['is_add']); } } } return $info; } }?>