XF 2.1 Создание bb-code с обработчиком php

Статус
В этой теме нельзя размещать новые ответы.
Версия XenForo
2.1.7

Via

Проверенные
Сообщения
46
Реакции
4
Баллы
65
Хотел попросить помощи, мне нужно создать bb-code с обработчиком php. нашел такую тему на форуме, но не могу понять куда это файл нужно забросить.
Буду очень благодарен
 
Это я видел, а сам файл куда на сервере положить? или не имеет значения? Просто я разместил php файл по такому пути /src/addons/XenAddons/Old/VideoOld и когда указываю обработчик мне пишет вот такое

Код:
Неверный обработчик XenAddons\Old\VideoOld::video (error_invalid_class).

сам код файла вот:
PHP:
<?php

class VideoOld
{
    public static function video($tagChildren, $tagOption, $tag, array $options, \XF\BbCode\Renderer\AbstractRenderer
    $renderer)
    {
//$tagOption опции тега

        $content = $renderer->renderSubTree($tagChildren, $options); // содержание тега
//тут обрабативаем опции и и содержимое
        return $content;


    }
}
?>
 
Последнее редактирование:
Via, лучше описывать, что конкретно надо, может там без обработчика можно обойтись
Возможно и так, но я бы хотел так же разобраться и с обработчиками.
А вообще задача такая:
После перехода с vBulletin на xenforo , в сообщениях остался старый ббкод
Код:
[video=youtube;CcBhK59JAHc]https://www.youtube.com/watch?v=CcBhK59JAHc[/video]
вот хочу переделать что-бы вместо него вставлялось нормальное видео.
 
Спасибо, за помощь уже сделал через bb-code.
если кому-то нужно будет (таким же как и я, окуням новичкам ) вот решение:
PHP:
namespace XenAddons\Old;

class VideoOld
{
    public static function video($tagChildren, $tagOption, $tag, array $options, \XF\BbCode\Renderer\AbstractRenderer
    $renderer)
        {
            $url = $content = $renderer->renderSubTree($tagChildren, $options);;
            parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars );
            $result = '<iframe src="https://www.youtube.com/embed/' .  $my_array_of_vars['v'] . '"
                width="560" height="315"
                frameborder="0" allowfullscreen="true"></iframe>';
            return $result;
        }
}
 
Последнее редактирование:
Спасибо, за помощь уже сделал через bb-code.
если кому-то нужно будет (таким же как и я, окуням новичкам ) вот решение:
PHP:
namespace XenAddons\Old;

class VideoOld
{
    public static function video($tagChildren, $tagOption, $tag, array $options, \XF\BbCode\Renderer\AbstractRenderer
    $renderer)
        {
            $url = $content = $renderer->renderSubTree($tagChildren, $options);;
            parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars );
            $result = '<iframe src="https://www.youtube.com/embed/' .  $my_array_of_vars['v'] . '"
                width="560" height="315"
                frameborder="0" allowfullscreen="true"></iframe>';
            return $result;
        }
}
Лучше вызывать штатную функцию, которая рендерит видео с ютуба (renderTagMedia наверно)
 
Короче надо [BS] Regex Censor
По идеи ссылка [video=youtube;CcBhK59JAHc]https://www.youtube.com/watch?v=CcBhK59JAHc[/video] должна в сообщениях приобрести иной вид, такой [video=youtube;CcBhK59JAHc][MEDIA=youtube]CcBhK59JAHc[/MEDIA] и ищем регулярным выражением /\[video=youtube;(.*?)\].*?\[\/MEDIA]/is заменяем на [MEDIA=youtube]\1[/MEDIA]
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу