Все для CMS » DataLife Engine » Подсветка синтаксиса для DLE 9.x

Подсветка синтаксиса для DLE 9.x

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

И так.

Нам понадобится файл highlight.code.js. Берем его из дистрибутива DLE 9.5 или качаем 

highlight.code.zip
MD5: 7d3c2d31ca3112dee057bce8c7a98a14
Скачано: 403, размер: [7,87 Kb], дата: 24 март 2012

1. Распаковываем и заливаем на сайт сохраняя структуру папок.
2. Открываем index.php
Ищем

if ($config['fast_search'] AND $user_group[$member_id['user_group']]['allow_search']) {

    $ajax .= <<<HTML
var dle_search_delay   = false;
var dle_search_value   = '';
$(function(){
    FastSearch();
});
HTML;

}

Выше вставляем:
if (strpos ( $tpl->result['content'], "<pre><code>" ) !== false) {

    $js_array[] = "engine/classes/highlight/highlight.code.js";

    $ajax .= <<<HTML

$(function(){
    $('pre code').each(function(i, e) {hljs.highlightBlock(e, null)});
});
HTML;

}

3. Открываем engine/classes/parse.class.php
Ищем:
$source = preg_replace( "#\[code\](.+?)\[/code\]#is", "<!--code1--><div class=\"scriptcode\"><!--ecode1-->\\1<!--code2--></div><!--ecode2-->", $source );
$source = preg_replace( "#\[(left|right|center)\](.+?)\[/\\1\]#is", "<div align=\"\\1\">\\2</div>", $source );

Заменяем на
$source = preg_replace( "#\[code\](.+?)\[/code\]#is", "<pre><code>\\1</code></pre>", $source );

        if ( !$parse->allow_code ) {
            $source = preg_replace( "#<pre><code>(.+?)</code></pre>#ies", "\$this->clear_p_tag('\\1')", $source );
        }

        $source = preg_replace( "#\[(left|right|center)\](.+?)\[/\\1\]#is", "<div align=\"\\1\">\\2</div>", $source );

Ищем
$txt = str_replace( "</li><!--dle_li--><li>", '
  • ', $txt );

  • Ниже вставляем:
    $txt = str_replace( "<pre><code>", '[code]', $txt );
            $txt = str_replace( "</code></pre>", '', $txt );

    Снова ищем:
    function build_thumb($gurl = "", $url = "", $align = "") {

    Вставляем выше:
    function clear_p_tag($txt) {
    
            $txt = stripslashes( $txt );
    
            $txt = preg_replace('/<p[^>]*>/', '', $txt);
            $txt = str_replace("</p>", "", $txt);    
    
            return "<pre><code>".$txt."</code></pre>";
    
        }

    Открываем templates/ваш шаблон/style/engine.css и в самый низ добавляем:
    /*---подсветка текста в теге [ code ]---*/
    pre code {
      display: block; padding: 0.5em;
      background: #f9fafa;
      border: 1px solid #dce7e7;
      overflow:auto;
      white-space: pre;
    }
    
    pre .comment,
    pre .template_comment,
    pre .diff .header,
    pre .doctype,
    pre .lisp .string,
    pre .javadoc {
      color: #93a1a1;
      font-style: italic;
    }
    
    pre .keyword,
    pre .css .rule .keyword,
    pre .winutils,
    pre .jаvascript .title,
    pre .method,
    pre .addition,
    pre .css .tag,
    pre .lisp .title {
      color: #859900;
    }
    
    pre .number,
    pre .command,
    pre .string,
    pre .tag .value,
    pre .phpdoc,
    pre .tex .formula,
    pre .regexp,
    pre .hexcolor {
      color: #2aa198;
    }
    
    pre .title,
    pre .localvars,
    pre .function .title,
    pre .chunk,
    pre .decorator,
    pre .builtin,
    pre .built_in,
    pre .lisp .title,
    pre .identifier,
    pre .title .keymethods,
    pre .id {
      color: #268bd2;
    }
    
    pre .tag .title,
    pre .rules .property,
    pre .django .tag .keyword {
      font-weight: bold;
    }
    
    pre .attribute,
    pre .variable,
    pre .instancevar,
    pre .lisp .body,
    pre .smalltalk .number,
    pre .constant,
    pre .class .title,
    pre .parent,
    pre .haskell .label {
      color: #b58900;
    }
    
    pre .preprocessor,
    pre .pi,
    pre .shebang,
    pre .symbol,
    pre .diff .change,
    pre .special,
    pre .keymethods,
    pre .attr_selector,
    pre .important,
    pre .subst,
    pre .cdata {
      color: #cb4b16;
    }
    
    pre .deletion {
      color: #dc322f;
    }
    
    pre .tex .formula {
      background: #eee8d5;
    }

    Открываем templates/ваш шаблон/preview.css и в самый низ добавьте:
    /*---подсветка текста в теге [code]---*/
    pre code {
    display: block; padding: 0.5em;
    background: #f9fafa;
    border: 1px solid #dce7e7;
    overflow:auto;
    white-space: pre;
    }
    
    pre .comment,
    pre .template_comment,
    pre .diff .header,
    pre .doctype,
    pre .lisp .string,
    pre .javadoc {
    color: #93a1a1;
    font-style: italic;
    }
    
    pre .keyword,
    pre .css .rule .keyword,
    pre .winutils,
    pre .jаvascript .title,
    pre .method,
    pre .addition,
    pre .css .tag,
    pre .lisp .title {
    color: #859900;
    }
    
    pre .number,
    pre .command,
    pre .string,
    pre .tag .value,
    pre .phpdoc,
    pre .tex .formula,
    pre .regexp,
    pre .hexcolor {
    color: #2aa198;
    }
    
    pre .title,
    pre .localvars,
    pre .function .title,
    pre .chunk,
    pre .decorator,
    pre .builtin,
    pre .built_in,
    pre .lisp .title,
    pre .identifier,
    pre .title .keymethods,
    pre .id {
    color: #268bd2;
    }
    
    pre .tag .title,
    pre .rules .property,
    pre .django .tag .keyword {
    font-weight: bold;
    }
    
    pre .attribute,
    pre .variable,
    pre .instancevar,
    pre .lisp .body,
    pre .smalltalk .number,
    pre .constant,
    pre .class .title,
    pre .parent,
    pre .haskell .label {
    color: #b58900;
    }
    
    pre .preprocessor,
    pre .pi,
    pre .shebang,
    pre .symbol,
    pre .diff .change,
    pre .special,
    pre .keymethods,
    pre .attr_selector,
    pre .important,
    pre .subst,
    pre .cdata {
    color: #cb4b16;
    }
    
    pre .deletion {
    color: #dc322f;
    }
    
    pre .tex .formula {
    background: #eee8d5;
    }

    На этом все.

    • DataLife Engine / Хаки и модули
    • 24-03-2012, 20:17
    • 3 713
    Вернуться назад
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.