kitpages/activity-bundle

管理活动

v3.0.1 2018-09-21 08:32 UTC

This package is auto-updated.

Last update: 2024-09-04 19:14:42 UTC


README

Build Status

SensioLabsInsight

记录网站活动并在某些页面上显示通知。

主要用于快速原型设计。

快速入门

创建活动

$this->get("kitpages_activity.activity_manager")->createActivity(
    "my_category",
    "my title",
    "my message content",
    "my url", //optionnal
    "my reference", //optionnal
    array("key1" => "val1", ), //optionnal
);

在twig模板中显示活动列表

{{ render(controller('KitpagesActivityBundle:Activity:list', {
    'request': app.request, // mandatory
    'filterList': { "category": "my_category" }, // optionnal
} ) ) }}

在PHP中获取活动

$activityManager = $this->get("kitpages_activity.activity_manager");
$activityList = $activityManager->getActivityList( array(
    "category" => "my category"
) );

功能

  • 记录活动
  • 使用引用将活动附加到对象
  • 将活动附加到类别
  • 使用分页器和全文过滤器轻松显示活动
  • 按类别、标题、消息、引用过滤活动
  • 可以排序活动

安装

使用 Composer,只需 $ composer require kitpages/activity-bundle 包或

{
  "require": {
    "kitpages/activity-bundle": "~1.0"
  }
}

然后在AppKernel中添加此捆绑包

    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
            new Kitpages\ActivityBundle\KitpagesActivityBundle(),
            new Kitpages\DataGridBundle\KitpagesDataGridBundle(),
        );
    }

在twig模板中显示活动列表

{{ render(controller('KitpagesActivityBundle:Activity:list', {
    'request': app.request, // mandatory
    'filterList': { "category": "my_category" }, // optionnal
    'orderBy': 'id ASC' // optionnal, default to "createdAt DESC"
} ) ) }}

在PHP中获取活动列表

获取所有活动

$activityManager = $this->get("kitpages_activity.activity_manager");
$activityList = $activityManager->getActivityList();

获取指定类别的活动

$activityManager = $this->get("kitpages_activity.activity_manager");
$activityList = $activityManager->getActivityList( array(
    "category" => "my category"
) );

获取以"payments."开头的所有类别的活动

$activityManager = $this->get("kitpages_activity.activity_manager");
$activityList = $activityManager->getActivityList( array(
    "category" => "payment*"
) );

过滤原则

  • 您可以过滤字段类别、标题、消息、URL或引用。
  • 您可以在过滤的开始或结尾使用 "*" 作为通配符(以"xxx"开头的类别或以"xxx"结尾的所有内容)。
  • 您可以使用 "*" 来转义通配符

排序结果

默认情况下,活动列表按createdAt DESC排序。您可以指定排序方式

$activityManager = $this->get("kitpages_activity.activity_manager");
$activityList = $activityManager->getActivityList(
    array("category" => "payment.*"),
    "id DESC", // sort field : id, reference, category, createdAt
);

最佳实践

  • 类别字段用于按类别过滤活动
  • 引用字段用于表示与此活动相关联的对象(如果有对象)。我想象引用如"company.15.user.23"。然后我们可以使用通配符在过滤器中检索公司或此用户的活动。
  • 数据字段用于添加与该活动相关联的所有信息

注意:类别在过滤器列表中不是必需的。

版本

2013-12-18 : v1.0.0

  • 第一个版本

2014-11-07 : v2.0.0

  • 升级到KitpagesDataGrid 2.x
  • 在活动上添加过滤器
  • 添加了引用和自定义数据
  • 活动列表排序
  • 更好的单元测试