claroline/tag-bundle

Claroline 标签插件

安装: 448

依赖: 1

建议者: 0

安全: 0

星标: 0

关注者: 6

分支: 2

开放问题: 0

类型:claroline-plugin

6.0.3 2016-02-03 15:36 UTC

This package is auto-updated.

Last update: 2024-09-13 22:03:41 UTC


README

警告

开发已迁移到 claroline/Distribution。该存储库不再维护。

########################

如何给实体打标签

########################

为了给对象打标签,需要分发一个 "Claroline\CoreBundle\Event\GenericDatasEvent" 事件。事件名称必须是 "claroline_tag_object"。事件 "datas" 字段必须是一个数组,定义如下

array ( 'tag' => [String], // 标签名称 'object' => [Any entity], // 需要打标签的对象 'user' => [User] // 可选。标签的所有者。默认为 NULL。 )

以下是从控制器函数调用以给工作空间打上 "My Tags" 标签的示例

*******************************************************************
    $datas = array('tag' => 'My Tags', 'object' => $workspace);

    $this->get('claroline.event.event_dispatcher')->dispatch(
        'claroline_tag_object',
        'GenericDatas',
        array($datas)
    );
*******************************************************************

OR

*******************************************************************
    $datas = array('tag' => 'My Tags', 'object' => $workspace);
    $event = new GenericDatasEvent();
    $event->setDatas($datas);

    $this->get('event_dispatcher')->dispatch(
        'claroline_tag_object',
        $event
    );
*******************************************************************

###############################

如何获取打标签的对象

###############################

要获取打标签的对象,也需要分发一个 "Claroline\CoreBundle\Event\GenericDatasEvent" 事件。事件名称必须是 "claroline_retrieve_tagged_objects"。事件 "datas" 字段必须是一个数组,定义如下

array ( 'tag' => [String], // 标签名称 'user' => [User] // 可选。标签的所有者。默认为 NULL。 'with_platform' => [Boolean] // 可选。定义是否在用户选项定义的情况下也要考虑平台标签。默认为 False。 'strict' => [Boolean] // 可选。定义是否需要完全或部分匹配标签选项。默认为 False。 'class' => [String] // 可选。要获取的对象的类。如果使用,则只获取该类的对象。默认为 NULL。 'object_response' => [Boolean] // 可选。定义返回值是否转换到类选项。如果不转换,则是一个值的数组。默认为 False。'class' 选项是必需的。 'ordered_by' => [String] // 可选。排序字段。定义转换返回对象的顺序。默认为 'id'。'class' 选项是必需的。 'order' => [String] // 可选。顺序。定义转换返回对象的顺序。默认为 'ASC'。'class' 选项是必需的。 )

以下是一个示例,按名称顺序获取所有打上 "My Tags" 标签的工作空间

**************************************************************************
    $datas = array(
        'tag' => 'My Tags',
        'strict' => true,
        'class' => 'Claroline\CoreBundle\Entity\Workspace\Workspace',
        'object_response' => true,
        'ordered_by' => 'name',
        'order' => 'ASC'
    );

    $event = $this->get('claroline.event.event_dispatcher')->dispatch(
        'claroline_retrieve_tagged_objects',
        'GenericDatas',
        array($datas)
    );

    $workspaces = $event->getResponse();
**************************************************************************

如果未定义 'class' 选项或 'object_response' 不是 true,则响应值是一个定义如下数组的数组

array( array( 'class' => 'Claroline\CoreBundle\Entity\Workspace\Workspace', 'id' => 45, 'name' => 'Workspace ABC' ), array( 'class' => 'Claroline\CoreBundle\Entity\Workspace\Workspace', 'id' => 74, 'name' => 'Workspace XYZ' ), array( 'class' => 'Claroline\CoreBundle\Entity\User', 'id' => 11, 'name' => 'John DOE' ), ... )