<?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. |