| 1: | <?php
|
| 2: |
|
| 3: |
|
| 4: | |
| 5: | |
| 6: | |
| 7: | |
| 8: | |
| 9: |
|
| 10: | class HTMLPurifier_AttrDef_Enum extends HTMLPurifier_AttrDef
|
| 11: | {
|
| 12: |
|
| 13: | |
| 14: | |
| 15: | |
| 16: | |
| 17: |
|
| 18: | public $valid_values = array();
|
| 19: |
|
| 20: | |
| 21: | |
| 22: | |
| 23: |
|
| 24: | protected $case_sensitive = false;
|
| 25: |
|
| 26: | |
| 27: | |
| 28: | |
| 29: |
|
| 30: | public function __construct($valid_values = array(), $case_sensitive = false)
|
| 31: | {
|
| 32: | $this->valid_values = array_flip($valid_values);
|
| 33: | $this->case_sensitive = $case_sensitive;
|
| 34: | }
|
| 35: |
|
| 36: | |
| 37: | |
| 38: | |
| 39: | |
| 40: | |
| 41: |
|
| 42: | public function validate($string, $config, $context)
|
| 43: | {
|
| 44: | $string = trim($string);
|
| 45: | if (!$this->case_sensitive) {
|
| 46: |
|
| 47: | $string = ctype_lower($string) ? $string : strtolower($string);
|
| 48: | }
|
| 49: | $result = isset($this->valid_values[$string]);
|
| 50: |
|
| 51: | return $result ? $string : false;
|
| 52: | }
|
| 53: |
|
| 54: | |
| 55: | |
| 56: | |
| 57: | |
| 58: | |
| 59: |
|
| 60: | public function make($string)
|
| 61: | {
|
| 62: | if (strlen($string) > 2 && $string[0] == 's' && $string[1] == ':') {
|
| 63: | $string = substr($string, 2);
|
| 64: | $sensitive = true;
|
| 65: | } else {
|
| 66: | $sensitive = false;
|
| 67: | }
|
| 68: | $values = explode(',', $string);
|
| 69: | return new HTMLPurifier_AttrDef_Enum($values, $sensitive);
|
| 70: | }
|
| 71: | }
|
| 72: |
|
| 73: |
|
| 74: | |