function execute($tokens, $config, &$context) { // setup id_accumulator context $id_accumulator = new HTMLPurifier_IDAccumulator(); $id_accumulator->load($config->get('Attr', 'IDBlacklist')); $context->register('IDAccumulator', $id_accumulator); // setup validator $validator = new HTMLPurifier_AttrValidator(); $token = false; $context->register('CurrentToken', $token); foreach ($tokens as $key => $token) { // only process tokens that have attributes, // namely start and empty tags if ($token->type !== 'start' && $token->type !== 'empty') { continue; } // skip tokens that are armored if (!empty($token->armor['ValidateAttributes'])) { continue; } // note that we have no facilities here for removing tokens $validator->validateToken($token, $config, $context); $tokens[$key] = $token; // for PHP 4 } $context->destroy('IDAccumulator'); $context->destroy('CurrentToken'); return $tokens; }
function testLoad() { $accumulator = new HTMLPurifier_IDAccumulator(); $accumulator->load(array('id1', 'id2', 'id3')); $this->assertFalse($accumulator->add('id1')); // repeated id $this->assertTrue($accumulator->add('id4')); }
/** * Builds an IDAccumulator, also initializing the default blacklist * @param $config Instance of HTMLPurifier_Config * @param $context Instance of HTMLPurifier_Context * @return Fully initialized HTMLPurifier_IDAccumulator */ public static function build($config, $context) { $id_accumulator = new HTMLPurifier_IDAccumulator(); $id_accumulator->load($config->get('Attr.IDBlacklist')); return $id_accumulator; }
/** * Builds an IDAccumulator, also initializing the default blacklist * @param $config Instance of HTMLPurifier_Config * @param $context Instance of HTMLPurifier_Context * @return Fully initialized HTMLPurifier_IDAccumulator * @static */ function build($config, &$context) { $acc = new HTMLPurifier_IDAccumulator(); $acc->load($config->get('Attr', 'IDBlacklist')); return $acc; }