Пример #1
0
 /**
  * Recursively call the parser with a new Codes object
  * This allows to parse BBC in parameters like [quote author="[url]www.quotes.com[/url]"]Something famous.[/quote]
  *
  * @param string &$data
  * @param array $tag
  */
 protected function recursiveParser(&$data, array $tag)
 {
     // @todo if parsed tags allowed is empty, return?
     $bbc = clone $this->bbc;
     if (!empty($tag[Codes::ATTR_PARSED_TAGS_ALLOWED])) {
         $bbc->setParsedTags($tag[Codes::ATTR_PARSED_TAGS_ALLOWED]);
     }
     // Do not use $this->autolinker. For some reason it causes a recursive loop
     // @todo figure out why it causes a recursive loop!
     $autolinker = null;
     $html = null;
     $this->triggerEvent('recursive_bbc', array(&$autolinker, &$html));
     $parser = new \BBC\Parser($bbc, $autolinker, $html);
     $parser->canParseAutolink($this->autolink_enabled);
     $parser->canParseHTML($this->html_enabled);
     $data = $parser->enableSmileys(empty($tag[Codes::ATTR_PARSED_TAGS_ALLOWED]))->parse($data);
 }
Пример #2
0
$message_dir = __DIR__ . '/Creator';
$messages = (require_once $message_file);
// Parser
$parser_dir = '../../Tests/Parser/';
require_once $parser_dir . '/Parser.php';
require_once $parser_dir . '/Codes.php';
require_once $parser_dir . '/DefaultCodes.php';
require_once $parser_dir . '/SmileyParser.php';
require_once $parser_dir . '/Autolink.php';
require_once $parser_dir . '/HtmlParser.php';
require_once '../../BBCHelpers.php';
globalSettings();
$bbc = new \BBC\DefaultCodes(array(), array());
$autolink = new \BBC\Autolink($bbc);
$html = new \BBC\HtmlParser();
$parser = new \BBC\Parser($bbc, $autolink, $html);
$smiley_parser = new \BBC\SmileyParser($modSettings['smileys_url'] . '/' . $user_info['smiley_set'] . '/');
// Preparser
require_once '../../PreparserTests/OldPreparser/OldPreParser.php';
foreach ($messages as $i => $input) {
    $class_name = 'Message' . $i;
    $filename = 'Message' . $i . '.php';
    // These aren't preparsed. This is how they will be stored.
    $stored = $input;
    preparsecode($stored);
    if ($stored !== $input) {
        echo "\nMessage {$i} needs to be preparsed<br>";
    }
    $output = $parser->parse($stored);
    $smiley_parser->parse($output);
    $escaped_input = addslashes($input);