自定义通知方式
功能介绍
PT提供了自定义通知方式,若您有这方面需求,根据本篇文章进行编写代码即可实现。您至少需要掌握PHP语言的阅读和编写能力。
一、添加新通知
用超级管理员登录后台,并进入 系统设置 —— 基础设置 —— 通知设置 在页面找到全局工单联系方式。在里面的输入框填写的自己联系方式。如下图所示:
填写完毕后,点击保存设置。
二、添加新通知的字段
一、通过模型管理添加通知字段
登录超级管理员账户,依次找到:系统设置 —— 基础设置 —— 客户账户设置 —— 自定义注册选项 点击确认后,会进入类似如下的管理界面:
点击新增,根据页面说明,添加对应字段内容即可。您需要注意的是:字段名称 请与您的通知方式中保持一致。
如上图,您填写member_myself 。那么在这里则填写 myself ,同时类型选择单行输入框。如下图所示:
更多说明请参考《客户管理 自定义字段》一文
二、通过代码方式添加通知字段
如果若通过代码方式添加,登录数据库,并找到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参数包含了待发送行的所有字段值,我们根据上述内容编写逻辑即可。
若您不懂如何编写,可以参考系统中其他第三方消息通知内容生成逻辑