Discuz!的流程控制

a) 后台流程控:DZ后台所有的功能,均需要注册到admincp.php文件,每个功能都至少有一个或一个以上的Action(动作),在admincp.php中,可以定义Action的执行权限,分别为:“admin==1”管理员,或“admin==2 || admin==3”超级版主和版主,每个Action对应一个脚本文件,脚本文件的命名为action.inc.php(*.inc.php),并存放在admin目录下,如执行:admincp.php?action=dodo,相当于执行admin目录下的dodo.inc.php文件

b) 前台流程控制:前台的流程控制比较简单:流程是自由的,如:
首页:index.php
会员注册:register.php;
会员登录:logging.php
发贴程序:post.php
会员信息:member.php
论坛内容:forumdisplay.php
查看贴子:viewthread.php
…大部分功能,此处不一一列出…

c) DZ根目下的config.inc.php属于整个DZ系统的配置文件

Discuz!的数据处理过程

a) DZ对mysql的数据库操作处理全部封装在dbstuff(db_mysql.class.php)类中

b) 所在的外部数据均通过“daddslashes()”初步过滤,然后再过滤,再根据需要处理

Discuz!的文件系统目录

注:想搞DZ开发,就得弄懂DZ中每个文件的功能。
a) Admin:后台管理功能模块
b) Api:DZ系统与其它系统之间接口程序
c) Archiver:DZ中,用以搜索引擎优化的无图版
d) Attachments:DZ中 ,用户上传附件的存放目录
e) Customavatars:DZ中,用户自定义头像的目录
f) Forumdata:DZ缓存数据的存放目录
g) Images:DZ模板中的图片存放目录
h) Include:DZ常用函数库,基本功能模块目录
i) Ipdata:DZ统计IP来路用的数据
j) Plugins:DZ插件信息的存放目录
k) Templates:DZ模板文件的存放目录
l) Wap:DZ无线,Wap程序处理目录

Discuz!的显示控制(网站多样式风格输出)

a) 显示层就是大家通常所看到的网站风格了。DZ中每套风络分别在templates及images下对应一个风格文件的存放目录。

b) DZ网站风格文件处理的原理:其实很简单,DZ使用template.func.php中的parse_template()以PHP正则运算把htm模文件中的模板标签,转换成了PHP代码,并根据styleid保存在forumdata/templates下,这个有点像Smarty中的技术。

DZ独创的HTML编辑器

 

DZ独创的HTML编辑器,如何截取并使用,如果进行Discuz!代和Html代码的转换

a) 这也算是DZ比较牛的一项技术了,在早期版中,因DZ编辑器的不足,使得很多用户放弃了DZ。实现原理:通过JS把用的一些操作转换成了DZ的bbcode代码。这样子提交了安全性,将带有bbcode代码的内容存入数据,在用户打开页页时,又把bbcode代码转换成html代码

转载于:https://www.cnblogs.com/e3allen/archive/2012/06/25/2560662.html

Discuz! 7.2 二次开发基础 (一)相关推荐

  1. C# Revit二次开发基础/核心编程---建筑建模-标高和轴网

    一.本节课程 C# Revit二次开发基础/核心编程---建筑建模-标高和轴网 二.本节要讲解的知识点 1.标高的高度.创建标高 2.轴网曲线.创建轴网 具体内容 1.标高 标高是有限水平平面,大多数 ...

  2. C# Revit二次开发基础/核心编程--- Application\Document\Transaction

    一.本节课程 C# Revit二次开发基础/核心编程--- Application\Document\Transaction 二.本节要讲解的知识点 Application\Document\Tran ...

  3. MapGis二次开发——基础地图目录树控件的加载

    MapGis二次开发--基础地图目录树控件的加载 第一步:添加MapGis引用 MapGis动态库位置是在你安装位置下的\Program\plugin下,例如我的安装位置就是:D:\MapGIS 10 ...

  4. ArcGIS二次开发基础教程(11):网络分析之最短路径分析

    ArcGIS二次开发基础教程(11):网络分析之最短路径分析 最短路径分析 这里直接调用了在mdb中建立好的网络数据集 //全局变量 private INetworkDataset my_networ ...

  5. ArcGIS二次开发基础教程(10):三维分析

    ArcGIS二次开发基础教程(10):三维分析 坡度分析 请务必学会使用帮助文档!!! //DEM数据的坡度分析 将分析结果添加到地图上 //首先获取DEM数据,方法有很多例如从个人地理数据库获取,也 ...

  6. ArcGIS二次开发基础教程(06):有关图层的基本操作

    ArcGIS二次开发基础教程(06):有关图层的基本操作 0. PageLayout和MapControl 的同步 void CopyToPage(){//对象拷贝,把mapcontrol的地图拷贝重 ...

  7. ArcGIS二次开发基础教程(13):网络分析之最近设施分析

    ArcGIS二次开发基础教程(13):网络分析之最近设施分析 最近设施分析 /// <summary>/// Geodatabase function: open work space// ...

  8. ArcGIS二次开发基础教程(09):叠加分析

    ArcGIS二次开发基础教程(09):叠加分析 缓冲区分析的概念及原理请查看帮助文档 http://desktop.arcgis.com/zh-cn/arcmap/latest/tools/analy ...

  9. ArcGIS二次开发基础教程(00):基础界面设计

    ArcGIS二次开发基础教程(00) : 基础界面设计 (开发环境:VS2010+ArcEngine10.2+C# :鉴于学习ArcGIS二次开发的同学都有一定的WinForm开发和ArcGIS软件使 ...

  10. ArcGIS二次开发基础教程(03):保存文档和导出地图

    ArcGIS二次开发基础教程(03):保存文档和导出地图 保存文档 保存: //这里的path为全局变量 在打开文件获添加数据时赋值原路径 //判断打开文件是否为mxd文件 是则保存 不是则另存为 i ...

最新文章

  1. 渗透Xen hypervisor
  2. padding valid same区别——就是是否补齐0的问题
  3. Mysql的性能优化
  4. 问题解决:无法获得锁 /var/lib/dpkg/lock
  5. 【转】用 PHP V5 开发多任务应用程序
  6. 使用代码创建ABAP transparent table
  7. java se 导原码_Java SE 8新功能导览:Java开发世界中的重大变化
  8. MOVSX和MOVZX
  9. Flash Builder 4中文快速入门PDF
  10. Netflix Media Database - 架构设计和实现
  11. 生产宕机dunp配置
  12. typedef void far *LPVOID 的具体定义
  13. 干货 | 收藏贴!一文看懂静态资源服务沉浮及其在携程的演进
  14. 制作一款精美的 Qt IFW 安装程序
  15. 【Unity国际版下载地址】
  16. 【C++从入门到入土】第五篇:继承(爆肝画图详解)
  17. 一、概述(知识图谱构建射雕人物关系)
  18. 【FFmpeg】ffplay 源代码结构图+播放模式分析
  19. 利用js写的见缝插针小游戏
  20. 摩尔斯密码 php代码,摩尔斯密码 - 一个工具箱 - 好用的在线工具都在这里!

热门文章

  1. mac版有道云笔记切换笔记后内容仍展示前一个笔记内容问题解决
  2. coreldraw梯形校正_CorelDRAW改变用形状识别所绘制对象的轮廓
  3. java模拟键盘操作,java自动化操作
  4. 【渝粤教育】国家开放大学2018年春季 3819-21T燃气安全管理 参考试题
  5. 【5分钟 Paper】Deep Reinforcement Learning with Double Q-learning
  6. 【NOIP2014模拟8.25】设备塔
  7. [POI2000]病毒(补全AC自动机)
  8. oracle 基础查询语句
  9. ng-show和ng-if的区别和使用场景
  10. 1-5Badboy添加检查点和参数化