织梦二次开发

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

[共用功能] 织梦“[增加自由列表]”功能分析教程

[复制链接]

1046

主题

1109

帖子

5334

积分

超级版主

Rank: 8Rank: 8

金币
256
贡献
3959
发表于 2015-11-7 16:43:49 | 显示全部楼层 |阅读模式
  增加自由列表指的是如下图所示功能:

增加自由列表

增加自由列表


  点击“[增加列表]”后,进入到如下增加自由列表界面:

增加列表界面

增加列表界面


  实现“[增加列表]”功能的是文件freelist_add.php和freelist_add.htm两个文件,因为,这个自由列表的添加功能有点麻烦,我把这个功能分成两部分来分析:第一部分,这个自由列表的表单内容的处理,主要是列表样式的处理;

第二部分,提交表单后处理这些数据的处理代码,主要是把提交过来的数据插入到数据库表里面。

代码分析开始:

  第一部分:

  列表样式功能分析:列表样式功能指的是当我点击织梦给我们提供的四幅栏目图按扭后,如何获取的对应的下面的单行记录样式,如下图所示,当我选择第一个样式时,单行记录样式记录显示如下:

样式1

样式1


  当我选择第三个样式时,单行记录样式显示调用织梦标签如下:

样式3

样式3

  
  这样的功能是如何实现的,本部分主要对这个功能进行分析,这个功能其实主要是通过js,ajax,其中,ajax是已经封装好的了。

  这四个样式当然可以自己去定义,本教程不对这个自定义样式进行研究,以后,做织梦标签开发时会详细做一系统视频教程,这四个样式在模板文件freelist_add.htm里面对应如下代码:

四个样式代码

四个样式代码


  当我们选中其中一个样式时,其实,是触发了上面的四个样式里面的一个js函数ChangeListStyle(),此函数是在这个模板最上面,代码如下:

样式处理js

样式处理js


  织梦基地目前主要做php代码研究分析,所以,分析的js代码教程不多,不过现在我们要对这个函数进行分析一下,在这个函数里面首先定义了两个对象:

  1.    var itxt = document.getElementById("myinnertext");
  2.    var myems = document.getElementsByName("liststyle");
复制代码


  itxt 对象就是显示织梦标签样式的;myems 对象是获取选中的样式的,当选中某一样式时,其实,就是使用的这个对象,然后,通过myems把样式添加到itxt对象里面。

  itxt 指的是这个文域:
  1. <textarea name="innertext" cols="80" rows="6" id="myinnertext" style="width:80%;height:120px"></textarea>
复制代码


  myems指的是我们在模板里面,按照次序定义好的样式标签,代码如下:

样式标签

样式标签


  与上面的我们演示选中的样式对比一下看看,这些标签是不是就是我们选中某样式时显示的标签。没有错,就是这些,当我们选中样式1时,执行
  1. if(myems[0].checked) itxt.value = document.getElementById("list1").innerHTML;
复制代码


  这行代码是把list1样式里面的标签,添加到itxt对应的文本框里面,list1标签代码如下:

  1. <div style="display:none" id="list1">
  2. <li>[field:textlink/]</li>
  3. </div>
复制代码



  这里使用了一个css隐藏方式,所以,在后台我们看不见,这也是一种处理方式,这样就通过js简单的把已经定义好的标签放到了一个文本框里面了,第一部分功能分析完毕。

第二部分:处理提交过来内容,在文件freelist_add.php里面。

  1. 当我们点击“[增加列表]”后,执行的上面文件里面的如下代码:

8.jpg

  2. 当点击“保存一个列表”后,执行的代码是:
  1. else if($dopost=='save')
复制代码


  这里面的代码虽然看上去一大片非常多,但是,其实,就分成两部分,一是处理提交过来的数据,这一部分非常简单,如下图所示:

数据处理代码

数据处理代码


  像这样的代码以后我们就不分析了,非常基础且简单。

  另一部分是把收集到的数据插入到表#@__freelist里面,代码如下:

  1.     $inquery = "
  2.      INSERT INTO `#@__freelist`(`title` , `namerule`  , `listdir` , `defaultpage` , `nodefault` , `templet` , `edtime`, `maxpage` , `click` , `listtag` , `keywords` , `description`)
  3.      VALUES ('$title','$namerule','$listdir','$defaultpage','$nodefault','$templet','$edtime', '$maxpage','0','$listTag','$keywords','$description');
  4.    ";
  5.     $dsql->ExecuteNoneQuery($inquery);
复制代码



  最后,提示插入成功,退出程序:

  1.       ShowMsg("成功增加一个自由列表!", "freelist_main.php");
  2.     exit();
复制代码

  增加自由列表功能结束,这个功能看上去非常吓人,特别是添加自由列表那个界面,其实,就是一个js函数处理的,插入数据库内容就更简单了,在织梦二次开发中像这样的功能不是经常遇到,不过平常多研究一下,对你一定有好处。
回复

使用道具 举报

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

本版积分规则

QQ|织梦二次开发

GMT+8, 2019-9-17 21:00 , Processed in 0.268223 second(s), 35 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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