汉晨网络微信公众号
汉晨网络微博
咨询热线:13760832719
咨询邮箱:1972196627@qq.com
广州网站建设分站
小程序开发 微信公众号开发 广州APP开发公司 网页制作 网站开发 就找汉晨网络
您的位置:首页 > 新闻动态> 网站百科 > 查看内容
discuzX3.4如何二次开发自己的程序?
发表日期:2018-06-08    文章编辑:寺城    文章来源:广州网站建设    浏览次数:2370

功能描述:每个会员都可以写下自己的心情,游客不可以留言。按时间倒序显示最新的留言。

我们的宗旨是

尽量不要去修改或过多依懒默认模板或程序,否则,Discuz!升级时会给你带来无尽的痛苦...

目录  [隐藏]

1 设计表结构:

2 创建的文件:(./表示站点根目录)

3 moop.php

4 list.php

5 list.htm

6 publish.php

7 publish.htm

8 关于语言包的提取

设计表结构:

CREATE TABLE pre_mood_wall (

  mid mediumint(8) unsigned NOT NULL auto_increment COMMENT '心情id',

  uid mediumint(8) unsigned NOT NULL default '0' COMMENT '用户id',

  username varchar(15) NOT NULL default '' COMMENT '用户名称',

  dateline int(10) unsigned NOT NULL default '0' COMMENT '发布时间',

  message text NOT NULL COMMENT '内容',

  PRIMARY KEY  (mid),

  KEY dateline (dateline)

) ENGINE=MyISAM COMMENT='心情墙';


创建的文件:(./表示站点根目录)

./mood.php //入口文件

./source/module/mood/list.php //查看心情

./source/module/mood/publish.php //发布心情

./template/default/mood/list.htm //查看心情列表模板

./template/default/mood/publish.htm //发布心情模板

功能简单,所以没有涉及到专用函数和类的文件 (source/class目录和source/function目录)


moop.php

<?php

// 定义应用 ID 全局记录当前用户所在位置,不需要可定义为0 不要省略

define('APPTYPEID', 0);

define('CURSCRIPT', 'mood');


//====================================

// 基础文件引入

//====================================

require './source/class/class_core.php';


$discuz = & discuz_core::instance();


//====================================

//模块定义以及模块缓存定义

//====================================

$modarray = array('list', 'publish');


// 判断 $mod 的合法性


$mod = !in_array($discuz->var['mod'], $modarray) ? 'list' : $discuz->var['mod'];


//定义当前模块常量

define('CURMODULE', $mod);


//====================================

// 加载核心处理,各程序入口文件代码相同

//====================================

$discuz->init();


//====================================

// 以下内容由各个模块根据需要自行撰写程序运行环境

// 位于核心处理与mod加载之前,可以处理一些各mod共用的一些数据,或入口权限判断等...

// 由于本功能只需要游客做发布的限制,所以判断就要放到module/mood/publish.php中去了。

//====================================



//===================================

//加载 mod

//===================================


require DISCUZ_ROOT.'./source/module/mood/'.$mod.'.php';


?>

list.php

<?php

// mod文件只能被入口文件引用,不能直接访问

if(!defined('IN_DISCUZ')) {

exit('Access Denied');

}


//初始化当前页码

$page = empty($_GET['page'])?1:intval($_GET['page']);

if($page<1) $page=1;


//分页

$perpage = 20;

$start = ($page-1)*$perpage;


//获取当前页的留言数据

$list = array();

$query = DB::query("SELECT * FROM ".DB::table('mood_wall')." WHERE 1 ORDER BY dateline DESC LIMIT $start, $perpage");

while($mood = DB::fetch($query)) {

$mood['dateline'] = dgmdate($mood['dateline'], 'u');

$list[] = $mood;

}


//获得一个简单的分页,只有上一页和下一页,这个不需要count()数据表中的所有记录

$multi = simplepage(count($list), $perpage, $page, 'mood.php?mod=list');


//数据准备完毕,引入相应的模板,准备输出

include_once template("mood/list");


?>


list.htm

<!--//说明: 显示公共头部模板-->

<!--{template common/header}-->


<!--//说明: 开始显示留言-->

<div id="ct" class="wp cl">

<h1 class="mt">心情墙 - <!--{if $_G[uid]}--><a href="mood.php?mod=publish">发表心情</a><!--{/if}--></h1> 

<div class="bm">

<!--{if $list}-->

<!--//说明: loop 循环一个数组 相当于foreach(){}-->

<!--{loop $list $mood}-->

<a href="home.php?mod=space&uid=$mood[uid]" target="_blank"><!--{avatar($value[authorid],small)}--></a><br>

<a href="home.php?mod=space&uid=$mood[uid]" title="$mood[username]" target="_blank" class="xi2">$mood[username]</a> 发表于: $mood[dateline]

<br>

心情: $mood[message]

<hr>

<!--{/loop}-->

<!--//说明: 显示准备好的分页链接-->

$multi

<!--{else}-->

<p class="emp">暂时没有记录...</p>

<!--{/if}-->

</div>

</div>


<!--//说明: 显示公共尾部模板-->

<!--{template common/footer}-->


publish.php

<?php

// mod文件只能被入口文件引用,不能直接访问

if(!defined('IN_DISCUZ')) {

exit('Access Denied');

}


// 游客不能发表心情的判断

if(!$_G['uid']) {

showmessage('抱歉,您尚未登录,无法进行此操作', '', array(), array('login' => 1));

}


if(submitcheck('submit')) {

$message = cutstr(dhtmlspecialchars(stripslashes($_POST['message'])), 150, ''); //截取150个字节的内容

DB::query("INSERT INTO ".DB::table('mood_wall')." (uid, username, dateline, message) VALUES ('$_G[uid]', '$_G[username]', '".TIMESTAMP."', '".daddslashes($message)."')");

showmessage('发表成功。', 'mood.php?mod=list');

}


//显示发布表单

include_once template("mood/publish");

?>


publish.htm

<!--//说明: 显示公共头部模板-->

<!--{template common/header}-->


<!--//说明: 开始显示表单-->

<div id="ct" class="wp cl">

<h1 class="mt"><a href="mood.php?mod=list">心情墙</a> - 发表心情</h1>

<div class="bm">

<form method="post" action="mood.php?mod=publish" class="pns">

<input type="hidden" name="formhash" id="formhash" value="{FORMHASH}" />

<!--FORMHASH 自动产生,submitcheck()函数要判断这个值-->

<textarea name="message"></textarea><br><br>

<input type="submit" class="pn vm" name="submit" value="发表" />

</form>

</div>

</div>


<!--//说明: 显示公共尾部模板-->

<!--{template common/footer}-->


关于语言包的提取

以上示例中的汉字都是写到模板和程序代码里的。如果你想支持多种汉字编码,那么提取到统一的语言包中,与代码分离会方便很多。

语言包目录:./source/language

首先给我们的功能建一个专用目录:./source/language/mood

在专用目录下创建文件:

lang_template.php 名称是固定的 lang()函数会自动加载这个文件

<?php

$lang = array (

'mood_name' => '心情墙',

'mood_publish' => '发表心情',

'mood_publish_succeed' => '发表成功。',

'not_loggedin' => '抱歉,您尚未登录,无法进行此操作',

 );

?>

//注:'not_loggedin' 这个在公共的lang_message.php里已经存面

//理论上是可以直接使用showmessage('not_loggedin'...),但还是用自己的踏实。showmessage(lang('mood/template', 'not_loggedin')...)

//模板中的汉字替换成语言包



<h1 class="mt"><a href="mood.php?mod=list">心情墙</a> - 发表心情</h1>


变成


<h1 class="mt"><a href="mood.php?mod=list">{lang mood_name}</a> - {lang mood_publish}</h1>


//程序中使用语言包

showmessage('抱歉,您尚未登录,无法进行此操作', '', array(), array('login' => 1));

变成

showmessage(lang('mood/template', 'not_loggedin'), '', array(), array('login' => 1));


如没有注明,文章为汉晨网络原创,转载时请注明来源 http://guangzhoujianzhan.com/News/view/id/38.html
新闻分类

Hi,Are you ready?

准备好开始了吗?
那就与我们取得联系吧

有网站建设的项目想和我们谈谈吗?您可以填写右边的合作意向表格,让我们了解您的项目需求,这是一个良好的开始,我们将会尽快与你取得联系。当然也欢迎您与我们在线商务沟通或打电话咨询,让我们听到你的声音!

HANCHEN 汉晨网络

业务热线:13760832719

E-mail:1972196627@qq.com

您需要的服务

现有网站改版
我需要做微信营销
建设全新的企业网站
要找长期合作公司,需要年度服务
我需要做购物商城
我需要做系统平台

您最关注的地方

对功能要求比较高
对设计创意要求比较高
需要可以购物支付
搜索引擎排名

预算

4-6千 1万-3万 4万-6万 7万以上 项目需要招标

关闭

关闭

关于我们

汉晨网络专注网站建设,微信公众号开发,小程序开发,app开发,拼团商城开发,人工智能名片源码开发,我们以良好的设计水平和网站开发技术经验,做好网站建设行业品牌。公司的服务宗旨是:"用良心做好服务,用实力做好质量!"

联系我们

  • 地址: 广州天河黄埔大道西201号702
  • 电话: 13760832719
  • Email: 1972196627@qq.com
扫描二维码 关注我们官方微信 解决建站问题
建站热线

13760832719

周一至周六9:00-18:00

售后服务 / 投诉处理

主营业务:网站建设 广州网站建设 广州网站制作 广州网站设计 广州网站开发 广州网页设计    微信公众号开发 APP开发 CRM客户关系管理系统 OA网络办公自动化系统 进销存软件 资金财务管理软件

Powered by HanChen © 2014-2018 guangzhoujianzhan.com .  广州汉晨网络科技有限公司 版权所有    | 粤ICP备18066905号-1