[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подсветка кода на форуме
Страницы: 1, 2, 3, 4, 5, 6, 7
kirik
FatCat
Спасибо! Все ясно, сегодня-завтра поколдую над похожей вставкой. А! Сообщения которые не хотят редактироваться (с большим количеством кода) они заваливаются на функции unconvert_*()?

Michael
Хаа!! biggrin.gif Супер сделал!! biggrin.gif biggrin.gif Здоровски!!)) Жалко там нельзя аватарку поставить..

UPD
Нарисовали вот лого для подсвечивальщика, милый слоник вышел smile.gif
FatCat
Цитата (kirik @ 31.10.2009 - 20:36)
А! Сообщения которые не хотят редактироваться (с большим количеством кода) они заваливаются на функции unconvert_*()?

Да.

_____________
Бесплатному сыру в дырки не заглядывают...
kirik
Окей.. Сделал парсинг BB-кодов в подсветку, и обратно. Потестить можно тут.
Понимает (точнее должен понимать smile.gif ):
[ php]код[ /php] - подсвечивает как php
[ code]код[ /code] - мультиподсветка (html, php, js, css)
[ html]код[ /html] - подсвечивает как html
[ js]код[ /js] - подсвечивает как js
[ css]код[ /css] - подсвечивает как css
[ sql]код[ /sql] - подсвечивает как sql
и там в конце документа текстареа большая - в ней переведенный код обратно в тот, который ввели.

UPD
кто в верстке/js хорошо шарит, подумайте как можно оформить кодовые блоки - строки, чтобы при наведении на строку она вся подсвечивалась. Я седня делал, но как-то криво вышло и в ИЕ6 не работало dry.gif Завтра подумаю есче smile.gif

UPD2
еще heredoc тип нужно сделать.. забыл про него совсем..
FatCat
Э...
А что подсветилось?

_____________
Бесплатному сыру в дырки не заглядывают...
kirik
FatCat
Оформляйте код в специальные тэги! smile.gif

[ php]код[ /php] забыл.. Просто можешь подсветить исходник какого-нибудь сообщения с кодом..
FatCat
Потестил, вроде чисто работает.
Но малость непривычно:
user posted image

user posted image


И, кстати, еще проблема. В форуме используется фильтрация входящих:
function clean_value($val)
    {
        global $ibforums;
        
        if ($val == "")
        {
            return "";
        }
        
        $val = str_replace( " ", " ", $val );
        
        if ( $ibforums->vars['strip_space_chr'] )
        {
            $val = str_replace( chr(0xCA), "", $val );  //Remove sneaky spaces
        }
        
        $val = str_replace( "&"            , "&"         , $val );
        $val = str_replace( "<!--"         , "<!--"  , $val );
        $val = str_replace( "-->"          , "-->"       , $val );
        $val = preg_replace( "/<script/i"  , "<script"   , $val );
        $val = str_replace( ">"            , ">"          , $val );
        $val = str_replace( "<"            , "<"          , $val );
        $val = str_replace( "\\""           , """        , $val );
        $val = preg_replace( "/\\n/"        , "<br>"          , $val ); // Convert literal newlines
        $val = preg_replace( "/\\\\\\$/"      , "$"        , $val );
        $val = preg_replace( "/\\r/"        , ""              , $val ); // Remove literal carriage returns
        $val = str_replace( "!"            , "!"         , $val );
        $val = str_replace( "'"            , "'"         , $val ); // IMPORTANT: It helps to increase sql query safety.
        
        // Ensure unicode chars are OK
        
        if ( $this->allow_unicode )
        {
            $val = preg_replace("/&#([0-9]+);/s", "&#\\\\1;", $val );
        }
        
        // Strip slashes if not already done so.
        
        if ( $this->get_magic_quotes )
        {
            $val = stripslashes($val);
        }
        
        // Swop user inputted backslashes
        
        $val = preg_replace( "/\\\\\\(?!&#|?#)/", "\\", $val ); 
        
        return $val;
    }


_____________
Бесплатному сыру в дырки не заглядывают...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.