ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
Triggerer.php
Go to the documentation of this file.
1 <?php
3 
5 
14 trait Triggerer
15 {
16 
20  protected $triggered_signals = array();
21 
29  protected function appendTriggeredSignal(Component\Signal $signal, $event)
30  {
31  $clone = clone $this;
32  if (!is_array($clone->triggered_signals[$event])) {
33  $clone->triggered_signals[$event] = array();
34  }
35  $clone->triggered_signals[$event][] = new TriggeredSignal($signal, $event);
36  return $clone;
37  }
38 
46  protected function addTriggeredSignal(Component\Signal $signal, $event)
47  {
48  $clone = clone $this;
49  $clone->triggered_signals[$event] = array();
50  $clone->triggered_signals[$event][] = new TriggeredSignal($signal, $event);
51  return $clone;
52  }
53 
57  public function getTriggeredSignals()
58  {
59  return $this->flattenArray($this->triggered_signals);
60  }
61 
65  public function withResetTriggeredSignals()
66  {
67  $clone = clone $this;
68  $clone->triggered_signals = array();
69  return $clone;
70  }
71 
78  private function flattenArray(array $array)
79  {
80  $flatten = array();
81  array_walk_recursive($array, function ($a) use (&$flatten) {
82  $flatten[] = $a;
83  });
84  return $flatten;
85  }
86 }
addTriggeredSignal(Component\Signal $signal, $event)
Add a triggered signal, replacing any other signals registered on the same event. ...
Definition: Triggerer.php:46
flattenArray(array $array)
Flatten a multidimensional array to a single dimension.
Definition: Triggerer.php:78
appendTriggeredSignal(Component\Signal $signal, $event)
Append a triggered signal to other signals of the same event.
Definition: Triggerer.php:29
Create styles array
The data for the language used.