jquery-syntaxhighlighter">Хаки и Скрипты Next Generation CMS : Интерфейс, Эффекты с текстом и ссылками, JS : Подсветка синтаксиса в статьях
  • 1775
  • 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=<язык> ], поэтому будем изменять регулярку. Ищем такой фрагмент:

Код:
// Special BB tag [ code] - blocks all other tags inside while (preg_match("#\[code\](.+?)\[/code\]#ies", $content, $res))
 {$content = str_replace($res[0], '<pre>'.str_replace(array('[', '<'), array('[', '<'), $res[1]).'</pre>', $content); }
И меняем на:
Код:
 
// Special BB tag [ code] - blocks all other tags inside
// assd: replaced: [code\] => [code=(.*?)\] | '<pre>' => '<pre class="brush:'.$res[1].'">' | $res[1]).'</pre>' => $res[2]).'</pre>'
 while (preg_match("#\[code=(.*?)\](.+?)\[/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('
', "\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);
        }
Все, сохраняем. После этих нехитрых манипуляций подсветка кода должна заработать.

Можешь почитать и вот эту статейку "Как включить кэш браузера ?"

mistakes

Это тоже интересно

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

Ваше мнение

какой форум лучше для вас
Результаты

----