CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » Подсветка синтаксиса GeSHi
Официальный форум Eleanor CMS » Поддержка пользователей системы Eleanor CMS » Секреты и советы
Phoenix84
Поделюсь с Вами установкой бб-кода для подсветки кода.
Он работает без тега [code], поэтому его использовать не требуется.
1. Заходим на сайт GeSHi и скачиваем оттуда последнюю версию
2. Заливаем папку geshi в папку /addons
3. Редактируем файл /classes/others/class_ownbb.php
Вставляем туда следующий код:
Цитата
#GeSHi
class OwnBbCode_geshi extends BaseOwnBbCode
{
        public function PreDisplay($tag,$params,$content,$canuse)
    {    
        include_once $this->Mainclass->root_path.'addons/geshi/geshi.php';
        if(!$canuse)
            return $this->RestrictDisplay();
        $params=$params ? Strings::ParseParams($params,$tag) : array();
        if(isset($params['noparse']))
        {
            unset($params['noparse']);
            return parent::PreEdit($tag,$params,$content,true);
        }
        $content = strtr($content, array(
                        '<br />' => "",
                        '&lt;' => '<',
                        '&gt;' => '>',
                        '&amp;' => '&',
                        '&nbsp;' => ' ',
                                        )
                        );


        $content=str_replace("\t",' ',$content);
        if (!isset($params['lang'])){
            $params['lang']='php';}
        $geshi = new GeSHi($content,$params['lang']);
        $geshi->set_header_type(GESHI_HEADER_NONE);
        $geshi->set_tab_width('600px');
        $content = $geshi->parse_code();
        $content = str_replace("\n", "", $content);
        return '<code><div style="padding: .5em 1em;border-left: 5px solid #bbbbbb;background-color: #dddddd;font: 11px sans-serif;">'.$content.'<hr><div style="text-align:right;color:#999999">Язык: <b>'.$params['lang'].'</b></div></div></code>';
    }
}

4. Добавляем bb-код geshi, и можем использовать :)

Geshi поддерживает около 100 языков программирования, поэтому при использовании кода необходимо указывать, какую подсветку использовать.
Например [geshi lang=autoit]
Если он не будет указан, по умолчанию берется язык php

Я начинающий кодер, поэтому если вы заметите баги, пишите мне :)
И по оформлению в стиль тоже можете писать свои пожелания.

Phoenix84
Немного поправил код, от возможных казусов.
Теперь все работает в должном виде ^_^ (по моим тестам)
Можете посмотреть как она работает

Я так понял это никому не нужно?
Я ее приделал потому что у меня например глючит тег [code](не работает авто-перенос строки) и привычка к расцветке кода...
Поставил , РАБОТАЕТ.
Все больше и больше вникаю в эту Eleanor CMS и она мне стала нравиться.

А кто подскажет где можно исправить подсказки к кнопкам в редакторе [code] [hide] итд.
просто хотелось дописать небольшое пояснение для пользователей.
Phoenix84
Очень рад, что хоть кому то понадобилось...
Alexander
Цитата (VCITY1 @ 2024-04-25 14:23)
А кто подскажет где можно исправить подсказки к кнопкам в редакторе [code] [hide] итд.

В языковых файлах смотрите. /lang/ownbbcodes*.php
Phoenix84
Немножко обновил код. Ошибок в логах теперь быть не должно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.