[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подсветка кода на форуме
Страницы: 1, 2, 3, 4, 5, 6, 7
kirik
Цитата (FatCat @ 4.11.2009 - 13:19)
А заодно, если можно, упростить архитектуру: нужен код функции, которая получает текст и отдает форматированный текст. Иначе я замучаюсь ее в форумный ООП засовывать.

Так это вроде есть /includes/sh_functions.php: highlite_code($text) и перевод обратно: unhighlite_code($input).

Цитата (FatCat @ 4.11.2009 - 13:19)
Если подсветки разных языков, тогда по функции на каждый язык...

highlite_code($text) - эта функция подсвечивает все языки, тоесть из форумного парсера все парсеры блоков кода можно заменить на эту функцию.

Цитата (FatCat @ 4.11.2009 - 13:19)
У нас здесь все в 1251-й.

окей.
FatCat
Цитата (kirik @ 4.11.2009 - 22:27)
highlite_code($text) - эта функция подсвечивает все языки

Она вызывает функцию highlighter. Та в свою очередь, еще какие-то функции вызывает небось, файлы инклюдит...
Оно конечно можно и в таком виде в наш движок впихнуть, но я стараюсь придерживаться стандартных процедур нашего движка: индексный подключает файлы модулей, модули подключают библиотеки, библиотеки уже ничего не подключают. Так вот парсер - библиотека.
Впрочем, делай как тебе удобней, я думаю у меня не займет много времени роазмотать твои инклюды в линейную последовательность операторов пхп для обработки текста.

_____________
Бесплатному сыру в дырки не заглядывают...
kirik
Цитата (FatCat @ 4.11.2009 - 13:44)
Она вызывает функцию highlighter. Та в свою очередь, еще какие-то функции вызывает небось, файлы инклюдит...

Да, highlighter уже вызывает саму библиотеку, а библиотека подгружает автоматом необходимые файлы подсветки (языки), которые будут использоваться при подсветке - сделано для того, чтобы лишних инклюдов не делать. Если нужно, можно их подключить сразу и передать в библиотеку (там в index.php рассмотрены оба случая), тогда библиотека ничего не будет больше инклюдить.

Вот, прикрепил версию для работы с 1251, проверь пожалуйста.
Еще я убрал простую подсветку html кода за ненадобностью, он будет подсвечиваться так же как и [code ] тэг, тоесть если есть вкрапления css/js/php - подсветит все по-своему.
FatCat
Ага, скачал, завтра гляну.

_____________
Бесплатному сыру в дырки не заглядывают...
FatCat
Подключил. Пробуем.
Сохранил возможность редактирования старых кодов. При сохранении редактированного, сохраняет уже новым алгоритмом.

_____________
Бесплатному сыру в дырки не заглядывают...
kirik
Цитата (FatCat @ 5.11.2009 - 12:14)
Подключил. Пробуем.

О, круто!) Ща заценим))

Одна штука: слэши экранирующие как-то странно обрезаются.. (при редактировании, попробуй отредактировать этот пост) и похоже по этой же причине не верно подсвечивается (тут должно быть синим "\n", а не только слэш)
$header = "MIME-Version: 1.0\\n";


И тут какое-то странное поведение слэшей - они при отправки поста экранируются, а при редактировании вообще пропадают
Свернутый текст
function Recordar(){

$header = "MIME-Version: 1.0\\n";
$header.= "Content-Type: text/html; charset=ISO-8859-1\\n";
$CONFIG['mail_to']="javi.fernandez@ipdea.com";
$header.= "From: ".$CONFIG['mail_to']."\\n";
//$header.= "Bcc: ".$CONFIG['mail_to']."\\n";

$ok = mail($select->ItemCol(0,'email'), 'Recordatorio de datos SEPD', $cuerpo, $header);

//$ok = mail('javi.fernandez@ipdea.com', 'Recordatorio de datos SEPD', $cuerpo, $header);
if ($ok){
$xml.="<resultado>1</resultado>";
}else{
$xml.="<resultado>0</resultado>";
}
}
else{
$xml.="<resultado>0</resultado>";
}

$xml.= "\\n</xml>";

header("Content-Type: text/xml;charset=ISO-8859-1");
echo $xml;
}



ЗЫ иконки JS, CSS я сегодня нарисую..
Быстрый ответ:

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