[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * Framework class for strings that involve multiple values. 5 * 6 * Certain CSS properties such as border-width and margin allow multiple 7 * lengths to be specified. This class can take a vanilla border-width 8 * definition and multiply it, usually into a max of four. 9 * 10 * @note Even though the CSS specification isn't clear about it, inherit 11 * can only be used alone: it will never manifest as part of a multi 12 * shorthand declaration. Thus, this class does not allow inherit. 13 */ 14 class HTMLPurifier_AttrDef_CSS_Multiple extends HTMLPurifier_AttrDef 15 { 16 17 /** 18 * Instance of component definition to defer validation to. 19 * @todo Make protected 20 */ 21 public $single; 22 23 /** 24 * Max number of values allowed. 25 * @todo Make protected 26 */ 27 public $max; 28 29 /** 30 * @param $single HTMLPurifier_AttrDef to multiply 31 * @param $max Max number of values allowed (usually four) 32 */ 33 public function __construct($single, $max = 4) { 34 $this->single = $single; 35 $this->max = $max; 36 } 37 38 public function validate($string, $config, $context) { 39 $string = $this->parseCDATA($string); 40 if ($string === '') return false; 41 $parts = explode(' ', $string); // parseCDATA replaced \r, \t and \n 42 $length = count($parts); 43 $final = ''; 44 for ($i = 0, $num = 0; $i < $length && $num < $this->max; $i++) { 45 if (ctype_space($parts[$i])) continue; 46 $result = $this->single->validate($parts[$i], $config, $context); 47 if ($result !== false) { 48 $final .= $result . ' '; 49 $num++; 50 } 51 } 52 if ($final === '') return false; 53 return rtrim($final); 54 } 55 56 } 57 58 // vim: et sw=4 sts=4
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |