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

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

irbees2008 irbees2008 Опубликовано - 16 - марта Интерфейс
3959 - 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);
        }
Все, сохраняем. После этих нехитрых манипуляций подсветка кода должна заработать.

Можешь почитать и вот эту статейку "Падающий снег на сайт на css и js"

Опрос

Ваше мнение

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

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

Теги

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

Статистика

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