【phpcms-v9】content_form.calss.php文件分析-内容添加页面动态表单的生成原理

[html]  view plain  copy
 print ?
  1. <?php  
  2. //此文件主要根据caches/caches_model/caches_data/model_field_1.php文件中的模型字段来动态的生成表单  
  3. //路径:phpcms/caches/caches_model/caches_data/content_form.class.php文件,主要用来返回内容添加页面左侧动态生成的表单  
  4. //此类主要用来动态生成内容添加页面的所有表单:内容添加页面左侧表单不是直接写在html中的,而是通过程序动态生成的,现将其分析一下  
  5. //此文件需要参考:model_feild_模型ID.cache.php文件,因为通过后台 模型管理->字段管理 中所有已存在或新加的字段都会被缓存在这个文件中,如【下图2所示】  
  6.  class content_form {  
  7.     var $modelid;//模型id  1-文章模型 2-图片模型 3-下载模型  ,不同的模型在添加内容时会动态生成不同的表单  
  8.     var $fields;//所有模型字段信息  
  9.     var $id;  
  10.     var $formValidator;//表单验证  
  11.   
  12.     function __construct($modelid,$catid = 0,$categorys = array()) {  
  13.         $this->modelid = $modelid;  
  14.         $this->catid = $catid;  
  15.         $this->categorys = $categorys;  
  16.         $this->fields = getcache('model_field_'.$modelid,'model');//此缓存文件主要用来缓存模型字段信息  
  17.         $this->siteid = get_siteid();  
  18.     }  
  19.     //此方法主要用来获取所有动态生成好的表单,以便于在前台循环显示  
  20.     function get($data = array()) {  
  21.         $_groupid = param::get_cookie('_groupid');  
  22.         $this->data = $data;  
  23.         if(isset($data['id'])) $this->id = $data['id'];  
  24.         $info = array();  
  25.         $this->content_url = $data['url'];  
  26.           
  27.         /**  
  28.          * $this->fields:主要存放从model_field_模型id.cache.php文件中获取过来的所有模型字段信息  
  29.          * $field:单个模型字段信息  
  30.          */  
  31.         foreach($this->fields as $field=>$v) {  
  32.             if(defined('IN_ADMIN')) {  
  33.                 if($v['iscore'] || check_in($_SESSION['roleid'], $v['unsetroleids'])) continue;  
  34.             } else {  
  35.                 if($v['iscore'] || !$v['isadd'] || check_in($_groupid, $v['unsetgroupids'])) continue;  
  36.             }  
  37.             /**  
  38.              * 表单类型:formtype  
  39.              * 对应   后台->模型管理->字段管理->类型  
  40.              * 对应  content_form.class.php文件中方法的名称  
  41.              * 对应  caches/caches_model/caches_data/model_field_模型id.cache.php文件中键名  
  42.              * 注意:通过 后台->模型管理->字段管理->添加字段  ,添加的新字段都将被缓存到model_field_模型id.cache.php文件中  
  43.              */  
  44.             $func = $v['formtype'];//表单类型  
  45.               
  46.             $value = isset($data[$field]) ? htmlspecialchars($data[$field], ENT_QUOTES) : '';//表单值  
  47.             if($func=='pages' && isset($data['maxcharperpage'])) {  
  48.                 $value = $data['paginationtype'].'|'.$data['maxcharperpage'];  
  49.             }  
  50.             if(!method_exists($this, $func)) continue;  
  51.               
  52.             /**  
  53.              * 1.$func:假设模型字段名称为text,则会调用$this->text()方法  
  54.              * 2.$this->text()方法会生成并返回一个text类型的表单,如:<input type="text" name="info['keywords']" value="">  
  55.              * 3.后面程序会将生成的表单放到$info[][]二维数组中,前台只需要循环此数组即可将网页所有的表单都呈现出来  
  56.              */  
  57.             $form = $this->$func($field, $value, $v);  
  58.               
  59.             if($form !== false) {  
  60.                 //默认情况下此常量已经被定义了  
  61.                 if(defined('IN_ADMIN')) {  
  62.                     //基本信息字段:基本信息字段将在添加页面左侧显示  
  63.                     if($v['isbase']) {  
  64.                         //添加内容页面:左侧部分的表单名称  
  65.                         $star = $v['minlength'] || $v['pattern'] ? 1 : 0;  
  66.                         $info['base'][$field] = array('name'=>$v['name'], 'tips'=>$v['tips'], 'form'=>$form, 'star'=>$star,'isomnipotent'=>$v['isomnipotent'],'formtype'=>$v['formtype']);  
  67.                     } else {  
  68.                         //添加内容页面:右侧部分的表单名称  
  69.                         //$field:thumb、relation、inputtime、islink、template、allow_comment、readpoint  
  70.                         $star = $v['minlength'] || $v['pattern'] ? 1 : 0;  
  71.                         $info['senior'][$field] = array('name'=>$v['name'], 'tips'=>$v['tips'], 'form'=>$form, 'star'=>$star,'isomnipotent'=>$v['isomnipotent'],'formtype'=>$v['formtype']);  
  72.                     }  
  73.                 } else {  
  74.                     $star = $v['minlength'] || $v['pattern'] ? 1 : 0;  
  75.                     $info[$field] = array('name'=>$v['name'], 'tips'=>$v['tips'], 'form'=>$form, 'star'=>$star,'isomnipotent'=>$v['isomnipotent'],'formtype'=>$v['formtype']);  
  76.                 }  
  77.             }  
  78.         }  
  79.         return $info;  
  80.     }  
  81.   
  82.          //text方法主要用来生成一个text类型的表单:<input type="text" name="info[]" value="" />  
  83.     function text($field, $value, $fieldinfo) {  
  84.   
  85.     }  
  86.   
  87.     //textarea方法主要用来生成一个textarea类型的表单:<textarea name="info[]" ></textarea>  
  88.     function textarea($field, $value, $fieldinfo) {  
  89.           
  90.     }  
  91.   
  92.     //editor方法主要用来生成一个在线编辑器,如:ckeditor编辑器  
  93.   
  94.     function editor($field, $value, $fieldinfo) {  
  95.       
  96.         }  
  97.     function catid($field, $value, $fieldinfo) {  
  98.           
  99.     }  
  100.     function title($field, $value, $fieldinfo) {  
  101.           
  102.     }  
  103.   
  104.     //box方法主要用来生成radio、select、checkbox类型的表单:<input type="radio" name="info[]" value="" />  
  105.     function box($field, $value, $fieldinfo) {  
  106.   
  107.           
  108.     }  
  109.   
  110.     //image方法主要用来生成上传文件的输入框和上传文件按钮  
  111.     function image($field, $value, $fieldinfo) {  
  112.           
  113.     }  
  114.     function images($field, $value, $fieldinfo) {  
  115.           
  116.     }     
  117.         function number($field, $value, $fieldinfo) {  
  118.           
  119.     }  
  120.   
  121.  }   
  122. ?>  
  123.    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值