织梦二次开发

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

[共用功能] 织梦自定义表“前台预览”功能分析教程

[复制链接]

1046

主题

1109

帖子

5334

积分

超级版主

Rank: 8Rank: 8

金币
256
贡献
3959
发表于 2015-11-10 16:38:20 | 显示全部楼层 |阅读模式
  当我们在织梦系统dedecms后台,建立自定义表单后,点击“前台预览”,然后,再点击“发布信息”就可以发布信息了,前台预览指的是如下图所示:
  

前台预览发布的内容

前台预览发布的内容


  本教程就是分析点击“前台预览”这一功能,当点击“前台预览”后,实际上是打开了连接:  /plus/diy.php?action=list&diyid=1

2.jpg

  从上面的连接我们可以看出,处理这个功能的代码是在文件/plus/diy.php文件里面,在这个文件里面找到如下代码:

显示功能代码

显示功能代码


  判断$diy->public的值是否为空,若为空则表示,关闭了前台浏览:

是不是关闭浏览

是不是关闭浏览


  $diy->public是对象$diy里面的一个属性,这个对象是在文件diy.php里面一开始就已经实例化了的代码:

  1.   require_once DEDEINC.'/diyform.cls.php';
  2. $diy = new diyform($diyid);
复制代码

  如果打开一个连接没有diyid的话,就要退出程序提示非常法操作,退出程序,这也是为了安全考虑:

  1. if(empty($diyid))
  2. {
  3.     showMsg('非法操作!', 'javascript:;');
  4.     exit();
  5. }
复制代码



  $diy->public指的是我们在建立一个表单字段时的设置,如下图所示:

5.jpg

  也就是:“前台列表和内容页公开?”的值,完全公开时 $diy->public值为2; 公开审核过的时 $diy->public值为1; 不公开时的 $diy->public的值为0。

  因为前台显示的要么是完全公开,要么是公开审核过的,而不公开的内容前台是不允许用户看到的,所以,这里就要把完全公开的和审核公开的查询出来,代码如下:

查询显示的内容代码

查询显示的内容代码


  下面的代码是实例化一个分页类,并引入模板文件进行显示:

实例化表分页类

实例化表分页类


  这段代码是固定用法,说了很多次了,其中这里面的模板文件的引入是通过动态进行的,即{$diy->listTemplate}。这个模板是在表#@__diyform2里面,如下图所示:

8.jpg

  也就是织梦模板list_diyform1.htm,但是,我们到templets/plus里面去找一下这个模板找不到,只有一个list_diyform.htm模板,织梦系统是这样规定的如果建立的自定义表单列表不存在,则就使用这个模板。

  这个模板里面的内容跟编辑评论diy_edit_content.htm里面的显示内容完全是一样的代码,这里就不分析这个列表模板文件list_diyform.htm了。

  这里面获取字段列表使用了表单对象里面的一个方法:$fieldlist = $diy->getFieldList();
回复

使用道具 举报

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

本版积分规则

QQ|织梦二次开发

GMT+8, 2019-9-17 20:48 , Processed in 0.225061 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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