0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 11117 Просмотров
*

ecolora

  • Завсегдатай
  • 1417
  • 170 / 2
  • творец
Очень уж мне понравилось, как на этом форуме код выделяется: лишнее прячется в полосы прокрутки, шрифт читабельный, фон подходящий и т.д. и т.п. :)

Кто использует форум kunena без модификации, наверное обратил внимание, что код ни в какие полосы прокрутки не прячется, более того, строки длиннее заданного в настройках количества символов переносятся на новую строку, что делает текст кода в некоторых случаях нечитабельным.

Решено было эту проблему исправить!  8)

В общем в результате залез я в файл components/com_kunena/lib/kunena.parser.php

заменил

Код
$code_start_html = '<div class="fbcode"><table cellspacing="1" cellpadding="3" border="0"><tr><td><b>'._KUNENA_MSG_CODE.'</b></td></tr><tr><td><hr />';

на

Код
$code_start_html = '<table style="table-layout:fixed;" width=100% cellspacing="1" cellpadding="3" border="0"><tr><td><b>'._KUNENA_MSG_CODE.'</b></td></tr><tr><td>';

а код:

Код
// make sure we show line breaks
                          $code_start_html .= "<code class=\"{$t_type}\">";
                          $code_end_html    = '</code><hr /></td></tr></table></div>';

заменил (от греха подальше :)) на

Код
// make sure we show line breaks
                          $code_start_html .= "<div class=\"php\">";
                          $code_end_html    = '</div></td></tr></table>';

а также поправил стили в файле components\com_kunena\template\default_ex\kunena.forum.css , а именно заменил

Код
div.fbcode{overflow:auto;}

на

Код
div.php {
    overflow: auto; /*полосы прокрутки добавляются только при необходимости*/
    border: 1px solid #3D3D3D; /*толщина, вид и цвет рамки*/
    white-space:nowrap; /*текст в окне браузера выводится как обычно, переносы строк устанавливаются автоматически*/
    background-color:#f0f0f0; /*цвет заднего фона*/
    max-height:250px; /*максимальная высота блока с кодом*/
    min-height:40px; /*минимальная высота блока с кодом*/
    width: 99%;
    color:#000000; /*цвет кода*/
    font-family:"courier new","times new roman",monospace !important; /*шрифт кода*/
    font-size:9pt; /*Размер шрифта*/
    line-height:1.3em; /*По сути - отступы между строками*/
    margin-left: 1px; /*отступ от каждого края элемента.*/
    padding:1px; /*значение полей вокруг содержимого элемента*/
}

А всё потому что тег <code> представляет строчный элемент, а это значит что:
  • невозможно применить свойство overflow, которое применяется только к блочным элементам!
  • не так как нужно обрабатывается border: 1px solid #3D3D3D; - бордюр устанавливается у каждой строки, а надо у всего "блока"
  • и т.д., и т.п., т.е. во многом уступает по возможностям элементу, обозначаемому тегом <div>:)

К слову, у div-а только одна проблема - невозможно задать высоту 100%, чтобы он автоматом растягивался по высоте всей страницы или элемента, в который вложен (это свойство не обрабатывают IE и Opera, зато поддерживает Mozilla) - но это уже совсем другая история... :-)

Вот что получилось в итоге:



P.S.
Получилось не совсем как на этом форуме, но очень похоже.
Главная проблема: отсутствие ограничения ширины и высоты, - решена. :-)
Со стилями предлагаю поэкспериментировать самостоятельно.

_____________________________________
Если Вы хотите отблагодарить меня за работу, зарегистрируйтесь по этой партнёрской ссылке:
Это биржа ссылок. Из личного опыта: доход для вёбмастера для сайта с денюжкой 10 и PR 2 - до 1000 р./мес.
« Последнее редактирование: 05.10.2010, 10:14:23 от ecolora »
Научу зарабатывать на сайте ->>

Давайте делать Интернет вместе!
*

Mihanja80

  • Завсегдатай
  • 1918
  • 167 / 4
  • Всю жизнь учусь...
Если в ограничениях поставить 0 и какой-то умник напишет текст вида рррррррьььььшшшшш длиннее 100 символов не в тегах а просто в сообщении то шаблон съезжает! Как в предпросмотре так и на форуме! Текст переносится после спец.символов определенных в парсере но если написать только буквы то все едет! Надо сделать ограничение в 50 символов но исключить обработку текста в тегах кода!
Я с мобильного, в основном...
*

ecolora

  • Завсегдатай
  • 1417
  • 170 / 2
  • творец
Никаких проблем с этим не заметил. Установил в настройках Переносить слова длиннее чем в значение 0

Firefox (посл. версии):


IE7:


IE6:


Как видите, единственная проблема, что код смотрится убого в IE6, но тут уже проблемы не только с отображением кода, но и с отображением многих других элементов. Предложения два:

  • к пользователям: не использовать дырявый IE версии 6 и ниже;
  • к разработчикам: обеспечить в следующих версиях обратную совместимость с большинством версий используемых браузеров.
« Последнее редактирование: 14.05.2010, 07:04:13 от ecolora »
Научу зарабатывать на сайте ->>

Давайте делать Интернет вместе!
*

Mihanja80

  • Завсегдатай
  • 1918
  • 167 / 4
  • Всю жизнь учусь...
А у меня в стандартном шаблоне прокрутка...
в свой переделанный добавил
#Kunena td.fb-msgview-right table{
   table-layout: fixed; /* Фиксированная ширина ячеек */
}

Шаблон перестал рушиться но теперь прокрутка появляется но строку у меня не переносит если установлено 0.

Я с мобильного, в основном...
*

ecolora

  • Завсегдатай
  • 1417
  • 170 / 2
  • творец
Я качал с сайта Kunena последнюю доступную версию kunena v1.5.11. В её стандартном шаблоне прокрутки кода нет.

Русификатор взял где-то здесь на форуме.

Хочется верить, что в версии 1.6 они многое исправят, в том числе и прокрутку добавят. То что добавят мультизагрузку картинок в сообщение, уже читал.

ИМХО, строку должно переносить в тех местах, которые указаны для переноса в исходном Вашем вставляемом коде - и это делает.

А если вставить код одной строкой, он и будет 1 строкой, но главное, будет работать (если и у Вас записанный одной строкой - работал).
Научу зарабатывать на сайте ->>

Давайте делать Интернет вместе!
*

Mihanja80

  • Завсегдатай
  • 1918
  • 167 / 4
  • Всю жизнь учусь...
Вверху скрин простого сообщения вида ррррррррр написанного в одну строку. У вас вывело сообщение разбив на строки а у меня нет. Прокрутка у целого сообщения не кода. Речь веду про то, что если устанавливаю в настройках ноль то при написании длинного набора букв не в тегах кода рушился шаблон. Решение написал в сообщении выше! Теперь еще надо разобраться с предпросмотром. А ваше решение относительно вывода кода работает! Только в стилях надо отступы увеличить для IE!
Я с мобильного, в основном...
*

ecolora

  • Завсегдатай
  • 1417
  • 170 / 2
  • творец
Посмотрите ещё раз моё первое сообщение... я изменил код. Кстати, у меня тоже шаблон рушился, но только при предварительном просмотре, и к решению table-layout: fixed; мы с Вами пришли одновременно. :-) Я его просто в стиль таблицы запихал.

Код
<table style="table-layout:fixed;" width=100% cellspacing="1" cellpadding="3" border="0">

а от fbcode вообще решил отказаться...
Научу зарабатывать на сайте ->>

Давайте делать Интернет вместе!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как использовать редактор сообщений в форуме и Руководство по BBCode (Мануал)

Автор userJmla

Ответов: 0
Просмотров: 283
Последний ответ 29.03.2018, 00:26:04
от userJmla
Как сделать чтобы на форуме Kunena 5 при вставке картинки прописывался не только тег ALT но и тег Ti?

Автор Trionika

Ответов: 1
Просмотров: 480
Последний ответ 10.07.2017, 16:18:33
от Uliss
Как запретить создавать новые темы в форуме? (но отвечать разрешить)

Автор Cepro

Ответов: 15
Просмотров: 4633
Последний ответ 20.04.2017, 13:38:05
от ChaosHead
Опрос на форуме

Автор atlet

Ответов: 27
Просмотров: 6226
Последний ответ 30.01.2017, 18:22:02
от Yakov51
отображение имени пользователя на форуме !

Автор reazl

Ответов: 0
Просмотров: 354
Последний ответ 09.12.2016, 12:28:35
от reazl