File indexing completed on 2024-04-21 05:54:20

0001 <?php
0002 
0003 /**
0004  *  ocs-apiserver
0005  *
0006  *  Copyright 2016 by pling GmbH.
0007  *
0008  *    This file is part of ocs-apiserver.
0009  *
0010  *    This program is free software: you can redistribute it and/or modify
0011  *    it under the terms of the GNU Affero General Public License as
0012  *    published by the Free Software Foundation, either version 3 of the
0013  *    License, or (at your option) any later version.
0014  *
0015  *    This program is distributed in the hope that it will be useful,
0016  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
0017  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0018  *    GNU Affero General Public License for more details.
0019  *
0020  *    You should have received a copy of the GNU Affero General Public License
0021  *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
0022  *
0023  * Created: 22.06.2017
0024  */
0025 class Application_Model_BBCode
0026 {
0027 
0028     /**
0029      * @param string $bbcode
0030      *
0031      * @return string
0032      */
0033     public static function renderHtml($bbcode)
0034     {
0035         if (empty($bbcode)) {
0036             return '';
0037         }
0038 
0039         Zend_Markup::addParserPath('Local_Markup_Parser', APPLICATION_LIB . '/Local/Markup/Parser');
0040         $parser = Zend_Markup::factory('BbcodeCI');
0041         $parser->setDefaultFilter( new Zend_Filter_Callback('nl2br'));
0042         $parser->addMarkup(
0043             'url',
0044             Zend_Markup_Renderer_RendererAbstract::TYPE_CALLBACK,
0045             array(
0046                 'callback' => new Local_Markup_Renderer_Html_Url(),
0047                 'group'    => 'inline',
0048                 'filter'   => true
0049             )
0050         );
0051 
0052         return $parser->render($bbcode);
0053     }
0054 
0055 }