1 (04.04.2009 07:59 отредактировано flashcat)

Тема: [Запрос] тег [SIZE]

В общем я еще не очень разобрался в написание расширений, помогите правильно довести до ума чтоб расширение заработало.)
Вот что я уже натворил:

<hooks>
        <hook id="ps_start"><![CDATA[

// tag handling function
function handle_size_tag($inputText) {
    return '<span style="font-size: $1px">$2</span>');
}

        ]]></hook>

        <hook id="ps_preparse_tags_start"><![CDATA[

// add our tag to the list
$tags[] = 'size';
$tags_opened[] = 'size=';
$tags_closed[] = 'size';
$tags_inline[] = 'size=';
$tags_trim[] = 'size';

        ]]></hook>
        <hook id="ps_do_bbcode_replace"><![CDATA[

// add pattern to catch [size=]text[/size]
$pattern[] = '#\[size=([0-9]*)](.*?)\[/size\]#s');
$replace[] = 'handle_size_tag(\'$1\')';

        ]]></hook>
    </hooks>

Добавлено спустя 22 минуты 23 секунды:

ох простите мою тупую голову вечно спрошу и сам ответ нахожу...
Вот ответ:
   

<hooks>
        <hook id="ps_do_bbcode_end"><![CDATA[
if (!function_exists('bbcode_size_pregcallback')) {
    function bbcode_size_pregcallback($matches) {
        $sizes = array('1'=>'xx-small', '2'=>'x-small', '3'=>'small', '4'=>'medium', '5'=>'large', '6'=>'x-large', '7'=>'xx-large', 
            '+1'=>'150%', '+2'=>'200%', '+3'=>'300%', '-1'=>'80%', '-2'=>'60%', '-3'=>'40%');
        if (isset($sizes[$matches[1]]))
            return '<span style="font-size=: '.$sizes[$matches[1]].';">'.$matches[2].'</span>';
        else
            return $matches[0];
    }
}
$text = preg_replace_callback('~\\[size=([1-7]|[+-][1-3])\\]([^<>]*)\\[/size\\]~isU', 'bbcode_size_pregcallback', $text);
        ]]></hook>
    </hooks>
</extension>

Сайт flashcat

Поделиться

2

Re: [Запрос] тег [SIZE]

Это есть уже как расширение:


http://punbb.informer.com/forums/post/126239/#p126239

Поделиться

3

Re: [Запрос] тег [SIZE]

Прошу прощения, а нет ли готового расширения, совместимого с 1.3.4? То, что по ссылке - не работает. Было бы очень кстати: недавно обновил движок, и в стартовых сообщениях многих тем остались эти теги.

Поделиться

4 (13.04.2011 06:49 отредактировано PunBB Fun)

Re: [Запрос] тег [SIZE]

Я добавил прямо в код форума, там всего то ничего.

в "...include/parser.php" находим место которое отвечает за "парсинг" стандартных "ББкодов". Выглядит оно примерно так:

...
    $pattern[] = '#\[b\](.*?)\[/b\]#ms';
    $pattern[] = '#\[i\](.*?)\[/i\]#ms';
    $pattern[] = '#\[u\](.*?)\[/u\]#ms';
    $pattern[] = '#\[colou?r=([a-zA-Z]{3,20}|\#[0-9a-fA-F]{6}|\#[0-9a-fA-F]{3})](.*?)\[/colou?r\]#ms';
    $pattern[] = '#\[h\](.*?)\[/h\]#ms';
    $pattern[] = '#\[size=([0-9]{1,2})\](.*?)\[/size\]#ms';

    $replace[] = '<strong>$1</strong>';
    $replace[] = '<em>$1</em>';
    $replace[] = '<span class="bbu">$1</span>';
    $replace[] = '<span style="color: $1">$2</span>';
    $replace[] = '</p><h5>$1</h5><p>';
    $replace[] = '<span style="font-size: $1pt">$2</span>';

Красным я отметил добавленный тег [size]. Таким же макаром можно и другие добавить.


P.S.
Конечно лучше это оформить в виде маленького расширеньица, но за незнанием пыхпыха и так нормально.

Не забываем ставить плюсики дополнительно к «спасибам».

Поделиться