<?php
/**
* Perforce Swarm
*
* @copyright 2013 Perforce Software. All rights reserved
* @license Please see LICENSE.txt in top-level folder of this distribution.
* @version 2013.1.MAIN-TEST_ONLY/597594
*/
namespace GoodbyeCruelWorld;
use Projects\Model\Project;
use Zend\Mvc\MvcEvent;
use Activity\Model\Activity;
class Module
{
/**
* Block all of alau's activity
*
* This module shows how to block events that you do not want in the feed.
*
* @param Event $event the bootstrap event
* @return void
*/
public function onBootstrap(MvcEvent $event)
{
$application = $event->getApplication();
$services = $application->getServiceManager();
$manager = $services->get('queue');
$events = $manager->getEventManager();
// we attach to all events. see the other examples for how to attach to specific events
$events->attach(
'*', // '*' here attaches us to all events
function ($event) use ($services,$manager) { // we need both services and manager for this module
// a lot of events come through. we need to make sure this is actually an activity event
$model = $event->getParam('activity');
if (!$model instanceof Activity) {
return;
}
// calling stopPropagation prevents the event from getting to the end of the line and being published
if ($model->get('user') == 'alau') {
$services->get('logger')->err("Lau smote");
$event->stopPropagation(true);
return;
}
// note if we did nothing
$services->get('logger')->err("No Lau to smite");
},
// set our priority, -90 puts us right before the end so Andrew can't sneak in easily
-90
);
}
// loads up our config file. all modules should have this method.
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
// makes sure our module is automatically loaded. otherwise the user would
// explicitly install our module in the application
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
}
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #1 | 8302 | Matt Attaway |
Adding a couple sample Swarm extensions. HelloWorld shows how a module can intercept and modify events in the activity stream before they are published. GoodbyCruelWorld prevents events matching certain criteria from being published to the activity stream. |