织梦二次开发

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 694|回复: 0

[共用功能] 织梦“删除自定义表单字段”功能分析教程

[复制链接]

1046

主题

1109

帖子

5334

积分

超级版主

Rank: 8Rank: 8

金币
256
贡献
3959
发表于 2015-11-9 16:08:39 | 显示全部楼层 |阅读模式
  如果我们建立好了自定义表单后,然后,添加完字段后,有时候会把一些不用的字段删除掉,这时候就要点击字段后面的“删除”功能,来删除字段,这个“删除”指的是如下图所示内容:

删除字段

删除字段


  通过添加字段、更改字段我们知道了,一个字段以“建站客户留言”表单名称为例子,如下图所示:

自定义表单名称

自定义表单名称


  添加或修改一个字段,实际上要牵涉到两个表:一个是自定义表单表#@__diyforms,一个是存储添加或编辑具体字段信息的表dede_diyform2。

  在表#@__diyforms里面要删除的是字段info里面的如下内容删除掉:

字段info内容

字段info内容


  要删除掉这里面的内容,不是随便查询出来就行了,因为,上面的内容是字段info里面的值,所以,不能像删除字段值一样直接把info字段值给删除了,那样的话,这个字段里面的其它内容也一起删除了,本来想删除一个字段内容,结果全部删除了,这是不允许的,上面提到过了,这时候织梦模板引擎就起作用了,这在字段织梦模型里面字段删除已经详细分析了,用到的代码为diy_field_edity.php里同的else if($action=="delete")里面的如下代码:

删除info字段内容

删除info字段内容


  从上面的代码可以看出,这里面最核心的一行代码就是:
  1. $dtp->Assign($tagid,"#@Delete@#");
复制代码


  这行代码是关于织梦模板引擎类的变量分配,主要是分配一个删除标志:
  1. #@Delete@#
复制代码


  这样再调用模板引擎类的方法$dtp->GetResultNP()后,这样得到的代码就是已经去除掉了上图中的要删除的info字段里面的内容,这样再通过下面的update 用最新的覆盖原来的,就相当于删除掉了要删除的内容,这是一种不同于使

用delete的sql删除语句的另类删除方法,这个技巧是相当复杂的,如果现在看不懂,也不用担心,以后,我会出相关的大量的视频教程给大家。

  然后,在dede_diyform2把字段“www.dedebase.com”删除掉,如下图所示:

附加表字段

附加表字段

  删除字段这个字段的代码为:
  1. $dsql->ExecuteNoneQuery("ALTER TABLE `$trueTable` DROP `$fname` ");
复制代码


  这个也使用sql里面的alter table来删除表中的字段。

  从上面我们可以出,虽然,叫删除字段,其实,没有用到一个delete删除语句,虽然,这个删除语句代码简单,但是,要把这个研究明白,需要对织梦模板引擎有相当的研究,否则,也弄不明白,不过不用担心,如果仅做织梦二次开发,只要会用就行,要想精通织梦模板引擎,需要下功夫,把织梦功能分析完织梦基地会再做一系统视频教程,把织梦系统讲一遍。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|织梦二次开发

GMT+8, 2019-9-17 20:50 , Processed in 0.247583 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表