Хаки и Скрипты Next Generation CMS

Подсветка синтаксиса в статьях

irbees2008 irbees2008 Опубликовано - 16 - марта Интерфейс
3977 - 0
  • Автор: wget
  • Обсудить на :на форуме
  • Адаптировал: wget
  • Уровень сложности исполнения: это делается простым копированием и нажиманием кнопки

Для начала был выбран js-скрипт для подсветки кода в браузере - jquery-syntaxhighlighter. 1. Скачаем и распакуем в папку с шаблоном наш Вы не можете скачивать файлы с нашего сайта ,рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем. . 2. Oн требует jquery, так что если ваш шаблон не использует его, то его тоже надо подключить.

Код:
<head><script type="text/javascript" src="{tpl_url}/syntaxhighlighter/scripts/jquery-1.4.2.min.js"></script></head>

После того, как мы подключили JQuery, нужно подключить Highlighter и проинициализировать его:

Код:
<script type="text/javascript" src="{tpl_url}/syntaxhighlighter/scripts/jquery.syntaxhighlighter.min.js"></script><script type="text/javascript">$.SyntaxHighlighter.init();</script>

Готово! Больше никаких правок в шаблон вносить не надо.
Теперь открываем engine/includes/classes/parse.class.php. Наш тег [ code ] будет использоваться так -  [ code=<язык> ], поэтому будем изменять регулярку. Ищем такой фрагмент: [code=html] // Special BB tag [ code] - blocks all other tags inside while (preg_match("#\[code\](.+?)\[/code\]#ies", $content, $res)) {$content = str_replace($res[0], '

'.str_replace(array('[', '<'), array('[', '<'), $res[1]).'
', $content); } [/code] И меняем на: [code=html] // Special BB tag [ code] - blocks all other tags inside // assd: replaced: [code\] => [code=(.*?)\] | '
' => '
' | $res[1]).'
' => $res[2]).'
' while (preg_match("#\
Код:
(.+?)[/code]#ies", $content, $res))
 {$content = str_replace($res[0], '<pre class="language-'.$res[1].'">'.str_replace(array('[', '<'),  array('[', '<'), $res[2]).'</pre>', $content);
 $content = str_replace('<br>', "\n", $content);
        }

Далее ищем:

Код:
  $content    =    preg_replace("/<code>(.*?)<\/code>/es", "phphighlight('$1')", $content);
        $content    =    str_replace("\n</p>\n", "</p>", $content);
И добавляем после этих строк:
Код:
#Added to prevent adding s in highlighted code
        preg_match_all("#<pre class=\\\"brush: (.*?)\\\">(.+?)</pre>#ies", $content, $ress);
        foreach ($ress as $res) {
            $content = str_replace($res[0],str_replace('<br />', "\n", $res[0]),$content);
        }
Все, сохраняем. После этих нехитрых манипуляций подсветка кода должна заработать.

Можешь почитать и вот эту статейку "Фон сайта с эффектом параллакса на jQuery плагине jquery.plaxmove"

Опрос

Ваше мнение

На каком движке ваш сайт?
Результаты

Последние комментарии

Теги

Anything in here will be replaced on browsers that support the canvas element

Статистика

  • Caйт cущecтвуeт: 4714 дней
  • Статических страниц: 10
  • Категорий: 28
  • Новостей: 621
  • Неопубликованных новостей: 8
  • Комментариев: 257
  • Зарегестрированных пользователей: 779
  • Онлайн всего: [10]
  • Гости: [9]
  • Поисковые роботы: [1] Яндекс
  • Сегодня нас посетили: [11] Google, Larrytitly, irbees2008, Google, dankeanke, Google, Яндекс, Google, Google, Google, Google
  • SQL запросов: 42
  • Генерация страницы: 0.207сек
  • Потребление памяти: 10.924 Mb 
  •   Яндекс.Метрика