claroline / tag-bundle
Claroline 标签插件
Requires
- php: >=5.5
- claroline/core-bundle: >=6.3.7,<7.0
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' ), ... )