自定义通知方式

创建于 2022-07-07 / 最近更新于 2023-11-22 / 1458
字体: [默认] [大] [更大]

功能介绍

PT提供了自定义通知方式,若您有这方面需求,根据本篇文章进行编写代码即可实现。您至少需要掌握PHP语言的阅读和编写能力。

一、添加新通知

用超级管理员登录后台,并进入 系统设置 —— 基础设置 —— 通知设置 在页面找到全局工单联系方式。在里面的输入框填写的自己联系方式。如下图所示:

image.png

填写完毕后,点击保存设置。

二、添加新通知的字段

一、通过模型管理添加通知字段

登录超级管理员账户,依次找到:系统设置 —— 基础设置 —— 客户账户设置 —— 自定义注册选项 点击确认后,会进入类似如下的管理界面:

image.png

点击新增,根据页面说明,添加对应字段内容即可。您需要注意的是:字段名称 请与您的通知方式中保持一致。

如上图,您填写member_myself 。那么在这里则填写 myself ,同时类型选择单行输入框。如下图所示:

image.png

更多说明请参考《客户管理 自定义字段》一文

二、通过代码方式添加通知字段

如果若通过代码方式添加,登录数据库,并找到pes_member表,在表里添加刚才我们填写联系方式的字段名称。如上图我们填写的联系方式名字叫: member_myself ,那么我们就在pes_member表添加一样的字段。

---
--- 示例SQL
---
ALTER TABLE `pes_member` ADD `member_myself` VARCHAR(128) NULL DEFAULT NULL;

除了往member表添加字段,若您需要进行字段管理功能,需要往pes_field表插入对应的管理记录。SQL示例代码如下:

---
--- 示例SQL
---
INSERT INTO `pes_field` (
	`field_id`,
	`field_model_id`,
	`field_name`,
	`field_display_name`,
	`field_type`,
	`field_option`,
	`field_explain`,
	`field_default`,
	`field_required`,
	`field_listsort`,
	`field_list`,
	`field_form`,
	`field_status`,
	`field_is_null`,
	`field_only`,
	`field_action`
)
VALUES
	(
		NULL,
		20,
		'myself',
		'我的通知方式',
		'text',
		'',
		'',
		'',
		0,
		50,
		0,
		2,
		1,
		1,
		0,
		'POST,PUT'
	);

添加完管理SQL后,后续您可以直接在模型管理中变更字段的部分设置信息。

下图表格为对应字段说明

字段名称 field_id field_model_id field_name field_display_name field_type field_option field_explain field_default field_required field_listsort field_list field_form field_status field_is_null field_only field_action
说明 字段管理自增值请填NULL 对应模型ID此处为20 字段名称 字段显示名称 字段表单类型 填text 字段选项留空 字段说明 字段默认值 是否必填 字段列表排序值 是否显示列表 0不显示 1 显示 编辑页面显示 0 前后台均隐藏 1 前后台显示 2 仅后台可见 字段是否启用 字段是否为空 字段是否唯一 字段行为
示例 NULL 20 myself 我的通知方式 text 留空 留空 留空 0 50 0 2 1 1 0 POST,PUT

三、编写业务逻辑

我们打开PT程序的根目录,并进入 Expand目录。在里面有一个命名为:OtherNotice.php的文件,用编辑打开。

首先,根据注释提示,我们需要将构造函数一个变量设置为false。如下代码:

public function __construct() {
        //如果你编写自己的通知方式,请务必将此值设置为false,否则你的消息通知行为将无法写入send表。
       $this->removeTicketNoticeAction = false;
}

完成这一步操作后,只要有客户提交新工单并选用了我们新增的通知方式。系统会在send表生成一条发送记录的。

一定要确认send表是否有生成 新增通知方式 的发送记录。

四、完善发送逻辑

还是在刚才的发送文件中:

  • send()方法时整个自定义发送逻辑的关键。
  • matchTitle()方法属于生成pes_send表的标题。
  • matchContent()方法属于生成pes_send表的内容。

send()方法

参数 是否必填 类型 说明
$param 必填 数组 此参数包含当前待发送pes_send行的所有字段值

在编写发送逻辑时,$param参数包含了待发送行的所有字段值,我们根据上述内容编写逻辑即可。

若您不懂如何编写,可以参考系统中其他第三方发送逻辑进行。

matchTitle()方法

参数 是否必填 类型 说明
$param 必填 数组 此参数包含当前待发送pes_send行的所有字段值

在编写发送生成标题逻辑时,$param参数包含了待发送行的所有字段值,我们根据上述内容编写逻辑即可。

若您不懂如何编写,可以参考系统中其他第三方消息通知标题生成逻辑

matchContent()方法

参数 是否必填 类型 说明
$param 必填 数组 此参数包含当前待发送pes_send行的所有字段值

在编写发送生成内容逻辑时,$param参数包含了待发送行的所有字段值,我们根据上述内容编写逻辑即可。

若您不懂如何编写,可以参考系统中其他第三方消息通知内容生成逻辑

100 人点赞过