1 <?php 2 3 /** 4 * Definition that allows a set of elements, and allows no children. 5 * @note This is a hack to reuse code from HTMLPurifier_ChildDef_Required, 6 * really, one shouldn't inherit from the other. Only altered behavior 7 * is to overload a returned false with an array. Thus, it will never 8 * return false. 9 */ 10 class HTMLPurifier_ChildDef_Optional extends HTMLPurifier_ChildDef_Required 11 { 12 /** 13 * @type bool 14 */ 15 public $allow_empty = true; 16 17 /** 18 * @type string 19 */ 20 public $type = 'optional'; 21 22 /** 23 * @param array $children 24 * @param HTMLPurifier_Config $config 25 * @param HTMLPurifier_Context $context 26 * @return array 27 */ 28 public function validateChildren($children, $config, $context) 29 { 30 $result = parent::validateChildren($children, $config, $context); 31 // we assume that $children is not modified 32 if ($result === false) { 33 if (empty($children)) { 34 return true; 35 } elseif ($this->whitespace) { 36 return $children; 37 } else { 38 return array(); 39 } 40 } 41 return $result; 42 } 43 } 44 45 // vim: et sw=4 sts=4
title
Description
Body
title
Description
Body
title
Description
Body
title
Body