Июнь
21
Вопросы по PHP » Как интегрировать Syntaxhighlighter в DLE (Подсветка PHP кода)
Опубликовал: phpmaster | 21 июня 2009 | Просмотров:
2561
При написании первой статьи Как разбить текст на блоки в php я решил установить на совём сайте подсветку синтаксиса php.
Погуглив я не смог найти нормального хака и решил интегрировать Syntaxhighlighter в DLE сам.
Вот что у меня вышло.
Итак. ХАК Syntaxhighlighter в DLE (Подсветка PHP кода)
(Внимание в коде в теге [ code ] я специально добавил пробелы, иначе дле пытается их обработать
)
1. Качаем сам Syntaxhighlighter http://code.google.com/p/syntaxhighlighter/downloads/list
2. Распаковываем архив.
3. Создаём в корне сайта каталог js
4. Закачиваем содержимое папки Scripts в js
в этот же каталог кидаем и файлы SyntaxHighlighter.css и clipboard.swf
5. Открываем файл /engine/classes/parse.class.php
находим
заменяем на
находим
заменяем на
6. Открываем файл в каталоге /engine/preview.php и /engine/inc/preview.php
в обоих этих файлах
находим
после вставляем
7. Открываем файл шаблона main.tpl
между и
вставляем
Всё. на этом установка хака закончена.
Погуглив я не смог найти нормального хака и решил интегрировать Syntaxhighlighter в DLE сам.
Вот что у меня вышло.
Итак. ХАК Syntaxhighlighter в DLE (Подсветка PHP кода)
(Внимание в коде в теге [ code ] я специально добавил пробелы, иначе дле пытается их обработать
1. Качаем сам Syntaxhighlighter http://code.google.com/p/syntaxhighlighter/downloads/list
2. Распаковываем архив.
3. Создаём в корне сайта каталог js
4. Закачиваем содержимое папки Scripts в js
в этот же каталог кидаем и файлы SyntaxHighlighter.css и clipboard.swf
5. Открываем файл /engine/classes/parse.class.php
находим
$source = preg_replace( "#[ code ](.+?)[ /code ]#is", "<!--code1--><div class=\"scriptcode\"><!--ecode1-->\1<!--code2--></div><!--ecode2-->", $source );
заменяем на
preg_match_all("#[ code ](.+?)[ /code ]#is",$source,$arr_code);
foreach ($arr_code[1] as $value){
$code=preg_replace("|<br />|", "n", $value);
$source=preg_replace("|".preg_quote($value)."|",$code,$source);
}
$source = preg_replace( "#[ code ](.+?)[ /code ]#is", "<!--code1--><div class=\"scriptcode\"><!--ecode1--><pre name=\"code\" class=\"php\">\1</pre><!--code2--></div><!--ecode2-->", $source );
находим
$txt = preg_replace( "#<!--code1-->(.+?)<!--ecode1-->#", '[ code ]', $txt ); $txt = preg_replace( "#<!--code2-->(.+?)<!--ecode2-->#", '[ /code ]', $txt );
заменяем на
$txt = preg_replace( "#<!--code1-->(.+?)<!--ecode1--><pre name=\"code\" class=\"php\">#", '[ code ]', $txt ); $txt = preg_replace( "#</pre><!--code2-->(.+?)<!--ecode2-->#", '[ /code ]', $txt );
6. Открываем файл в каталоге /engine/preview.php и /engine/inc/preview.php
в обоих этих файлах
находим
echo <<<HTML
<html><title>Предварительный просмотр</title>
<style type="text/css">
{$tpl->copy_template}
</style>
после вставляем
<link type="text/css" rel="stylesheet" href="/js/SyntaxHighlighter.css"></link>
<script language="javascript" src="/js/shCore.js"></script>
<script language="javascript" src="/js/shBrushCSharp.js"></script>
<script language="javascript" src="/js/shBrushPhp.js"></script>
<script language="javascript">
window.onload = function (){
dp.SyntaxHighlighter.ClipboardSwf = '/js/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
}
</script>
7. Открываем файл шаблона main.tpl
между
<head>
</head>
вставляем
<link type="text/css" rel="stylesheet" href="/js/SyntaxHighlighter.css"></link>
<script language="javascript" src="/js/shCore.js"></script>
<script language="javascript" src="/js/shBrushCSharp.js"></script>
<script language="javascript" src="/js/shBrushPhp.js"></script>
<script language="javascript">
window.onload = function (){
dp.SyntaxHighlighter.ClipboardSwf = '/js/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
}
</script>
Всё. на этом установка хака закончена.

Навигация