Hello world! 写一个PC留言模块

我们将在本章节讲述:如何自定义一个 phpWeChat 功能模块。通过本章节的学习,您将正式成为 phpWeChat 的开发者。

演示模块下载http://bbs.phpwechat.com/thread-20-1-1.html 直接导入即可。

模块开发第一步:在后台添加一个自定义模块

如下图所示,我们进入 phpWeChat 后台,依次点击顶部菜单【系统设置】—左侧菜单【自定义模块】,进入自定义模块操作。

图1

点击提交后,模块会在根目录的PC文件夹下自动创建一个名称为 guestbook 的目录,此目录的结构如下:

图2

模块开发第二步:编写模块后台管理逻辑

第一步操作成功后,点击顶部菜单【PC网站】,此时左侧菜单就出现了刚刚添加的模块【在线留言】。

我们现在编写该功能模块的业务逻辑。

一、【留言管理】功能

进入根目录 /pc/guestbook/ 文件夹,目录结构如下(参考上图2):

index.php 是该功能模块前端的入口文件(相当于前台控制器 Controller);

version.txt 是自定义模块时自动生成的,是当前模块的版本日期;

admin 是该功能模块后台管理的文件集合。test.inc.php 是后台管理入口文件(相当于后台控制器 Controller),template 是后台管理视图模板(相当于后台视图 View) ;

include 目录是该模块的类和函数文件目录(相当于模型 Model)。

我们的第二步,就是编写后台的业务处理流程。

1、我们首先创建数据表 pw_pc_guestbook (字段:ID 留言内容:content 留言标题:title 留言日期:posttime)如下图:

2、编写在线留言类,打开 guestbook/include/guestbook.class.php (模型)

<?php

// +----------------------------------------------------------------------

// | phpWeChat guestbook 操作类 Last modified 2016-06-10 17:46:18

// +----------------------------------------------------------------------

// | Copyright (c) 2009-2016 phpWeChat http://www.phpwechat.com All rights reserved.

// +----------------------------------------------------------------------

// | Author: 骑马的少年 <phpwechat@126.com> <http://www.phpwechat.com>

// +----------------------------------------------------------------------

class GuestBook

{

private static $mGuestBookTable='pc_guestbook';

public static $mPageString=''; // 这个静态成员是系统自带,请勿删除


public static function guestBookList()

{

return MySql::fetchAll("SELECT * FROM `".DB_PRE.self::$mGuestBookTable."`");

}

}

?>

guestbook.class.php里,我们编写了guestBookList()方法,用于进行全部留言的展示。

3、打开 guestbook/admin/guestbook.inc.php (控制器)


在文件里,以下代码实现了,留言的读取,和向视图输出数据的作用:

case 'manage':

//留言管理业务代码

//以下仅举例

//读取全部留言 此时需要创建留言表数据表 假设已建立 pw_pc_guestbook(字段:ID 留言内容:content 留言标题:title 留言日期:posttime)

$data=GuestBook::guestBookList(); // 调用在 /guestbook/include/guestbook.class.php(模型) 里定义的类和方法 此时 $data 是个二维数组并包含所有的留言信息

include_once parse_admin_tlp($file.'-'.$action,$mod); // 调用 /guestbook/admin/template/guestbook-manage.tlp.php (视图)模板

break;

4、在 guestbook/admin/template/ 下新建一个 guestbook-manage.tlp.php 文件,内容如下:


{php !defined('IN_MANAGE') && exit('Access Denied!');}

<html>

<ul>

{loop $data $r}

<li>{$r['title']}   <a href="?mod=guestbook&file=guestbook&action=delete&id={$r['id']}">删除</a></li>

{/loop}

</ul>

</html>


5、完成以上步骤后,当我们点击留言管理时,就会出现如下界面:

成功完成了模块【留言管理】功能的编写。

二、【留言删除】功能

 guestbook-manage.tlp.php 文件的代码中,我们将留言删除动作指向了 action=delete (代码段:<li>{$r['title']}   <a href="?mod=guestbook&file=guestbook&action=delete&id={$r['id']}">删除</a></li>

此时,我们只需在后台控制器 guestbook.inc.php 加入以下代码即可:

case 'delete':

GuestBook::guestBookDelete($id);

operation_tips('操作成功!','?mod=guestbook&file=guestbook&action=manage');

break;

同时,我们需要在 模型 guestbook.class.php 文件里,编写 guestBookDelete() 方法,如图:


public static function guestBookDelete($id)

{

return MySql::mysqlDelete(DB_PRE.self::$mGuestBookTable,$id,'id');

}

这样,当我们点击【删除】时,就会删除对应的留言了。

其他的操作方法(如:审核留言等)同以上逻辑相似,不再赘述。

模块开发第三步:编写模块前台管理逻辑

在前两步中,我们已经完成了一个功能模块后台管理的业务处理流程。那么我们如何将这个留言显示到网站前台呢?

其实整个业务流程同上面差不多,只是控制器入口,换成了 guestbook 目录下的index.php 文件;视图地址换成了 template/default/pc/guestbook/。

1、业务场景:我要在前台显示所有留言列表

控制器端(guestbook/index.php):

视图端(template/default/guestbook/index.html):

2、业务场景:点击详情进入某条留言详情页面

控制器端(guestbook/index.php):

视图端(template/default/guestbook/detail.html):

模型端(guestbook/include/guestbook.class.php):


小结

在本章节中,我们提供了一个功能模块的创建流程和思路。如有疑问,可以在 phpWeChat 交流论坛提问。

演示模块下载http://bbs.phpwechat.com/thread-20-1-1.html 直接导入即可。

最后更新:2016-08-19