dle.in.ua » Хаки » Подсветка HTML кода

Подсветка HTML кода

Автор: wp_ от 1-05-2010, 15:13
Подсветка HTML кода


Очень удобный хак который помогает тем кто добавляет новости с примером кода. Данный хак для DLE выводит подсветку HTML в текстах взятых в тег code тем самым сам текст выглядит более наглядным для пользователей сайта.
Установка:
Открываем файл engine/classes/parse.class.php и находим в нём следующие строки:

function decodeBBCodes($txt, $use_html=TRUE, $wysiwig = "no") {
global $config;
$find = array (); $result = array ();
$txt=stripslashes($txt);


Ниже добавляем:

########## Vbif update
$txt = preg_replace( "#<font color=\#(.+?)>#", '', $txt );
$txt = preg_replace( "#</font>#", '', $txt );
########## Vbif update


Далее ниже находим строки:

$txt = preg_replace( "#\s{1};#" , "&#59;" , $txt );
$txt = preg_replace( "#\t#"   , "&nbsp;&nbsp;&nbsp;&nbsp;", $txt );
$txt = preg_replace( "#\s{2}#", "&nbsp;&nbsp;"            , $txt );


Ниже добавляем:

########## Vbif update
// Открывающие и закрывающие тэги
$tegs = array("'&#60;\?php'si", "'&#60;\?'si", "'\?&#62;'si");
$replace = array("<font color=#FF0000>&#60;?php</font>",
"<font color=#FF0000>&#60;?</font>",
"<font color=#FF0000>?&#62;</font>");
$txt = preg_replace($tegs, $replace, $txt);
// Подсветка комментариев                
$txt = preg_replace("'(/\*.*?\*/)'si", "<font color=#777777>\\1</font>", $txt);
// Подсветка переменных                  
$txt = preg_replace("'([\$]{1,2}[0-9A-Za-z_]+)'si", "<font color=#660000>\\1</font>", $txt);
// Подсветка знаков равенства                  
$txt = preg_replace("'(\s={1,3}\s)'", "<font color=#8000FF>\\1</font>", $txt);
// Подсветка зарезервированных слов
$str = array("'(\becho)'si",  "'(\bprint)'si",  "'(\bwhile)'si",  "'(\bif)'si",
"'(\bifelse)'si","'(\belse)'si",   "'(\bfor\b)'si",    "'(\bswitch\b)'si",
"'(\bcase)'si",  "'(\breturn\b)'si", "'(\barray)'si",  "'(\bfunction\b)'si",
"'(\bforeach)'si","'(\bclass\b)'si",  "'(\bglobal\b)'si", "'(\bvar\b)'si",
"'(\bisset)'si", "'(\bempty)'si",  "'(\bfalse\b)'si",  "'(\btrue\b)'si",
"'(\bas\b)'si",  "'(\bempty)'si",  "'(\bfalse\b)'si",  "'(\btrue\b)'si",
"'(\binclude)'si","'(\binclude_once)'si", "'(\brequire)'si", "'(\brequire_once)'si");
$replace = array_fill(0, count($str), "<font color=#0000FF>\\1</font>");
$txt = preg_replace($str, $replace, $txt);                          
########## Vbif update
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • а назад оно парсить будет? тоесть добавлю я новость с "подсвеченным кодом", а потом когда решу её отредактировать получу хз что или то что добавлялось изначально?
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 156
  • Публикаций: 2
  • как то тут все запутано... ведь функция подсвечивающая код highlight_string()
    например:
    <?
    $code='<?
    echo "тест <br>";
    echo now();
    ?>';
    highlight_string($code);

    ?>

    Результат работы этого кода:
    <?
    echo "тест <br>";
    echo now();
    ?>
    • Dimas-rap
    • Регистрация: 16.08.2008
    • Репутация: (0|0|0)
    • 1 мая 2010 17:15
    • 2
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 1
  • Публикаций: 0
  • А у меня почему-то не работает (: Dle 8.3
    • astat24
    • Регистрация: 27.12.2009
    • Репутация: (0|0|0)
    • 1 мая 2010 21:37
    • 3
    ^
  • Группа: User
  • Icq: 477778842
  • Комментариев: 31
  • Публикаций: 2
  • У меня на dle 8.3 и dle 8.5 не пашет!!!!

    --------------------
    • stalkerdj
    • Регистрация: 13.02.2010
    • Репутация: (0|0|0)
    • 2 мая 2010 11:28
    • 4
    ^
  • Группа: User
  • Icq: 819585
  • Комментариев: 102
  • Публикаций: 11
  • Подсветка HTML кода

    а на скрине php код smile

    --------------------
    • SKDzR
    • Регистрация: 1.08.2008
    • Репутация: (0|0|0)
    • 2 мая 2010 14:07
    • 5
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • хак - *акашка, парсить нужно при выводе данных с БД, а не при их добавлении

    Dimas-rap функция highlight_string() будет работать если ей отдаётся законченный код, если лишь кусок кода - подсветки не будет.
    ^
  • Группа: User
  • Icq: 3144777
  • Комментариев: 62
  • Публикаций: 7
  • есть куча решений на яве
    http://web-devil.ru/web/javascript/190-podsvetka-programnogo-koda-na-sajjta
    kh-javascript.html
    реализовано у меня на сайте

    --------------------
    • dfanat
    • Регистрация: 2.08.2008
    • Репутация: (0|0|0)
    • 3 мая 2010 11:31
    • 7
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • ява - лажа, ИМХО http://i.piccy.info/i5/26/63/66326/1_.png
    ^
  • Группа: User
  • Icq: 3144777
  • Комментариев: 62
  • Публикаций: 7
  • стример,
    яву включи css через яву грузится

    ява вещь

    --------------------
    • dfanat
    • Регистрация: 2.08.2008
    • Репутация: (0|0|0)
    • 4 мая 2010 11:37
    • 9
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • Сайт девила поплыл... Мозг тоже через яву включаешь?
    ^
  • Группа: User
  • Icq: 3144777
  • Комментариев: 62
  • Публикаций: 7
  • ghostinshell,
    nq

    --------------------
    • dfanat
    • Регистрация: 2.08.2008
    • Репутация: (0|0|0)
    • 6 мая 2010 20:34
    • 11
    ^
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.