BBCode::Internal_GenerateOutput( $pos )
Description
Source
File: bp-forums/admin/parser.php
function Internal_GenerateOutput($pos) { $output = Array(); while (count($this->stack) > $pos) { $token = array_pop($this->stack); if ($token[BBCODE_STACK_TOKEN] != BBCODE_TAG) { $output[] = $token; } else { $name = @$token[BBCODE_STACK_TAG]['_name']; $rule = @$this->tag_rules[$name]; $end_tag = @$rule['end_tag']; if (!isset($rule['end_tag'])) $end_tag = BBCODE_REQUIRED; else $end_tag = $rule['end_tag']; array_pop($this->start_tags[$name]); if ($end_tag == BBCODE_PROHIBIT) { $output[] = Array( BBCODE_STACK_TOKEN => BBCODE_TEXT, BBCODE_STACK_TAG => false, BBCODE_STACK_TEXT => $token[BBCODE_STACK_TEXT], BBCODE_STACK_CLASS => $this->current_class, ); } else { if ($end_tag == BBCODE_REQUIRED) @$this->lost_start_tags[$name] += 1; $end = $this->Internal_CleanupWSByIteratingPointer(@$rule['before_endtag'], 0, $output); $this->Internal_CleanupWSByPoppingStack(@$rule['after_tag'], $output); $tag_body = $this->Internal_CollectTextReverse($output, count($output)-1, $end); $this->Internal_CleanupWSByPoppingStack(@$rule['before_tag'], $this->stack); $this->Internal_UpdateParamsForMissingEndTag(@$token[BBCODE_STACK_TAG]); $tag_output = $this->DoTag(BBCODE_OUTPUT, $name, @$token[BBCODE_STACK_TAG]['_default'], @$token[BBCODE_STACK_TAG], $tag_body); $output = Array(Array( BBCODE_STACK_TOKEN => BBCODE_TEXT, BBCODE_STACK_TAG => false, BBCODE_STACK_TEXT => $tag_output, BBCODE_STACK_CLASS => $this->current_class )); } } } $this->Internal_ComputeCurrentClass(); return $output; }
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.