织梦模型字段的调用分析,织梦教程
导读:织梦教程织梦教程首先要搞明白,什么是模型字段,就是我们在后台内容模型管理更改内容模型,这个里面添加的字段,以软件模型为例子,如下图所示。 在前台调用这个些字段,非常容易,例如,dede58模板织梦模板。
首先要搞明白,什么是模型字段,就是我们在后台——>内容模型管理——>更改内容模型,这个里面添加的字段,以软件模型为例子,如下图所示。 在前台调用这个些字段,非常容易,例如,在内容页调用只需要用标签{dede:field.filetype/}这样就可以了,如果在首页调用,只需要用这个标签{dede:arclist addfields="filetype" channelid=3 tydede下瓻模板下载peid=''}{/dede:arclist}调 用,就可以了,这还有什么好说的,但是今天我要说的是不是简单的这些调用。 例如织梦基地网站的筛选功能,如下图所示。 如果用类似上面的标签,来自动调用出我们后台添加的字段,来实现这个功能是调用不出来的,目前,织梦只能调用站长添加的字段的值,没有现成的标签来做同上面的功能来,这就用到了织梦的模板引擎里面的标签了。 若想调用出,并带上连接,那么,就要从这个内容模板里面的字段配置里面调用出来,然后,再在“文档列表类”里面进行修改,这样就实现了织梦基地上面的功能了,也许会有人问这个功能是不是也是用一个标签来实现的,是的,只不过是自定义标签,自己写的。 去修改“文档列表类”不是本篇重点,要写个这个需要你php知道,也不是多么难,本篇主要介绍,上一部分,如果把这些字段,取出来,然后,再与文档列表类进行整合,实际上这二个部分,功能互相不干涉,一个是实现筛选,一个是调出我们自己定义标签。 如何调用出呢?我们只需要知道这些字段存储在哪里,实际上这里面的字段,肯定在模型里面,我们从如何添加字段,就可以看出,是进入到内容模型管理,才可以添加字段,那么,我们找到对应的数据库表#@_channeltype,里面字段fieldset 对应的值就是我们后台添加的字段,以及每个字段的相关信息,例如字段的类型,字段的itemname属性等。 这些字段,只是在这个模型表dede_channeltype里面以上面的这种字段串的形容存在,这些字段,以真正的字段存在是在对应的附加表里面,例如软件的附加表dede_addonsoft打开这个表,你会发现,我们后台添加的字段,就是这个附加表里面的字段。从这里我们就知道,当我们添加字段时,字段会以字符串形式,把存储在模型表dede_channeltype里面的字段fieldset里面,同时,把对应的字段,以真正的字段存储在对应的附加表dede_addonsoft里面。 通过上面的分析我们知道了,如果调用出筛选的那些字段值,只需要,从模型表调用来,然后,通过织梦模板引擎把fieldset值进行foreach就可以循环出来,分析到这里,那就容易了。 这里要分前台调用和后台调用二种:前台就是织梦基地的筛选功能,而后台例如软件添加后,生成静态网页时用到的调用分析。这二种调用实际上是一样的,都是通过静态模板引擎dedetag.class.php来实现的。具体实现代码,我总结了一下,以下代码,只是步骤,为了演示方便,有些代码我已经删掉。 1.从数据库表#@_channeltype里面查询出字段fieldset的值。 2.引入静态模板引擎文件dedetag.class.php实例化对象,载入模板字段串(也就是fieldset值,因为,他是字段串形式存在于数据库表#@_channeltype里面的),把里面的标记,例如,fieldede商城模板dtype,标记的名称循环出来。代码如下。 $dtp = new DedeTagParse(); $dtp->SetNameSpace('field','<','>'); $dtp->LoadSource($fieldset); $dede_addonfields = ''; if(is_array($dtp->CTags)) { foreach($dtp->CTags as $tid=>$ctag) { if($loadtype!='autofield' || ($loadtype=='autofield' && $ctag->GetAtt('autofield')==1) ) &dede58模板nbsp; { $dede_addonfields .= ( $dede_addonfields=="" ? $ctag->GetName().",".$ctag->GetAtt('type') : ";".$ctag->GetName().",".$ctag->GetAtt('type') ); echo GetFormItemA($ctag); } } } 如果大家想研究的话,请去研究一下软件发布的功能,那个软件发布功能就是一个非常好的例子。如果把这个功能研究透彻了,那么,不管你调用附加表内容都非常容易了。 以上分析的都是织梦二次开发需要,搞明白的,如果你做二次开发完,就是一个普通站长只学学标签调用即可,如果你想做一名织梦二次开发人员,那么,上面的内容必须精通,研究这个需要相当的php基地知识,所以,在大家研究这个功能前,要先学习一个php的基本知识。相关dede58模板织梦模板。
声明: 本文由我的SEOUC技术文章主页发布于:2023-07-20 ,文章织梦模型字段的调用分析,织梦教程主要讲述字段,模型,织梦网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_31181.html