WeCenter 学习笔记--私信功能

Wecenter安装部署教程 【代码】Wecenter安装部署教程。 阅读详情

数据表情况

  • 说明

    1. 数据表分为两个:一个是inbox_dialog用于存放会话,另一个是inbox用于存放两人的聊天信息

    2. inbox_dialog 主要用来确定一个会话。
      首先,通过sender_uid与recipient_uid用于确定发件人与收件人;
      然后,还要记录一下sender_count和recipient_count,以及sender_unread和recipient_unread数目;
      最后,add_time和update_time记录时间。

    3. inbox表主要用来记录具体的会话信息。
      首先,通过dialog_id以及uid(记录发送方的uid)来确定会话的信息;
      然后,通过add_time对会话信息message进行排序,然后传给前台;
      最后,通过sender_remove和recipient_remove记录用户是否删除信息。
      另外,通过receipt存放查看时间

  • 截图
    inbox_dialog

    inbox

代码

  • 发送私信接口
    • 分析
      1. 主要分为两种情况:一种是会话不存在,建立会话;另一种是会话存在,直接找到该会话。
      2. 然后根据inbox_dialog的id,向inbox表中插入聊天信息。
      3. 最后,更新一下未读信息数目。
      4. 在发送之前需要判断:message不能为空 接受私信的用户要存在 接受用户不能为自己 不能给禁止接受的人发送
    • 代码
    public function send_message($sender_uid, $recipient_uid, $message)
    {
        if (!$sender_uid OR !$recipient_uid OR !$message)
        {
            return false;
        }

        if (! $inbox_dialog = $this->get_dialog_by_user($sender_uid, $recipient_uid))
        {
            $inbox_dialog_id = $this->insert('inbox_dialog', array(
                'sender_uid' => $sender_uid,
                'sender_unread' => 0,
                'recipient_uid' => $recipient_uid,
                'recipient_unread' => 0,
                'add_time' => time(),
                'update_time' => time(),
                'sender_count' => 0,
                'recipient_count' => 0
            ));
        }
        else
        {
            $inbox_dialog_id = $inbox_dialog['id'];
        }

        $message_id = $this->insert('inbox', array(
            'dialog_id' => $inbox_dialog_id,
            'message' => htmlspecialchars($message),
            'add_time' => time(),
            'uid' => $sender_uid
        ));

        $this->update_dialog_count($inbox_dialog_id, $sender_uid);

        $this->model('account')->update_inbox_unread($recipient_uid);
        //$this->model('account')->update_inbox_unread($sender_uid);

        if ($user_info = $this->model('account')->get_user_info_by_uid($sender_uid))
        {
            $this->model('email')->action_email('NEW_MESSAGE', $recipient_uid, get_js_url('/inbox/'), array(
                'user_name' => $user_info['user_name'],
            ));
        }

        return $message_id;
    }
    public function send_action()
    {
        if (trim($_POST['message']) == '')
        {
            H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('请输入私信内容')));
        }

        if (!$recipient_user = $this->model('account')->get_user_info_by_username($_POST['recipient']))
        {
            H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('接收私信的用户不存在')));
        }

        if ($recipient_user['uid'] == $this->user_id)
        {
            H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('不能给自己发私信')));
        }

        if ($recipient_user['inbox_recv'])
        {
            if (! $this->model('message')->check_permission($recipient_user['uid'], $this->user_id))
            {
                H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('对方设置了只有 Ta 关注的人才能给 Ta 发送私信')));
            }
        }

        // !注: 来路检测后面不能再放报错提示
        if (!valid_post_hash($_POST['post_hash']))
        {
            H::ajax_json_output(AWS_APP::RSM(null, '-1', AWS_APP::lang()->_t('页面停留时间过长,或内容已提交,请刷新页面')));
        }

        $this->model('message')->send_message($this->user_id, $recipient_user['uid'], $_POST['message']);

        if ($_POST['return_url'])
        {
            $rsm = array(
                'url' => get_js_url(strip_tags($_POST['return_url']))
            );
        }
        else
        {
            $rsm = array(
                'url' => get_js_url('/inbox/')
            );
        }

        H::ajax_json_output(AWS_APP::RSM($rsm, 1, null));
    }
  • 私信列表接口

    • 分析
      1. 1.
    • 代码
Wecenter,Wecenter程序,Wecenter问答系统 Wecenter,是建立知识社区的开源程序。Wecenter以可检索、归类、整理的问答形式,Wecenter帮助个人、企业网站等组织搭建自己的知识库。用户可主动查询获取产品和服务的说明内容,通过问答互动,加强组织和用户之间的社交粘性。WeCenter知识社区的积分、打赏、分享等功能,激发用户主动创作内容,扩散有价值的信息,从而有利于网站建设和网站推广、网站知名度打造。 Wecenter是开放源码,便捷开发,采用经典MVC 架构,利用成熟开发技术,开放系统源码和开发文档,让二次开发更容易。加上其弹. 阅读详情

相关推荐

WeCenter社交化问答社区程序 3.3.0.zip

WeCenter是一款知识型的社交化问答开源社区程序,专注于企业和行业社区内容的整理、归类、检索和再发行。 WeCenter 3.3.0 更新日志:2018-12-10 短信功能基础模块添加(三种短信通道可供选择);支付功能基础模块添加(支付宝、微信、余额);删除改为逻辑删除(文章/问题/用户);内容审核增加了对文章评论问题评论和回答评论的审核;后台菜单改为数据库储存和维护;新增插件管理(后续可支持插件的安装与卸载,结合应用市场);--配合手机注册插件可实现手机号注册登录;修改加入修藏的逻辑;修复了分享导致内容脚本被执行的漏洞;升级程序修改(支持官方版本的跨版本升级,修复了升级过程中出错而无法再升级问题);后台增加了对违规用户IP的封禁;社区反映问题修改。

Discord.py - 如何使用此人的 ID 向某人发送私人消息?

dm <用户ID> <消息内容>` 是一个命令,它会向指定的 Discord 用户发送一条私信。如果目标用户不存在或无法发送私信(例如被关闭了私信功能),程序会捕获 `discord.HTTPException` 异常并打印错误信息。在 Discord.py 中,要向特定用户发送私信,可以使用 `user.send()` 方法。首先,需要获取目标用户的对象,可以通过其 ID 来查找。dm <用户ID> <消息内容>`),当有人使用这个命令时,它会向指定的用户发送私信。# 向目标用户发送私信。

744

储能变流器(Power Control System——PCS)设计原理

储能变流器(Power Control System——PCS)可控制蓄电池的充电和放电过程,进行交直流的变换,在无电网情况下可以直接为交流负荷供电。PCS 由 DC/AC 双向变流器、控制单元等构成。PCS 控制器通过通讯接收后台控制指令,根据功率指令的符号及大小控制变流器对电池进行充电或放电,实现对电网有功功率及无功功率的调节。 PCS 控制器通过 CAN 接口与 BMS 通讯,获取电池组状态信息,可实现对电池的保护性充放电,确保电池运行安全。   储能变流器(PCS)可控制蓄电池的充电和放电过程,进

Zhouengineer的博客 5万+

【亲测免费】 WeCenter 开源项目安装与使用教程

WeCenter 项目的目录结构如下: ``` wecenter/ ├── api/ ├── app/ ├── install/ ├── language/ ├── models/ ├── plugins/ ├── static/ ├── system/ ├── views/ │ └── default/ ├── .gitignore ├── README.md ├── changelog....

gitblog_00611的博客 776

fastadmin云快充充电桩系统部署文档uniapp

多商户 嘎嘎快充V1.0部署文档 一、服务器环境: 服务器配置4核心8GB内存5M带宽以上配置 VX next1402 只支持linux环境 nginx1.22 php7.2 开启redis、fileinfo扩展,关闭禁用workerman gatewayworkerman需要的函数,如pcntl相关的函数 mysql5.7 supervisor redis 注意: 1.站点必须配置https、websocket配置wss 2.注意开放直连服务端口:2024,并添加到安全组 二、必

itholiday2014的博客 1629

vivado:差分信号和单端信号 的相互转换 IBUFDS OBUFDS

FPGA能处理的都是单端信号,但有些输入信号是差分的,这时候就需要把差分信号转为单端信号。

qq_52137732的博客 1万+

【亲测免费】 WeCenter 开源社区项目常见问题解决方案

WeCenter 是一款知识型的社交化开源社区程序,专注于企业和行业社区内容的整理、归类、检索和再发行。该项目主要使用 PHP 语言开发,适合用于搭建企业内部知识库或行业社区。 ## 新手使用注意事项及解决方案 ### 1. 环境配置问题 **问题描述**:新手在安装 WeCenter 时,可能会遇到服务器环境配置不正确的问题,导致无法正常安装或运行。 **解决步骤**: 1. **检查服...

gitblog_00445的博客 606

Vscode远程免密连接Linux虚拟机,并配置C/C++运行环境

目前想要深入学习在Linux,也为了方便编写C/C++程序。Linux的环境里一般自带有c++的编译环境,如果没有安装gcc和g++等编译器也比较便利。但是在虚拟机里用vim编写C++程序又不得劲,因此打算使用vscode远程连接Linux虚拟机进行学习。为了防止自己以后还要再配置,重复踩坑,因此写下这篇博客用做记录。环境:windows11、VMware17、rocky linux9.1 ( 开源的CentOS9 )

m0_56779872的博客 8678

5分钟掌握视频号批量下载:res-downloader高效操作指南

你是否经常在微信视频号看到精彩的短视频却无法保存?或者需要批量下载抖音、快手、小红书等平台的资源却找不到合适的工具?今天我要为大家介绍一款功能强大的网络资源下载神器——res-downloader,它能让你轻松搞定主流平台的资源下载问题,真正实现一键批量下载的便捷体验。 ## 一、为什么你需要res-downloader? 在数字内容爆炸的时代,我们每天都会遇到各种想要保存的网络资源:微信视频

gitblog_00092的博客 499

是德频谱分析仪相位噪声测量实战指南:从原理到精准操作

本文详细介绍了是德频谱分析仪在相位噪声测量中的实战操作指南,从基础概念到高级技巧全面解析。通过5G基站时钟测量等实际案例,展示如何利用是德N9030B等设备精准测量相位噪声,并分享设备预热、参数设置、环境干扰排除等关键操作要点,帮助工程师提升测量精度和效率。

jenkins8butler的博客 229

22、光无线通信调制技术详解

本文详细介绍了光无线通信中的多种调制技术,包括开关键控(OOK)、脉冲位置调制(PPM)、数字脉冲间隔调制(DPIM)、副载波强度调制(SCM)、相移键控(PSK)、正交幅度调制(QAM)以及多载波调制(MCM)如OFDM和MSIM。文章分析了各类调制技术在带宽需求、功率效率、传输容量、传输速率和PAPR等方面的性能差异,并通过Matlab仿真展示了其在AWGN信道下的误码率表现。同时,对比了不同技术的适用场景,提出了调制选择流程,并结合室内光通信与自由空间光通信的应用案例,展望了未来调制技术向高频谱效率、

net55的博客 116

如何在已认证的服务号内,推送WeCenter站内私信的通知?

具体步骤: 1、在已认证的服务号内申请合适的模板消息 2、需要在wecenter源代码内编写发送模板消息的方法 3、在需要发送通知的地方调用发送模板消息方法 具体可查看WeCenter官网社区: 问题地址:http://wenda.wecenter.com/question/32113...

瘦客 591

Mamba-YOLOv8深度解析:基于状态空间模型的下一代目标检测架构(含完整代码与实战部署)文末含资料链接!

通过本文的完整指南,您将掌握从理论创新到工程落地的全流程技术细节。立即动手实践,开启目标检测的新纪元!

FJN110的博客 519

快速上手WeCenter:开源社交问答平台完整安装指南

想要快速搭建一个功能强大的社交问答社区?WeCenter作为国内领先的开源问答系统,提供了完整的WeCenter安装解决方案。本指南将带您从零开始,完成整个WeCenter配置教程,让您轻松部署这个优秀的开源问答平台。 ## 🎯 项目特色与核心功能 WeCenter是一款知识型的社交化开源社区程序,专注于企业和行业社区内容的整理、归类、检索和再发行。它具备以下核心功能: - **智能问答系

gitblog_00277的博客 848

GEE:基于自定义的年度时序数据集进行LandTrendr变化检测

本文介绍了使用年度时序数据进行LandTrendr变化检测的方法,包括核心函数调用、参数设置和结果可视化。通过筛选参数(年份、变化幅度和持续时间)对结果进行过滤,输出变化年份、变化幅度和持续时间。代码提供了完整的处理流程,包括数据输入、LandTrendr算法运行、结果筛选与可视化,并支持结果导出。适用于基于Google Earth Engine平台的地表变化检测分析。

养乐多的博客 752

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

网站建设(四)回归wecenter

滚回来学wecenter了 WeCenter 文件目录结构 app - 应用目录,什么叫应用目录呢? cache - language - models - 模型目录,不明 plugins - 插件目录,不明 static - 静态文件,就是我们看到的界面,这里存放html使用的东西 --admin: 后台控制面...

HeroIsUseless的博客 495

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

WeCenter二次开发教程(一):熟悉模板结构

<1>程序文件目录介绍:app – 应用目录 models – 模型目录 plugins – 插件目录 static – 静态文件 system – 系统目录 views – 模板目录 我们简单的页面二次开发主要还是关注static和views这两个文件。 下面在介绍一下这个文件里面对应的目录功能 static里面文件分别是: admin: 后台控制面板...

weixin_30488085的博客 472

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

php用center标签,wecenter数据调用参数标签大全

**全局用户信息** {{{ : 用户头像; : 问题链接和问题标题;$val['add_time']) : 问题发布时间;$val['article_info']['comments'] : 文章评论; : 文章评论数量; : 问题回答数量;$val['topics'] : 话题;$val['question_info']['question_id'] : 问题id;$val['answer_...

weixin_36098127的博客 388

Wecenter 手机界面目录解析

┌ views/default/m/ajax ├ article_answer.tpl.htm(文章评论列表) ├ draft.tpl.htm(草稿列表) ├ explore_list.tpl.htm(发现列表) ├ favorite_list.tpl.htm(收藏列表) ├ focus_topics_list.tpl.htm(我关注的话题列表) ├ hot_topics_list.tpl.htm...

一个小彩笔 600

卷起来了?2023这三个项目直接让你原地起飞!

理论自学谁不会,理论知识跟实战项目实践相结合才是大问题?还在发愁没有项目练手?还在发愁简历中的项目生搬硬凑?还在担心自己没实操过项目被面试官直接K.O?这三个实战项目让你快人一步,总有一个适合你的!!!

test_xiaoqi的博客 564

软件测试项目实战经验附视频以及源码【医疗项目,社区管理,前后端分离项目,银行项目,金融项目,车载项目】

​​大家好,我是测试小马。很多初学的测试小白都在烦恼找不到合适的项目去练习,这也是难倒大部分测试小白的一个很常见的问题,项目经验确实是每一个测试非常宝贵的经验!这里小马哥给大家找了一些常用的项目合集,这些项目涵盖。

m0_58079308的博客 1757

【亲测免费】 WeCenter 问答系统:打造您的专属知识社区

WeCenter 问答系统是一款开源的社交化问答软件系统,旨在为站长或企业提供一套完整的社交问答解决方案。作为国内首个基于 PHP 的社交化问答系统,WeCenter 不仅具备强大的功能,还拥有丰富的社区支持和持续的技术更新,帮助用户轻松搭建和管理知识库,促进知识的共享与传播。 ## 项目技术分析 WeCenter 问答系统基于 PHP 开发,支持多种主流的 Web 服务器(如 Apache、...

gitblog_00285的博客 942

Docker安装和部署WeCenter3.3.5开源问答平台

最近发现了一个非常不错的问答平台系统:WeCenter,功能有些类似知乎,WeCenter界面友好美观,使用它可以方便的创建自己的社区,并创建一些专栏内容等。官方的安装部署文档一直写的不太好,所以空闲时间基于Docker环境研究了一下安装和部署操作。现在分享给大家。 一、系统环境 WeCenter是Php进行开发的,这里基于Docker容器技术,在容器中安装Php7.2+MySQL+Nginx...

爱海贼的无处不在的技术博客 2408

基于 LNMP 架构部署 WeCenter 社区论坛

本篇文章介绍用 LNMP 架构部署知乎产品 WeCenter。源码带注册、登录、发问题、评论各种功能,话不多说,直接开始!

Toasten 460

Centos7部署WeCenter问答系统遇到的一些问题以及解决方法

相关环境信息:1、Centos 72、mysql 5.7.123、nginx 1.8.04、php-fpm5、php 5.4.166、wecenter 3.2.1 其中,mysql 5.7.12、php-fpm 、php 5.4.16是通过centos的yum命令进行安装的。 以下是安装过程中遇到的问题以及解决方法: 问题1:  数据库模块 - WeCenter 支持 MySQLi 与 PDO_M...

瘦客 1738
上一篇: WeCenter 学习笔记--用户搜索功能
下一篇: 推荐系统入门(Top-N recommendation)
Smarticle
博客等级 码龄12年 175粉丝 170原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值