Проблема в функции обратного вызова NBBC-анализатора

#php #callback

#php #обратный вызов

Вопрос:

Я загрузил NBBC-parser (https://github.com/vanilla/nbbc/releases/tag/v2.2.3 ), и большинство функций работают. Но функция обратного вызова не работает. В $input у меня есть строка с прокруткой и функцией (пользовательской) границы. Но работает только функция прокрутки, и я вижу текст прокрутки.

Обратный вызов для пограничного тега не работает. Он не анализируется, и я вижу только текст.

Может быть, проблема в пространствах имен?

Есть ли ошибка в вызове / функции, или я должен искать проблему в другом месте?

 <?php
            require_once(__DIR__ . "/../vendor/autoload.php");
            use NbbcBBCode;
            
            /* Custom Callback-function for 'MyBorderFunction' */
            function MyBorderFunction($bbcode, $action, $name,
            $default, $params, $content) {
                if ($action == 'BBCODE_CHECK') {
                    if (isset($params['color'])
                    amp;amp; !preg_match('/^#[0-9a-fA-F] |[a-zA-Z] $/', $params['color']))
                    return false;
                    if (isset($params['size'])
                    amp;amp; !preg_match('/^[1-9][0-9]*$/', $params['size']))
                    return false;
                    return true;
                }
                
                
                $color = isset($params['color']) ? $params['color'] : "blue";
                $size = isset($params['size']) ? $params['size'] : 1;
                return "<div style="border: {$size}px solid $color">$content</div>";
            }
            
            $input = "[scroll]tralalala[/scroll][border color=red size=3]This text is in a medium red border![/border]"
            . "[border size=10]This text is in a fat blue border![/border]"
            . "[border color=green]This text is in a normal green border![/border]";
            
            $bbcode = new BBCode();
            
            $bbcode->AddRule('border',  Array(
            'mode' => BBCODE_MODE_CALLBACK,
            'method' => 'MyBorderFunction',
            'class' => 'block',
            'allow_in' => Array('listitem', 'block', 'columns'),
            ));

            $marquee = Array(
            'simple_start' => '<marquee>',
            'simple_end' => '</marquee>',
            'class' => 'inline',
            'allow_in' => Array('listitem', 'block', 'columns', 'inline', 'link'),
            );
            $bbcode->AddRule('scroll', $marquee);

            // Parse the UBBtags.
            $output = $bbcode->Parse($input);
            print "<div class='bbcode'>$output</div>";
            
            ?>