无双

博学善思,自强不息

导航

phpcms 修改日志

2011.3.18 项目:奔瓷

目的:让模型的添加内容表单 可以添加自定义字段

模型表单的字段是存储在缓存文件里的 catches/caches_model/caches_data/model_field_{modelid}_cache.php

这个缓存文件是在更新全站缓存文件时 从数据表 v9_model_field 里取出数据来 生成的,再添加或修改内容时会读取这个缓存文件,只有缓存文件中存在的字段才会被添加或更新,而这个数据表里的内容是新建模型的时候 跟据模型的字段 添加进去的,而添加模型字段的时候有个字段类型选择,可供选择的类型是从 phpcms/modules/content/fields/fields.inc.php 里取出来的。

那怎么让我们新建的这个自定义类型字段在添加内容的表单中显示出来呢?显示表单的模板并不是固定的,里面的字段的html代码是根据这个模型的字段信息动态生成的,而用来生成模板的字段信息是从caches/caches_model/caches_data/content_form.class.php 这个类中的 get() 方法中得到的,该get()方法会返回一个数组,该数组包括了该模型表单的字段的,表单html代码也包括在其中了, 而这个caches文件也是更新缓存的时候自动生成的,内容取自 phpcms/modules/content/fields/content_form.class.php,以及其他内容,比如每个字段类型都有一个方法,都会加入到这个缓存文件中。很明朗了,要想我们自定义的字段显示在表单中,就是我们自定义的字段要包含在 get() 方法返回的字段信息数组中,就是说我们要人为地把我们的字段信息添加到原数组中,所以我们在get()方法中增加一个函数,这个函数的功能就是把我们自定义的字段信息添加到原数组中,这样的话get()方法返回的数组中就包括了我们添加的自定义字段了,这个函数我们定义在内容模块的项目函数库里函数,叫 field.fun.php

TODO:现在的问题就是在自定义模型 添加字段的时候,有一个参数的选项,在建立数据表是会用到

在模型内容存入数据库前 会由 一个 content_input.class.php 的类来对将要插入到数据库的数据进行处理,正是这个类会根据 catches/caches_model/caches_data/model_field_{modelid}_cache.php 里的字段信息来进行添加

posted on 2011-03-18 17:32  无双  阅读(1967)  评论(0编辑  收藏  举报