phpcms v9的系统类库有一个表单类,它封装了表单的一些组件,如编辑器、图片上传、时间选择器、模板选择器等,更详细请参考form.class.php。有了这些组件,在对phpcms v9进行二次开发时,更加省时省心。我们要做的就是如何把这些工具调出来使用。调用方法总共有两种。
一、视图调用法 这种方法最简单,但有局限性。在后台的模型定义字段时,选择表单的类型就会生成相应的表单类型。
二、代码调用法 这种方法比较灵活,走出了内容模块的限制,不再拘泥于内容模型的框架。下面是一个足球模块控制器添加信息的方法,看代码: 表单类的位置:libs\classes--form.class.php
01 | public function addfbteam(){ |
02 | $levels = $this ->level->select( '' , '`id`,`level`' , '' , 'id' ); |
03 | if (isset( $_POST [ 'dosubmit' ])){ |
04 | $_POST [ 'football' ] = $this ->check( $_POST [ 'football' ]); |
05 | if ( $this ->db->insert( $_POST [ 'football' ])) showmessage
(L( 'operation_success' ), '?m=football&c=admin_fbteam&a=fblists' ); |
07 | pc_base::load_sys_class( 'form' , '' , 0); |
08 | include $this ->admin_tpl( 'fbteam_add' ); |
说明: pc_base::load_sys_class('form', '', 0);加载表单类form.class.php,‘’空参数表示类文件的路径,加载的系统类库里面的类,参数“0”表示不实例化类。
上面方法对应的模板视图
2 | < th width = "80" >< strong ><? php echo L('football_profile')?>:</ strong ></ th > |
3 | < td >< textarea name = "football[profile]" id = "profile" ></ textarea ><? php echo form::editor('profile');?></ td > |
说明:“form::editor('profile')”,上面加载表单类且不实例化的目的就是使用静态方法调用编辑器editor,里面的参数“profile”表示表单的ID。
这里只说表单类编辑器的调用,其它的表单调用方法类似,不管调用什么表单,首先都要加载系统类库里的表单类,然后在模板调用表单类的表单方法,如时间表单,form::date('football[formed]', date('Y-m-d'), 0),
图片上传form::images('football[badge]', 'badge', ' ', 'football')。