BBCode::Internal_ProcessVerbatimTag( $tag_name, $tag_params, $tag_rule )
Description
Source
File: bp-forums/admin/parser.php
function Internal_ProcessVerbatimTag($tag_name, $tag_params, $tag_rule) { $state = $this->lexer->SaveState(); $end_tag = $this->lexer->tagmarker . "/" . $tag_name . $this->lexer->end_tagmarker; $start = count($this->stack); $this->lexer->verbatim = true; while (($token_type = $this->lexer->NextToken()) != BBCODE_EOI) { if ($this->lexer->text == $end_tag) { $end_tag_params = $this->lexer->tag; break; } if ($this->output_limit > 0 && $this->text_length + strlen($this->lexer->text) >= $this->output_limit) { $text = $this->Internal_LimitText($this->lexer->text, $this->output_limit - $this->text_length); if (strlen($text) > 0) { $this->text_length += strlen($text); $this->stack[] = Array( BBCODE_STACK_TOKEN => BBCODE_TEXT, BBCODE_STACK_TEXT => $this->FixupOutput($text), BBCODE_STACK_TAG => false, BBCODE_STACK_CLASS => $this->current_class, ); } $this->Internal_DoLimit(); break; } $this->text_length += strlen($this->lexer->text); $this->stack[] = Array( BBCODE_STACK_TOKEN => $token_type, BBCODE_STACK_TEXT => htmlspecialchars($this->lexer->text), BBCODE_STACK_TAG => $this->lexer->tag, BBCODE_STACK_CLASS => $this->current_class, ); } $this->lexer->verbatim = false; if ($token_type == BBCODE_EOI) { $this->lexer->RestoreState($state); $this->stack[] = Array( BBCODE_STACK_TOKEN => BBCODE_TEXT, BBCODE_STACK_TEXT => $this->FixupOutput($this->lexer->text), BBCODE_STACK_TAG => false, BBCODE_STACK_CLASS => $this->current_class, ); return; } $newstart = $this->Internal_CleanupWSByIteratingPointer(@$tag_rule['after_tag'], $start, $this->stack); $this->Internal_CleanupWSByPoppingStack(@$tag_rule['before_endtag'], $this->stack); $this->Internal_CleanupWSByEatingInput(@$tag_rule['after_endtag']); $content = $this->Internal_CollectText($this->stack, $newstart); array_splice($this->stack, $start); $this->Internal_ComputeCurrentClass(); $this->Internal_CleanupWSByPoppingStack(@$tag_rule['before_tag'], $this->stack); $tag_params['_endtag'] = $end_tag_params['_tag']; $tag_params['_hasend'] = true; $output = $this->DoTag(BBCODE_OUTPUT, $tag_name, @$tag_params['_default'], $tag_params, $content); $this->stack[] = Array( BBCODE_STACK_TOKEN => BBCODE_TEXT, BBCODE_STACK_TEXT => $output, BBCODE_STACK_TAG => false, BBCODE_STACK_CLASS => $this->current_class, ); }
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.