discuz 二次开发
discuz 框架也算是比较流行的社区论坛框架,discuz 的基础架构采用世界上最流行的 web 编程组合 PHP + MySQL 实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。
1、安装 discuz
先下载 discuz 的安装包,解压之后有3个文件,如下:
然后把 upload 文件夹(另两个文件不用管)移动到本地服务器主机文件夹里(比如 htdocs),把 upload 文件夹的名字改成项目名(比如 discuz),再在地址栏输入 http://localhost/phpMyAdmin,添加一个数据库(库名就叫 discuz),如下:
再在地址栏输入 http://localhost/discuz,进入 discuz 安装流程,在第三步的时候,填写内容如下:
这样 discuz 就算是安装完了。
2、discuz 运行流程
比如:本地服务器主机文件夹找到刚刚移进去的 discuz 文件夹(没改名的话就是 upload), 打开 home.php 文件
require_once libfile() 这个方法表示它会去找 source/module 目录里的文件,home/.$mod 表示文件名(比如:http://localhost/discuz/home.php?mod=invite 表示找到 module/home/home_invite.php),然后在 home_invite.php 里面会有一个叫 include_once 方法(比如 include_once template('home/invite') 表示会打开 template/default/home/invite.htm),运行里面的代码。
3、创建一个新的模板风格,以便开发
打开 template 文件夹,创建一个新目录如:template/test;
将 template/default 目录下的
这四个文件复制到 test 文件夹,将 discuz_style_default.xml 文件名改成 discuz_style_test.xml,然后打开
修改文件中以下四个参数:
<item id="templateid"><![CDATA[1]]></item> 指定初始化templateid,这里不要和现有安装风格的id相同,把数字1改成另一个数字;
<item id="tplname"><![CDATA[默认模板套系]]></item> 指定扩展风格套系的名称,例如:test。
<item id="directory"><![CDATA[./template/default]]></item> 指定扩展风格所在的文件夹,这个文件夹的名字就是你刚才在template新建的test。
另外我们复制的配置文件中需要我们特别注意的就是以下两个参数:
<item id="styleimgdir"><![CDATA[]]></item> 此参数为扩展目录地址,例如:template/test/cmsoft,在 test 文件夹创建 cmsoft 文件夹;
<item id="imgdir"><![CDATA[]]></item> 此参数为风格基础图片存放的目录,默认使用地址 static/image/common/ 目录,一般我们只需要留空就行了。
在 test 文件夹创建必要的子目录与文件如:template/test/common,template/test/common/extend_common.css,template/test/common/extend_module.css;
其中 common 目录为公共模板目录,其内部新建的 extend_common.css、extend_module.css 为扩展型 CSS 文件,它们可以在 template/default/common/common.css 的和
module.css 的基础上进行 CSS 代码的覆盖性扩展。
登录 discuz 后台(http://localhost/discuz/admin.php),输入安装的时候填的管理员账户密码,在界面的版块下找到风格管理,会多了一个 test 的风格,点击安装。
4、discuz 调用模块
比如:打开 template/default/common/header.htm,第一行代码<!--{subtemplate common/header_common}-->表示 common 目录下 header_common.html 文件的内容。
在 header_common.html 里有一段 js 代码,定义的一些变量,用的比较多的就是 discuz_uid(用户 ID)、JSPATH(js 路径)、CSSPATH(css 路径)等。在新增页面时,只需要在第一行代码和最后一行代码写上 <!--{template common/header}--> 和 <!--{template common/footer}-->,很明显这表示页面公用的头部和尾部内容,然后中间开发自己写的代码就行。
discuz 二次开发的更多相关文章
- discuz二次开发技巧
discuz二次开发技巧 二次开发大多时候知识设置和处理,如果能够获知模板文件获得的变量数组将大大提高我们的开发效率 获取页面已经定义的变量 <--{eval printf_r(get_defi ...
- discuz二次开发,分析和实现 之 向dz数据库插入自己的帖子吧
发个博客太麻烦了,难怪写博客的越来越少,吐一下,cnblogs的编辑器模板太丑! 最近开发社区 需要采集一些数据,使得模板输出有图文效果.就写了个简单的采集脚本,爬取目标站的内容,(用php 下载图片 ...
- Discuz二次开发手册
Discuz文件说明,有助于discuz爱好者,进行自己的开发,在这里提供方便 admincp.php——后台系统设置主程序文件,一般只处理菜单的显示的访问权限,不处理管理控制. ajax.php—— ...
- discuz二次开发笔记(三)------discuz的安装步骤
下载好discuz的安装包后,解压在自己定义的文件夹里面,将upload里面的文件拷贝出来放到和upload同级的地方,然后删除upload文件夹. 打开浏览器,输入你文件夹的地址:如:http:// ...
- discuz二次开发笔记(二)------跳转函数运用
前几天在增加修改功能时,突然用到一个提示函数,有点不理解,看了他的由来后果断做下笔记,感觉这在以后的开发中肯定还是要用的上的.有些地方不是很理解,在以后慢慢纠正.查补. Htm页面中用的js跳转: $ ...
- discuz二次开发笔记(一)------$_G全解析
$_G 保存了 Discuz! 中所有的预处理数据缓存能够很好的提高程序的性能,一些配置数据没必要每次都查询数据库,只要在修改了的时候更新下缓存即可.Discuz! 中所有的缓存保存在 $_G[cac ...
- discuz二次开发之后导航无法高亮 $mnid == $nav[navid]解决办法(转)
在 <body>前面加入如下代码:body原来就有一个class,直接在增加一个进行测试 <!--{eval $mnid = getcurrentnav()}--> <! ...
- 在discuz二次开发模板时,diy编辑显示我“抱歉,您没有权限添加此模块
<div id="diy_vk_portal_slide_top" class="area"><div id="frameCRxR0 ...
- PHP二次开发discuz3.2最新体验
康盛官方于6月4号发布了discuz3.2的正式版,因为这两天一直忙于一个项目,一直没来的及体验,现在抽时间总算是装上了,也体验一把. 根据官方说明:Discuz! X3.2 在继承和完善 Discu ...
随机推荐
- @font-face制作Web Icon
@font-face是CSS3中有关于字体设置的属性,通过@font-face可以将本地字体设置为Web页面字体,并能兼容所有浏览器,使用这个属性就不必担心用户本地不具备这样的字体.因为我们把字体都上 ...
- 自己收集原生js-2014-2-23
(function(){})( window.EventUtil={ addHandler:function(element,type,handler){ // alert(1); if(elemen ...
- Android -- TextView (3)
1.效果图
- 配置安装CocoPods后进行 项目基本配置
配置安装CocoPods后进行 项目基本配置总结 1)终端在文件根目录下输入 $ touch Podfile 创建一个空白的Podfile文件 2)然后在使用编辑器打开Podfile文件进行需要配置的 ...
- Linux_解决nohup命令生成的多余的大日志文件
解决nohup命令生成的多余的大日志文件 经常使用命令 nohup /usr/bin/php /srv/www/update.php & 可以让它在后台安静的进行,但是有一个烦恼就是,它会生成 ...
- 纪念逝去的岁月——C/C++二分查找
代码 #include <stdio.h> int binarySearch(int iList[], int iNum, int iX, int * pPos) { if(NULL == ...
- Python中的socket 模块
Python 提供了两个基本的 socket 模块.第一个是 Socket,它提供了标准的 BSD Sockets API.第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务 ...
- HTML中忽略的小问题
1.padding和margin 例子 1 padding:10px 5px 15px 20px;(上,右,下,左) 上内边距是 10px 右内边距是 5px 下内边距是 15px 左内边距是 20p ...
- [LintCode] Sort Integers 整数排序
Given an integer array, sort it in ascending order. Use selection sort, bubble sort, insertion sort ...
- [LintCode] House Robber III 打家劫舍之三
The thief has found himself a new place for his thievery again. There is only one entrance to this a ...