function bindCustomEvents(Tiki_Event_Manager $manager) { $runner = $this->getRunner($manager); $customizer = new Tiki_Event_Customizer(); foreach ($this->getRules() as $rule) { $customizer->addRule($rule['eventType'], $rule['rule']); } $customizer->bind($manager, $runner); }
function bindCustomEvents(Tiki_Event_Manager $manager) { $runner = $this->getRunner($manager); $customizer = new Tiki_Event_Customizer(); try { foreach ($this->getRules() as $rule) { $customizer->addRule($rule['eventType'], $rule['rule']); } $customizer->bind($manager, $runner); } catch (TikiDb_Exception $e) { // Prevent failure while binding events to avoid locking out users } }
function testCustomEventRecording() { $customizer = new Tiki_Event_Customizer(); $customizer->addRule('custom.event', '(event-record event args)'); $customizer->addRule('tiki.trackeritem.save', '(event-trigger custom.event (map (amount (add args.a args.b)) (test args.c) ))'); $customizer->bind($this->manager, $this->runner); $this->manager->trigger('tiki.trackeritem.save', array('a' => 2, 'b' => 3, 'c' => 4)); $this->assertEquals('custom.event', $this->lastEvent); $this->assertEquals(array('amount' => 5, 'test' => 4), $this->lastArguments); }