可以在http://localhost/pw87/message.php左侧看到如下:
消息类型主要有这几种:
sms —— 消息
notice ——通知
request ——请求
groupsms——群组消息
history —— 历史消息
文件目录是这样的:
在lib目录下面有message这个目录,主要都是和消息中心相关的,message/message/下面的文件是服务层,message/db/是数据库层。其中message.class.php是消息中心的公共服务层,对外都是调用这个类里面的方法的,比如发短消息啊,获取短消息啊等等的接口都可以在这个文件里面找到。比如举个例子,如果想获取短消息的列表,就是使用message.class.php里面的这个方法。
/**
* 获取某个人所有站内信
* @param int $page
* @param int $userId 用户UID
* @param int $perpage
*@return array
array(array(mid,rid,uid,title,content,typeid,categoryid,status,isown,created_time,modified_time,expand,create_uid,create_username))
二维数组结构 关系表和信息表的字段数组
*/
function getAllMessages($userId, $page, $perpage) {
$service = $this->_serviceFactory("message");
return $service->getAllMessages($userId, $page, $perpage);
}
程序可以这样写:
<?
require_once("global.php");
$messageServer = L::loadClass("message", 'message');
$page = 1;
$perpage = 2;
$userId = $winduid;
$messages = $messageServer->getAllMessages($userId, $page, $perpage);
var_dump($messages);
?>
$messageServer = L:loadClass("message",'message');
就是读取了message.class.php并且new了对象。
通过这样的方法就可以获取你想要的数据了,一般接口都已经有了,你可以去这个文件里面去找,都有。
下面来说下相关表结构:
在发消息的时候在pw_ms_relations里面会有2条记录。
根据isown来确定是发起人还是接受人。这个表是和这个用户相关的,可以通过这个表来确定和这个用户的关系,有发起和接受,然后再去messages表里面去找相关的内容。
另外还有分类没说:
var $_sms = 'sms'; //站内信
var $_sms_message = 'sms_message'; //短消息
var $_sms_rate = 'sms_rate'; //评分
var $_sms_comment = 'sms_comment'; //评论
var $_sms_guestbook = 'sms_guestbook'; //留言
var $_sms_share = 'sms_share'; //分享
var $_sms_reply = 'sms_reply'; //帖子回复
var $_notice = 'notice'; //通知
var $_notice_system = 'notice_system'; //系统通知
var $_notice_postcate = 'notice_postcate'; //团购通知
var $_notice_active = 'notice_active'; //活动通知
var $_notice_apps = 'notice_apps'; //应用通知
var $_notice_comment = 'notice_comment'; //评论通知
var $_notice_guestbook = 'notice_guestbook'; //留言通知
var $_request = 'request'; //请求
var $_request_friend = 'request_friend'; //好友请求
var $_request_group = 'request_group'; //群组请求
var $_request_active = 'request_active'; //活动请求
var $_request_apps = 'request_apps'; //应用请求
var $_groupsms = 'groupsms';
var $_groupsms_colony = 'groupsms_colony'; //群组
var $_groupsms_normal = 'groupsms_normal'; //正常的多人对话
var $_groupsms_shield = 'groupsms_shield'; //屏蔽的多人对话
var $_chat = 'chat';
var $_history = 'history';
Sms在数据库的cateoryid为1 sms下面有好几种也就是好几个小分类,如sms_message ,sms_rate sms_comment,sms_guestbook,sms_share,sms_reply,这几种,他们的typeid为 对应的:
/**
* 基础配置类型地图
* @return unknown_type
*/
function maps() {
return array($this->_sms => 1,
$this->_sms_message => 100,$this->_sms_rate
=> 101,$this->_sms_comment => 102,
$this->_sms_guestbook => 103,$this->_sms_share
=> 104,$this->_sms_reply => 105,
$this->_notice => 2,
$this->_notice_system => 200,$this->_notice_postcate
=> 201,$this->_notice_active => 202,
$this->_notice_apps => 203,$this->_notice_comment
=> 204,$this->_notice_guestbook => 205,
$this->_request => 3,
$this->_request_friend => 300,$this->_request_group
=> 301,$this->_request_active => 302,$this->_request_apps => 303,
$this->_groupsms => 4,
$this->_groupsms_colony => 400,$this->_groupsms_normal
=> 401,
$this->_groupsms_shield => 402,$this->_chat => 5,$this->_history => 0);
}
然后存入数据库中,来识别是什么分类,pw_ms_relations 表里面记录的。
在回复的时候除了会在pw_ms_replies 增加一条记录以外,还会在pw_ms_relations表和pw_ms_messages 这2个表分别增加一个记录,pw_ms_replies表里面是为了在显示某一个记录的时候 显示出回复的信息。通过relations表里面的isown来判断是收件箱还是发件箱。
如果是2 说明是回复,那么他回复的那个消息的ID 就存在pw_ms_messages里面的
里面。
一共有3种方式的。
发送邮件的文件在require/sendmail.php
如果要发送邮件,这样就可以了,他会根据你后台设置去发邮件,后台的配置写在data/bbscache/mail_config_php这里面。你后台有修改,可以在这里看到。如果程序里面想发送邮件,可以这样写:
require_once(R_P.'require/sendemail.php');
$sendinfo = sendemail($to_email,'email_check_subject','email_check_content','email_additional');
$to_email 是要发送的邮件
email_check_subject 是对应的语言包的邮件的标题,
email_check_content 是对应的语言包的邮件的内容,
email_additional 是邮件的additional_headers
这些在语言包里面可以找到相对应的发送的邮件的内容,语言包可以看template/wind/lang_email.php