制作如下效果图

1、创建一个类文件(/app/user/cls/message.cls.php),添加如下代码
<?php
class message_user
{
public $G;
public function __construct(&$G)
{
$this->G = $G;
}
public function _init()
{
$this->pdosql = $this->G->make('pdosql');
$this->db = $this->G->make('pepdo');
$this->pg = $this->G->make('pg');
$this->ev = $this->G->make('ev');
}
//发送站内信息,包含(发送者、接收者、发送内容)
public function sendMessage($sender,$reciver,$content)
{
$args['message_sendtime'] = TIME;
$args['message_send_userid'] = $sender;
$args['message_receive_userid'] = $reciver;
$args['message_content'] = $content;
$data = array('message',$args);
$sql = $this->pdosql->makeInsert($data);
$this->db->exec($sql);
return $this->db->lastInsertId();
}
//获取接收者信息
public function getReciveMessageByUserid($page,$number = 20,$userid){
$page = $page > 0?$page:1;
$r = array();
$data = array(false,'message',array(array("AND","message_receive_userid = :message_receive_userid",'message_receive_userid',$userid)),false,array("message_id"),array(intval($page-1)*$number,$number));
$sql = $this->pdosql->makeSelect($data);
$r['data']= $this->db->fetchAll($sql,"message_id");
$data = array('count(*) AS number',array('message'),array(array("AND","message_receive_userid = :message_receive_userid",'message_receive_userid',$userid),array("AND","message_ok = 0")));
$sql = $this->pdosql->makeSelect($data);
$t = $this->db->fetch($sql);
$pages = $this->pg->outPage($this->pg->getPagesNumber($t['number'],$number),$page);
$r['pages'] = $pages;
$r['number'] = $t['number'];
return $r;
}
}
?>2、在控制器中加入文件(/app/user/controller/message.center.php),加入如下代码
<?php
/*
* Created on 2017-8-31
*
站内信息中心
*/
class action extends app
{
public function display()
{
$this->message = $this->G->make('message','user');
$action = $this->ev->url(3);
if(!method_exists($this,$action))
$action = "index";
$this->$action();
exit;
}
private function index()
{
$page = $this->ev->get('page');
$page = $page > 0?$page:1;
$userid=$this->_user['sessionuserid'];
$this->message->sendMessage(1,12,'你好');//用户测试,测试完成请注释;
$messages=$this->message->getReciveMessageByUserid($page,10,$userid);
//var_dump($messages);
$this->tpl->assign('messages',$messages["data"]);
$this->tpl->assign('page',$page);
$this->tpl->assign('pages',$messages["pages"]);
$this->tpl->display('message');
}
}
?>3、模板文件中(/app/user/tpls/center/message.tpl)加入如下代码
{x2;include:header}
<body>
{x2;include:nav}
<div class="container-fluid">
<div class="row-fluid">
<div class="main">
<div class="col-xs-2" style="padding-top:10px;margin-bottom:0px;">
{x2;include:menu}
</div>
<div class="col-xs-10" id="datacontent">
<div class="box itembox" style="margin-bottom:0px;border-bottom:1px solid #CCCCCC;">
<div class="col-xs-12">
<ol class="breadcrumb">
<li><a href="index.php">首页</a></li>
<li class="active">站内信息</li>
</ol>
</div>
</div>
<div class="box itembox" style="padding-top:10px;">
<h4 class="title">站内信息</h4>
<ol>
{x2;tree:$messages,msg,qid}
<li><a href="#">{x2;realhtml:v:msg['message_content']}</a></li>
{x2;endtree}
</ol>
<nav aria-label="Page navigation">
<ul class="pagination">
{x2;$pages}
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
{x2;include:footer}
</body>
</html>4、在数据库中插入两个数据表(前缀message、前缀message_category),分别是信息和分类表
信息表
CREATE TABLE IF NOT EXISTS `x2_message` ( `message_id` int(11) NOT NULL AUTO_INCREMENT, `message_send_userid` int(11) NOT NULL COMMENT '发生人', `message_send_time` int(11) NOT NULL COMMENT '发送时间', `message_receive_userid` int(11) NOT NULL COMMENT '信息接收者用户ID', `message_receive_time` int(11) NOT NULL COMMENT '接收者查看信息时间', `message_category` int(11) NOT NULL COMMENT '信息分类', `message_title` varchar(100) NOT NULL COMMENT '标题', `message_content` text NOT NULL COMMENT '内容', `message_ok` int(1) NOT NULL COMMENT '是否有效', PRIMARY KEY (`message_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=196 ;
分类表
CREATE TABLE IF NOT EXISTS `x2_message_category` ( `category_id` int(11) NOT NULL AUTO_INCREMENT, `category_label` varchar(50) NOT NULL COMMENT '分类标签', `category_ok` int(1) NOT NULL COMMENT '是否有效', PRIMARY KEY (`category_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
在浏览器输入(你的网站/index.php?user-center-message)进行访问。
或在用户中心加入菜单再测试(/app/user/tpls/center/menu.tpl)

<li class="list-group-item {x2;if:$method == 'message'}active{x2;endif}">
{x2;if:$method == 'message'}站内信息
{x2;else}
<a href="index.php?user-center-message">站内信息</a>
{x2;endif}
</li>至此你的站内信息已经添加完成
- 文章导航