<?php // HTMLPurifier_ChildDef and inheritance have three types of output: // true = leave nodes as is // false = delete parent node and all children // array(...) = replace children nodes with these /** * Defines allowed child nodes and validates tokens against it. */ class HTMLPurifier_ChildDef { /** * Type of child definition, usually right-most part of class name lowercase. * Used occasionally in terms of context. */ public $type; /** * Bool that indicates whether or not an empty array of children is okay * * This is necessary for redundant checking when changes affecting * a child node may cause a parent node to now be disallowed. */ public $allow_empty; /** * Lookup array of all elements that this definition could possibly allow */ public $elements = array(); /** * Validates nodes according to definition and returns modification. * * @param $tokens_of_children Array of HTMLPurifier_Token * @param $config HTMLPurifier_Config object * @param $context HTMLPurifier_Context object * @return bool true to leave nodes as is * @return bool false to remove parent node * @return array of replacement child tokens */ public function validateChildren($tokens_of_children, $config, $context) { trigger_error('Call to abstract function', E_USER_ERROR); } }