BBCode::Internal_ParseStartTagToken()
Description
Source
File: bp-forums/admin/parser.php
function Internal_ParseStartTagToken() { $tag_params = $this->lexer->tag; $tag_name = @$tag_params['_name']; if (!isset($this->tag_rules[$tag_name])) { $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; } $tag_rule = $this->tag_rules[$tag_name]; $allow_in = is_array($tag_rule['allow_in']) ? $tag_rule['allow_in'] : Array($this->root_class); if (!in_array($this->current_class, $allow_in)) { if (!$this->Internal_RewindToClass($allow_in)) { $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; } } $end_tag = isset($tag_rule['end_tag']) ? $tag_rule['end_tag'] : BBCODE_REQUIRED; if ($end_tag == BBCODE_PROHIBIT) { $this->Internal_ProcessIsolatedTag($tag_name, $tag_params, $tag_rule); return; } if (!$this->DoTag(BBCODE_CHECK, $tag_name, @$tag_params['_default'], $tag_params, "")) { $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; } if (@$tag_rule['content'] == BBCODE_VERBATIM) { $this->Internal_ProcessVerbatimTag($tag_name, $tag_params, $tag_rule); return; } if (isset($tag_rule['class'])) $newclass = $tag_rule['class']; else $newclass = $this->root_class; $this->stack[] = Array( BBCODE_STACK_TOKEN => $this->lexer->token, BBCODE_STACK_TEXT => $this->FixupOutput($this->lexer->text), BBCODE_STACK_TAG => $this->lexer->tag, BBCODE_STACK_CLASS => ($this->current_class = $newclass), ); if (!isset($this->start_tags[$tag_name])) $this->start_tags[$tag_name] = Array(count($this->stack)-1); else $this->start_tags[$tag_name][] = count($this->stack)-1; }
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.