ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
ImportantDecorator.php
Go to the documentation of this file.
1 <?php
2 
7 {
8  public $def, $allow;
9 
14  public function __construct($def, $allow = false) {
15  $this->def = $def;
16  $this->allow = $allow;
17  }
21  public function validate($string, $config, $context) {
22  // test for ! and important tokens
23  $string = trim($string);
24  $is_important = false;
25  // :TODO: optimization: test directly for !important and ! important
26  if (strlen($string) >= 9 && substr($string, -9) === 'important') {
27  $temp = rtrim(substr($string, 0, -9));
28  // use a temp, because we might want to restore important
29  if (strlen($temp) >= 1 && substr($temp, -1) === '!') {
30  $string = rtrim(substr($temp, 0, -1));
31  $is_important = true;
32  }
33  }
34  $string = $this->def->validate($string, $config, $context);
35  if ($this->allow && $is_important) $string .= ' !important';
36  return $string;
37  }
38 }
39 
40 // vim: et sw=4 sts=4