arter / amos-cwh
CWH 管理 - 插件
Requires
- php: >=5.4.0
- arter/amos-admin: ^2.2.0
- arter/amos-core: ^1.9.60
- hanneskod/classtools: ~1.0
This package is auto-updated.
Last update: 2024-09-07 10:05:51 UTC
README
模块协作网络房屋定义了项目插件及其网络之间的协作规则。
cwh 的目的是通过基于用户兴趣或网络成员资格的规则来启用内容的发布。
内容模型
对于我们所说的内容模型,我们是指包含可以发布给所有用户、在网络上共享或标记为属于特定兴趣区域(标签)的信息的模型。
为了激活模型并使用 cwh,必须实现的接口是(从 amos 核心开始)arter\amos\core\interfaces\ContentModelInterface(参见配置向导部分)
内容模型配置存储在表 cwh_config_contents 中。
发布
一旦创建,内容发布将存储在表 cwh_pubblicazioni 中。AmosNews 中的新闻模型是内容模型的一个示例。
Cwh 节点
Cwh 节点是用于发布的域,用作验证范围或作为接收者(发布范围)-参见验证器和接收者部分。
域配置存储在表 cwh_config 中,从这个配置中创建视图 'cwh_nodi_view',以映射项目中所有网络的信息(参见Cwh 节点视图部分)。
网络模型
网络是一个允许创建成员组(用户-网络关联)并在属于同一组的用户之间共享信息的模型。
模型必须实现的接口才能作为 cwh 发布网络是(在 amos cwh 中)arter\amos\cwh\base\ModelNetworkInterface(参见配置向导部分)
在我的个人资料中,可以查看用户网络。
用户域
除了网络模型之外,在 cwh_config 表中还可以找到单个用户的配置,这不能被视为真正的网络,但有自己的配置,并作为节点参与 cwh 流程(内容可以针对单个用户发布)。在 amos 管理员中,在网络部分中,我的个人资料中的用户联系地图显示为网络(如果启用了用户联系),但它不依赖于 cwh 配置:即使 cwh 模块未启用,也可以启用用户联系。用户节点可以设置为验证器(发布内容表中的字段),但不能作为发布范围(接收者),因为目前尚无法仅对另一个用户可见的内容进行发布。
发布规则
默认发布规则是
- PUBLIC 对所有人公开 - 对所有用户公开
- 标签 兴趣领域的所有用户
- 在“自己的兴趣”选项卡中,只有当用户兴趣与内容标签匹配时,内容才是可见的
- 在“全部”选项卡中可见
- 网络 特定范围内的所有用户:这意味着内容已在一个或多个网络中发布
- 在“自己的兴趣”选项卡中,内容仅对指定网络的成员可见
- 在“全部”选项卡中,如果网络是公开的(例如,社区开放),如果网络没有可见性规则或如果用户是网络成员,则内容是可见的
- 网络和标签 特定网络和匹配内容标签的所有用户
- 与 3 相同,但增加了在“自己的兴趣”选项卡中查看内容时匹配兴趣领域的附加条件
在带有 CwhNetworkBehaviors 的内容模型中
- 指定发布规则的属性是 $model->regola_pubblicazione
- 在模型表单中,设置发布规则的字段由 widget arter\amos\cwh\widgets\RegolaPubblicazione 显示。
有关更多信息,请参阅 内容发布 部分。
发布规则自定义
如果标签模块未激活(不在项目配置中),则规则 2 和 4 基于标签将被禁用。
可以允许只有具有特定角色(rbac)的用户使用角色 1(对所有用户)进行发布;为此,请将以下内容添加到 Cwh 模块配置中
'modules' => [
....
'cwh' => [
'class' => 'arter\amos\cwh\AmosCwh',
'regolaPubblicazioneFilter' => true,
'regolaPubblicazioneFilterRole' => 'MY_ROLE'
],
....
]
默认情况下,基于角色的发布规则过滤是禁用的(所有用户都可以使用规则 1 发布内容。如果启用发布规则过滤但未指定角色,则允许发布规则 1 的默认角色是 'VALIDATOR_PLUS'。
要禁用发布规则,请将 cwh 配置中的 regolaPubblicazioneEnabled 设置为 false。
'modules' => [
....
'cwh' => [
'class' => 'arter\amos\cwh\AmosCwh',
'regolaPubblicazioneEnabled' => false
],
....
]
验证器 - '发布给'
如果内容模型工作流未被绕过,则在发布内容时必须设置验证范围。
因此,在表单/向导中,cwh 节点必须独立于发布规则进行指定。
在带有 CwhNetworkBehaviors 的内容模型中
- 指定验证器的属性是 $model->validatori(如果将来需要更多验证器,则是一个数组)。
- 在模型表单中,设置验证器的字段由 widget arter\amos\cwh\widgets\Validatori 显示。
如果选择“我的”(Mio conto),则用户将个人发布内容(未选择特定网络),因此验证可能由具有“VALIDATOR”角色的用户或用户促进者(如果平台中已启用)执行。如果设置了网络验证范围,则验证将由有权验证网络下内容(在网络中创建和验证内容的域权限)的用户执行:存储在表 cwh_auth_assignment 中的 domains permission to create and validate contents in a network。
示例
a. Jhon Doe,用户 ID = 5 使用个人验证范围(我的)发布新闻,并由 ID 为 3 的用户促进。新闻可以由以下用户验证
- Jhon 本身如果他有 VALIDATOR 角色。
- a VALIDATOR 用户。
- 用户 3(不需要是 VALIDATOR),因为他具有在用户域中为 ID=3 的用户验证新闻的 cwh_auth_assignment 权限。
b. Jhon Doe 想在社区 ID = 6 中创建新闻。
- 他必须是社区 6 的参与者,并且具有为社区 ID = 6 创建新闻的 cwh_auth_assignment 权限(社区_user_mm 中的 PARTICIPANT 角色提供了权限)
- 新闻可以由具有为社区 6 验证权限的用户验证——通常是社区的管理员。
- a VALIDATOR 用户如果不能成为社区 6 的成员(例如,在一个社区中,任何在 COMMUNITY_USER_MM 表中具有 PARTICIPANT 角色的社区用户),则不能验证新闻。
验证器自定义
可以隐藏表单/向导中的验证器部分(例如,如果工作流未激活),设置选项 validatoriEnabled 为 false。
'modules' => [
....
'cwh' => [
'class' => 'arter\amos\cwh\AmosCwh',
'validatoriEnabled' => false
],
....
]
收件人 - '发布范围'
如果选择了涉及网络的发布规则,则必须选择网络进行内容发布(例如,一个社区)。
在带有 CwhNetworkBehaviors 的内容模型中
- 指定发布范围的属性是 $model->destinatari(一个包含所选网络 cwh_nodi_id 的数组)。
- 在模型表单中,设置收件人的字段由 widget arter\amos\cwh\widgets\Destinatari 显示。
收件人自定义
可以隐藏表单/向导中的收件人部分(例如,如果工作流未激活),设置选项 destinatariEnabled 为 false。
'modules' => [
....
'cwh' => [
'class' => 'arter\amos\cwh\AmosCwh',
'destinatariEnabled' => false
],
....
]
收件人检查
Cwh模块还提供了一个小部件,可以在内容发布表单中获取“收件人检查”工具。收件人检查小部件 arter\amos\cwh\widgets\RecipientsCheck 绘制一个按钮,打开一个模态窗口,显示将内容设置为“个人兴趣”的用户列表。
配置向导
要使用配置向导,请确保已启用php扩展soap和intl。
网络
内容
如果适合与cwh内容管理一起使用(实现 arter\amos\core\interfaces\ContentModelInterface ),则可以配置内容模型。为此
- 激活cwh插件
- 打开cwh配置向导(需要管理员权限)URL
- 在内容配置部分搜索该模型
- 编辑模型的配置并保存 //TODO 指定字段如何使用
文档
安装
'modules' => [
....
'cwh' => [
'class' => 'arter\amos\cwh\AmosCwh',
],
....
]
模块参数
regolaPubblicazioneFilter - 请参阅“发布规则定制”部分
regolaPubblicazioneFilterRole - 请参阅“发布规则定制”部分
regolaPubblicazioneEnabled - 请参阅“发布规则定制”部分
validatoriEnabled - 请参阅“验证器定制”部分
destinatariEnabled - 请参阅“收件人定制”部分
cached - bool 默认 = false - 如果启用cwh查询缓存以查找内容时
cacheDuration int 默认 = 86400 - 如果查询缓存已激活(cached = true),则缓存持续时间(默认为24小时)。
enableDestinatariFatherChildren : 如果为true,则可以从社区发布内容到社区父级和子社区。 tagsMatchEachTree : bool - 默认 = false.
如果要在每个标签树中匹配每个标签时将内容视为用户兴趣,请将其设置为true
默认为false:至少有一个内容标签匹配用户兴趣(任何树)