Example #1
0
 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);
 }
Example #2
0
 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
     }
 }
Example #3
0
    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);
    }