123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?php
- use app\common\components\CacheId;
- use app\common\components\FormElements;
- use app\common\widget\UeditorWidget;
- use app\common\widget\LinkmenuWidget;
- use app\modules\cms\models\PositionData;
- use app\modules\cms\models\Category;
- use app\modules\cms\models\CategoryConfig;
- use app\modules\admin\models\Sysconfig;
- use app\models\Linkmenu;
- use app\common\models\EActiveRecord;
- class content_form {
- var $model_id;
- var $fields;
- var $id;
- var $formValidator;
- var $extTypeList;
- var $url;
- var $data;
- function __construct($model_id,$cat_id = 0,$categorys = array()) {
- $this->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;
- }
- }?>
|