17 ноя 2011
Подсветка синтаксиса для DLE 9.x
У нас вы можете скачать бесплатно Подсветка синтаксиса для DLE 9.x

Данный материал предоставлен сайтом Skripter.info исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Подсветка синтаксиса для DLE 9.x


Сегодня я хочу рассказать о том, как подсветить код, тем самым сделать его более читаемым, и прикрутить к движку 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", "&lt;!--code1--><div class="scriptcode">&lt;!--ecode1-->\1&lt;!--code2--></div>&lt;!--ecode2-->", $source );

Заменить на:
$source = preg_replace( "#[code](.+?) [ /code]#is", "&lt;!--code1--><pre class="prettyprint">&lt;!--ecode1-->\1&lt;!--code2--></pre>&lt;!--ecode2-->", $source );

[ /code] Уберёте пробел

Для того чтобы видеть весь код если он большой в ширину я добавил в класс prettyprint файла {ТНЕМЕ}/prettify/prettify.css следующее:
overflow: auto;


Теперь необходимо зайти в КАЖДУЮ новость, нажать на "Быстрое редактирование" и потом сразу на "Применить изменения". После этого статья переформируется заново и вы сможете увидеть изменения.
Если что-то не работает, попробуйте очистить кэш либо пишите в комменты - я постараюсь вам помочь.









Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.