ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
Bulky.php
Go to the documentation of this file.
1 <?php
2 declare(strict_types=1);
3 
4 /* Copyright (c) 2017 Nils Haagen <nils.haagen@concepts-and-training.de> Extended GPL, see docs/LICENSE */
5 
7 
8 use ILIAS\UI\Component as C;
10 
14 class Bulky extends Button implements C\Button\Bulky
15 {
16  use Engageable;
17 
18  // allowed ARIA roles
19  const MENUITEM = 'menuitem';
20 
24  protected $icon_or_glyph;
25 
29  protected $aria_role;
30 
34  protected static $allowed_aria_roles = array(
35  self::MENUITEM
36  );
37 
38  public function __construct(Symbol $icon_or_glyph, string $label, string $action)
39  {
40  $this->icon_or_glyph = $icon_or_glyph;
41  $this->label = $label;
42  $this->action = $action;
43  }
44 
48  public function getIconOrGlyph()
49  {
50  return $this->icon_or_glyph;
51  }
52 
59  public function withAriaRole(string $aria_role) : Button
60  {
61  $this->checkArgIsElement(
62  "role",
63  $aria_role,
64  self::$allowed_aria_roles,
65  implode('/', self::$allowed_aria_roles)
66  );
67  $clone = clone $this;
68  $clone->aria_role = $aria_role;
69  return $clone;
70  }
71 
77  public function getAriaRole() : ?string
78  {
79  return $this->aria_role;
80  }
81 }
This describes a symbol.
Definition: Symbol.php:11
checkArgIsElement($which, $value, $array, $name)
Throw an InvalidArgumentException if $value is not an element of array.
__construct(Symbol $icon_or_glyph, string $label, string $action)
Definition: Bulky.php:38
getAriaRole()
Get the ARIA role on the button.
Definition: Bulky.php:77
trait Engageable
Trait Engageable.
Definition: Engageable.php:15
withAriaRole(string $aria_role)
Get a button like this, but with an additional ARIA role.
Definition: Bulky.php:59