ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
hasSymbolTrait.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
21 
25 use LogicException;
26 
31 trait hasSymbolTrait
32 {
36  protected $symbol;
37 
41  public function withSymbol(Symbol $symbol) : hasSymbol
42  {
43  // bugfix mantis 25526: make aria labels mandatory
44  if (($symbol instanceof Glyph && $symbol->getAriaLabel() === "") ||
45  ($symbol instanceof Icon && $symbol->getLabel() === "")) {
46  throw new LogicException("the symbol's aria label MUST be set to ensure accessibility");
47  }
48 
49  $clone = clone $this;
50  $clone->symbol = $symbol;
51 
52  return $clone;
53  }
54 
58  public function getSymbol() : Symbol
59  {
60  return $this->symbol;
61  }
62 
66  public function hasSymbol() : bool
67  {
68  return $this->symbol instanceof Symbol;
69  }
70 }
This describes a symbol.
Definition: Symbol.php:11
This describes how a glyph could be modified during construction of UI.
Definition: Glyph.php:13
Interface hasSymbol Methods for Entries with Symbols.
Definition: hasSymbol.php:32