| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | <?php/** * Definition that allows a set of elements, and allows no children. * @note This is a hack to reuse code from HTMLPurifier_ChildDef_Required, *       really, one shouldn't inherit from the other.  Only altered behavior *       is to overload a returned false with an array.  Thus, it will never *       return false. */class HTMLPurifier_ChildDef_Optional extends HTMLPurifier_ChildDef_Required{    /**     * @type bool     */    public $allow_empty = true;    /**     * @type string     */    public $type = 'optional';    /**     * @param array $children     * @param HTMLPurifier_Config $config     * @param HTMLPurifier_Context $context     * @return array     */    public function validateChildren($children, $config, $context)    {        $result = parent::validateChildren($children, $config, $context);        // we assume that $children is not modified        if ($result === false) {            if (empty($children)) {                return true;            } elseif ($this->whitespace) {                return $children;            } else {                return array();            }        }        return $result;    }}// vim: et sw=4 sts=4
 |