ILIAS  trunk Revision v11.0_alpha-1713-gd8962da2f67
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
Toggle.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
23 use ILIAS\UI\Component as C;
28 
29 class Toggle extends Button implements C\Button\Toggle
30 {
31  use ComponentHelper;
33  use Triggerer;
34 
35  protected ?string $action_off = null;
36  protected ?string $action_on = null;
37 
38  public function __construct(string $label, $action_on, $action_off, bool $is_on, ?Signal $click = null)
39  {
40  $this->checkStringOrSignalArg("action", $action_on);
41  $this->checkStringOrSignalArg("action_off", $action_off);
42 
43  // no way to resolve conflicting string actions
44  $button_action = (is_null($click)) ? "" : $click;
45 
46  parent::__construct($label, $button_action);
47 
48  if (is_string($action_on)) {
49  $this->action_on = $action_on;
50  } else {
51  $this->setTriggeredSignal($action_on, "toggle_on");
52  }
53 
54  if (is_string($action_off)) {
55  $this->action_off = $action_off;
56  } else {
57  $this->setTriggeredSignal($action_off, "toggle_off");
58  }
59 
60  $this->is_engageable = true;
61  $this->engaged = $is_on;
62  }
63 
67  public function getActionOff()
68  {
69  if ($this->action_off !== null) {
70  return $this->action_off;
71  }
72 
73  return $this->getTriggeredSignalsFor("toggle_off");
74  }
75 
79  public function getActionOn()
80  {
81  if ($this->action_on !== null) {
82  return $this->action_on;
83  }
84 
85  return $this->getTriggeredSignalsFor("toggle_on");
86  }
87 
89  {
90  return $this->appendTriggeredSignal($signal, "toggle_on");
91  }
92 
94  {
95  return $this->appendTriggeredSignal($signal, "toggle_off");
96  }
97 }
appendTriggeredSignal(C\Signal $signal, string $event)
Append a triggered signal to other signals of the same event.
Definition: Triggerer.php:47
trait JavaScriptBindable
Trait for components implementing JavaScriptBindable providing standard implementation.
getTriggeredSignalsFor(string $event)
Get signals that are triggered for a certain event.
Definition: Triggerer.php:94
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
setTriggeredSignal(C\Signal $signal, string $event)
Add a triggered signal, replacing any other signals registered on the same event. ...
Definition: Triggerer.php:75
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: Bulky.php:21
engaged()
description: > Example for rendering an engaged bulky button
Definition: engaged.php:33
__construct(Container $dic, ilPlugin $plugin)
__construct(string $label, $action_on, $action_off, bool $is_on, ?Signal $click=null)
Definition: Toggle.php:38