XF 2.2 BBcode

Версия XenForo
2.2.5

Foghost

Проверенные
Сообщения
59
Решения
1
Реакции
6
Баллы
150
6.1. Не создавайте темы с малопонятным содержанием.
Посоветуйте решение отсутствия colspan и rowspawn.
Очень уж надо объединить ячейки)
 
Решение
Спасибо, попробую разобраться
Там все просто:
PHP:
<?php
 
namespace Foghost\TDBbcode;

class BbcodeParser {

    public static function td($tagChildren, $tagOption, $tag, array $options, \XF\BbCode\Renderer\AbstractRenderer $renderer)
    {
        $res = $renderer->renderSubTree($tagChildren, $options);
        $toptions = trim(strip_tags($tag['option']));
        $toptions = preg_split("|,|", $toptions, -1, PREG_SPLIT_NO_EMPTY);
        // [td={IDENTIFIER},{NUMBER1},{NUMBER2}]{TEXT}[/td]
        @list($class, $num1, $num2) = $toptions;
        if ($tmp = trim($class)) {
            $classTag = "class=\"$tmp\"";
        }
        if ($tmp = trim($num1)) {
            $rowSpan = "rowspan=\"$tmp\"";
        }
        if ($tmp = trim($num2)) {
            $colSpan...
PHP:
public static function td($tagChildren, $tagOption, $tag, array $options, \XF\BbCode\Renderer\AbstractRenderer $renderer)
{
    $res = $renderer->renderSubTree($tagChildren, $options);
    $toptions = trim(strip_tags($tag['option']));
    $toptions = preg_split("|,|", $toptions, -1, PREG_SPLIT_NO_EMPTY);
    // [td={IDENTIFIER},{NUMBER1},{NUMBER2}]{TEXT}[/td]
    @list($class, $num1, $num2) = $toptions;
    if ($tmp = trim($class)) {
        $classTag = "class=\"$tmp\"";
    }
    if ($tmp = trim($num1)) {
        $rowSpan = "rowspan=\"$tmp\"";
    }
    if ($tmp = trim($num2)) {
        $colSpan = "colspan=\"$tmp\"";
    }
    return "<td {$classTag} {$rowSpan} {$colSpan}>{$res}</td>";
}

 
PHP:
public static function td($tagChildren, $tagOption, $tag, array $options, \XF\BbCode\Renderer\AbstractRenderer $renderer)
{
    $res = $renderer->renderSubTree($tagChildren, $options);
    $toptions = trim(strip_tags($tag['option']));
    $toptions = preg_split("|,|", $toptions, -1, PREG_SPLIT_NO_EMPTY);
    // [td={IDENTIFIER},{NUMBER1},{NUMBER2}]{TEXT}[/td]
    @list($class, $num1, $num2) = $toptions;
    if ($tmp = trim($class)) {
        $classTag = "class=\"$tmp\"";
    }
    if ($tmp = trim($num1)) {
        $rowSpan = "rowspan=\"$tmp\"";
    }
    if ($tmp = trim($num2)) {
        $colSpan = "colspan=\"$tmp\"";
    }
    return "<td {$classTag} {$rowSpan} {$colSpan}>{$res}</td>";
}

Спасибо, попробую разобраться
 
Спасибо, попробую разобраться
Там все просто:
PHP:
<?php
 
namespace Foghost\TDBbcode;

class BbcodeParser {

    public static function td($tagChildren, $tagOption, $tag, array $options, \XF\BbCode\Renderer\AbstractRenderer $renderer)
    {
        $res = $renderer->renderSubTree($tagChildren, $options);
        $toptions = trim(strip_tags($tag['option']));
        $toptions = preg_split("|,|", $toptions, -1, PREG_SPLIT_NO_EMPTY);
        // [td={IDENTIFIER},{NUMBER1},{NUMBER2}]{TEXT}[/td]
        @list($class, $num1, $num2) = $toptions;
        if ($tmp = trim($class)) {
            $classTag = "class=\"$tmp\"";
        }
        if ($tmp = trim($num1)) {
            $rowSpan = "rowspan=\"$tmp\"";
        }
        if ($tmp = trim($num2)) {
            $colSpan = "colspan=\"$tmp\"";
        }
        return "<td {$classTag} {$rowSpan} {$colSpan}>{$res}</td>";
    }

}
1. Загружаешь вышеуказанный код по адресу: addons/Foghost/TDBbcode/BbcodeParser.php
2. Создаешь BB-код td и указываешь режим замены: PHP-обработчик
3. Опция BB-кода: да
3. Ниже, в поле PHP-обработчик, указываешь Foghost\TDBbcode\BbcodeParser : td

Единственный момент - все ли сойдется с 2.2
 
Последнее редактирование:
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу