lispa/amos-cwh

此包的最新版本(2.11.0)没有可用的许可证信息。

CWH 管理 - 插件


README

Collaboration Web House 模块定义了项目插件及其网络之间的协作规则。
cwh 的目的是通过基于用户兴趣或网络成员资格的规则,启用内容的发布。

内容模型

对于内容模型,我们指的是一个包含可以发布给所有用户、在网络中共享或标记为属于特定兴趣领域(标签)的信息的模型。
要使用 cwh 激活模型的接口(从 amos 核心模块)是 open20\amos\core\interfaces\ContentModelInterface(见 配置向导 部分)。
内容模型配置存储在表 cwh_config_contents 中。

发布

创建后,内容发布存储在表 cwh_pubblicazioni 中。AmosNews 中的新闻模型是一个内容模型的示例。

Cwh 节点

Cwh 节点是发布域,用作验证范围或接收者(发布范围)——见验证器和接收者部分。
域名配置存储在表 cwh_config 中,从这个配置中创建视图 'cwh_nodi_view',以映射项目中所有网络的信息(见 Cwh Nodi View 部分)。

网络模型

网络是一个允许创建成员组(用户-网络关联)并在属于同一组的用户之间共享信息的模型。
要作为 cwh 发布网络适合的模型必须实现的接口(在 amos cwh 中)是 open20\amos\cwh\base\ModelNetworkInterface(见 配置向导 部分)。
在我的个人资料中,可以查看用户网络。

用户域

除了网络模型之外,在 cwh_config 表中还可以找到单个用户的配置,这不应被视为网络,但它有自己的配置,并作为节点参与 cwh 流程(内容可以针对单个用户发布)。在 amos 管理员中,网络部分的我的个人资料中,用户联系映射显示为网络(如果启用了用户联系),但它不依赖于 cwh 配置:即使 cwh 模块未启用,也可以启用用户联系。用户节点可以设置为验证器(发布内容表单中的字段发布),但不能作为发布范围(接收者),因为目前无法发布仅对另一用户可见的内容。

发布规则

默认发布规则是

  1. PUBLIC 公开给所有人 - 对所有用户公开
  2. 标签 所有兴趣领域的用户
    • 在“自己的兴趣”标签页中,内容仅对用户兴趣与内容标签匹配时可见
    • 在“所有”标签页中可见
  3. 网络 指定范围内的所有用户:这意味着内容已在一个或多个网络中发布
    • 在“自己的兴趣”标签页中,内容仅对指定网络成员可见
    • 在“所有”标签页中,如果网络是公开的(例如,社区开放),如果网络没有可见性规则,或者如果用户是网络成员,则内容可见
  4. 网络和标签 指定网络和匹配内容标签的所有用户。
    • 与3.相同,增加条件匹配兴趣区域,在“我的兴趣”标签中查看内容

在包含 CwhNetworkBehaviors 的内容模型中

  • 指定发布规则的属性是 $model->regola_pubblicazione
  • 在模型表单中,设置发布规则的字段由 widget open20\amos\cwh\widgets\RegolaPubblicazione 显示。

有关更多信息,请参阅 内容发布 部分。

发布规则定制

如果标签模块未激活(未在项目配置中存在),则规则2和4(基于标签)将禁用。
可以允许具有角色1(所有用户)的权限仅限具有特定角色(rbac)的用户发布内容;为此,请添加到Cwh模块配置

'modules' => [
    ....
    'cwh' => [
            'class' => 'open20\amos\cwh\AmosCwh',
            'regolaPubblicazioneFilter' => true,
            'regolaPubblicazioneFilterRole' => 'MY_ROLE'
        ],
    ....
]

默认情况下,按角色过滤发布规则是禁用的(所有用户都可以使用规则1发布内容。如果启用发布规则过滤但未指定角色,则允许发布规则1的默认角色是‘VALIDATOR_PLUS’

要禁用发布规则,请将cwh配置中的regolaPubblicazioneEnabled设置为false

'modules' => [
    ....
    'cwh' => [
            'class' => 'open20\amos\cwh\AmosCwh',
            'regolaPubblicazioneEnabled' => false
        ],
    ....
]

验证器 - “发布给”

如果内容模型工作流程未绕过,则在发布内容时必须设置验证范围。
因此,在表单/向导中,必须独立于发布规则指定cwh节点。

在包含 CwhNetworkBehaviors 的内容模型中

  • 指定验证器的属性是 $model->validatori(如果将来需要更多验证器,它将是一个数组)。
  • 在模型表单中,设置验证器的字段由 widget open20\amos\cwh\widgets\Validatori 显示。

如果选择“我的”或“Mio conto”,则用户将个人发布内容(不选择特定网络),因此验证可能由具有“VALIDATOR”角色的用户或用户促进者(如果平台中已启用)完成。如果设置了网络验证范围,则验证将由有权验证网络下内容的用户完成:存储在表 cwh_auth_assignment 中的 网络权限以创建和验证网络中的内容

示例

a. Jhon Doe,user_id = 5正在发布带有个人验证范围(我的)的新闻,并由id为3的用户促进。新闻可以由以下人员验证:

  • Jhon本人(如果他有VALIDATOR角色)。
  • a VALIDATOR用户。
  • 用户3(不需要是VALIDATOR)因为他有cwh_auth_assignment权限来验证id为3的用户域中的新闻。

b. Jhon Doe想创建一个id为6的社区新闻。

  • 他必须是社区6的参与者,并具有创建社区6新闻的cwh_auth_assignment权限(社区_user_mm中的PARTICIPANT角色提供了权限)
  • 新闻可以由有权验证社区6的用户验证 - 通常为社区管理员。
  • a VALIDATOR用户如果不能是社区6网络的成员,则不能验证新闻。(例如,在社区中,任何在COMMUNITY_USER_MM表中具有PARTICIPANT角色的社区用户都可以)。
验证器定制

可以通过设置选项validatoriEnabled为false来从表单/向导中隐藏验证器部分(例如,如果工作流程未激活)。

'modules' => [
    ....
    'cwh' => [
            'class' => 'open20\amos\cwh\AmosCwh',
            'validatoriEnabled' => false
        ],
    ....
]

接收者 - “发布范围”

如果选择了涉及网络的发布规则,则必须为内容发布选择一个网络(例如社区)。

在包含 CwhNetworkBehaviors 的内容模型中

  • 指定发布范围的属性是 $model->destinatari(包含所选网络的cwh_nodi_id的数组)。
  • 在模型表单中,设置接收者的字段由 widget open20\amos\cwh\widgets\Destinatari 显示。
接收者定制

可以通过设置选项destinatariEnabled为false来从表单/向导中隐藏接收者部分(例如,如果工作流程未激活)。

'modules' => [
    ....
    'cwh' => [
            'class' => 'open20\amos\cwh\AmosCwh',
            'destinatariEnabled' => false
        ],
    ....
]

接收者检查

Cwh模块还提供了一个小部件,可以在内容发布表单中获取“接收者检查”实用程序。接收者检查 widget open20\amos\cwh\widgets\RecipientsCheck 将绘制一个按钮,打开一个模态,显示内容将为“自己的兴趣”的用户列表。

配置向导

要使用配置向导,请检查php扩展soap和intl是否已启用。

网络
内容

如果内容模型适合与cwh内容管理器(实现了 open20\amos\core\interfaces\ContentModelInterface)一起使用,则可以配置内容模型。为此

  • 激活cwh插件
  • 打开cwh配置向导(需要管理员权限)url:/cwh/configuration/wizard
  • 在内容配置部分搜索模型
  • 编辑模型的配置并保存 //TODO指定字段的使用方式

文档

阅读文档

安装

'modules' => [
    ....
    'cwh' => [
            'class' => 'open20\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:至少有一个内容标签匹配用户兴趣(任何树)