protected function processCommentBBCode($comment) { if ($this->_bbcode_processor === null) { $parser = new \JBBCode\Parser(); $definitions = array(); $builder = new \Foolz\FoolFuuka\Model\BBCode\Code(); array_push($definitions, $builder); $builder = new \JBBCode\CodeDefinitionBuilder('spoiler', '<span class="spoiler">{param}</span>'); array_push($definitions, $builder->build()); $builder = new \JBBCode\CodeDefinitionBuilder('sub', '<sub>{param}</sub>'); $builder->setNestLimit(1); array_push($definitions, $builder->build()); $builder = new \JBBCode\CodeDefinitionBuilder('sup', '<sup>{param}</sup>'); $builder->setNestLimit(1); array_push($definitions, $builder->build()); $builder = new \JBBCode\CodeDefinitionBuilder('eqn', '<script type="math/tex; mode=display">{param}</script>'); array_push($definitions, $builder->build()); $builder = new \JBBCode\CodeDefinitionBuilder('math', '<script type="math/tex">{param}</script>'); array_push($definitions, $builder->build()); $builder = new \JBBCode\CodeDefinitionBuilder('b', '<strong>{param}</strong>'); array_push($definitions, $builder->build()); $builder = new \JBBCode\CodeDefinitionBuilder('i', '<em>{param}</em>'); array_push($definitions, $builder->build()); $builder = new \JBBCode\CodeDefinitionBuilder('o', '<span class="overline">{param}</span>'); array_push($definitions, $builder->build()); $builder = new \JBBCode\CodeDefinitionBuilder('s', '<span class="strikethrough">{param}</span>'); array_push($definitions, $builder->build()); $builder = new \JBBCode\CodeDefinitionBuilder('u', '<span class="underline">{param}</span>'); array_push($definitions, $builder->build()); $definitions = Hook::forge('Foolz\\FoolFuuka\\Model\\Comment::processCommentBBCode#var.definitions')->setObject($this)->setParam('definitions', $definitions)->execute()->get($definitions); foreach ($definitions as $definition) { $parser->addCodeDefinition($definition); } $this->_bbcode_processor = $parser; } // work around for dealing with quotes in BBCode tags $comment = str_replace('"', '"', $comment); $comment = $this->_bbcode_processor->parse($comment)->getAsBBCode(); $comment = str_replace('"', '"', $comment); return $this->_bbcode_processor->parse($comment)->getAsHTML(); }