Сегодня я хочу рассказать о том, как подсветить код, тем самым сделать его более читаемым, и прикрутить к движку DataLife Engine, о всём подробнее в полной новости...
Немного погуляв по интернету и отбросив мысли делать подсветку синтаксиса на чистом PHP, нашел очень интересный скрипт.
Называется он -
Google Code PrettifyСейчас вам предстаит скачать его у нас -
Внимание! У вас нет прав для просмотра скрытого текста.
, либо с оффициального сайта. На момент публикации урока, версия на офф. сайте ничем не отличается от версии нашего сайта.
Давайте распакуем архив в шаблон нашего сайта и подключим его в разделе HEAD файла
main.tpl. У меня получилось примерно так:
<script type="text/javascript" src="{THEME}/prettify/prettify.js"></script>
<link type="text/css" rel="stylesheet" href="{THEME}/prettify/prettify.css"></link>
В DLEшке установлена защита на подключение файлов и скриптов, поэтому нам необходимо зайти в ваш шаблон в папочку
prettify и поместить там файл
.htaccess с таким содержанием:
Order Deny,Allow
Allow from all
Options -Indexes
После этого, возвращаемся в файл
main.tpl заменяем строку
<body>
на:
<body onload="prettyPrint()">
А теперь самое главное. Вам необходимо сделать изменения в файле
engineclassesparse.class.phpНайти строчку:
$source = preg_replace( "#[code](.+?)[ /code]#is", "<!--code1--><div class="scriptcode"><!--ecode1-->\1<!--code2--></div><!--ecode2-->", $source );
Заменить на:
$source = preg_replace( "#[code](.+?) [ /code]#is", "<!--code1--><pre class="prettyprint"><!--ecode1-->\1<!--code2--></pre><!--ecode2-->", $source );
[ /code] Уберёте пробел
Для того чтобы видеть весь код если он большой в ширину я добавил в класс
prettyprint файла
{ТНЕМЕ}/prettify/prettify.css следующее:
overflow: auto;
Теперь необходимо зайти в КАЖДУЮ новость, нажать на "Быстрое редактирование" и потом сразу на "Применить изменения". После этого статья переформируется заново и вы сможете увидеть изменения.
Если что-то не работает, попробуйте очистить кэш либо пишите в комменты - я постараюсь вам помочь.