ExBB Community » Файловый ExBB » Модификации и дополнения » Дополнение: Отображение пробелов в начале каждой строки поста

Страниц (2): [1] 2 »
 

1. 1Bot - 10 марта 2012 — 20:06 - перейти к сообщению
Дополнение: Отображение пробелов в начале каждой строки поста

Добавить в файле \include\fm.class.php в функции formatpost
перед строкой
CODE:
return nl2br($string);

следующее
CODE:
// заменить все пробелы в начале каждой строки до первого символа на  
// и все табуляции в начале каждой строки до первого символа на 8  
$string = preg_replace_callback("/^(\s+)(.*)$/m",
create_function(
'$matches',
'return str_replace(array(" ", "\t"), array(" ", "        "), $matches[1]) . $matches[2];'
),
$string);
2. yura3d - 10 марта 2012 — 21:35 - перейти к сообщению
1Bot
Вариант решения проблемы в принципе хороший. Возможно, правда, лучше было бы исходный текст заключать в теги <pre></pre>, тогда и не понадобилось бы вставлять в исходный текст страницы столько html-сущностей для пробела и табуляции Хм
3. NordWest - 11 марта 2012 — 06:59 - перейти к сообщению
Очень нужная вещь особенно когда вставляешь код - без отступов код становится трудночитаемым.

Цитата:
исходный текст заключать в теги <pre></pre>
Вот здесь говорят, что табуляция не всеми браузерами корректно обрабатывается.
4. 1Bot - 11 марта 2012 — 09:34 - перейти к сообщению
yura3d пишет:
Возможно, правда, лучше было бы исходный текст заключать в теги <pre></pre>, тогда и не понадобилось бы вставлять в исходный текст страницы столько html-сущностей для пробела и табуляции

Мной єтот вариант рассматривался в первую очередь, но при заключении текста в скобки <pre></pre> есть другая проблема:
в конце той же функции formatpost стоит вызов функции nl2br
CODE:
return nl2br($string);

который в тексте внутри скобок <pre></pre> заменит все переходы на новую строку тегом <br>, и в результате получится текст с кодом в котором каждая строка будет отделятся от другой переносом строки и кодом <br>, т.е. визуально будет по пустой строке между строками текста.
5. NordWest - 11 марта 2012 — 18:38 - перейти к сообщению
Применил вариант, предложенный 1Bot - нормально работает.
Только теперь, как я понял, все посты прогоняются через подобное форматирование.

Хотя логичнее наверное это втиснуть только для текста, обрамленного тегами code? Или пойти ещё более радикально - для текста, обрамленного тегами code подключить подсветку синтаксиса, особенно учитывая, что PHP кода на форуме пруд пруди. Естественно ни на чем не настаиваю - просто мысли в слух.
6. 1Bot - 23 марта 2012 — 20:46 - перейти к сообщению
NordWest пишет:
Хотя логичнее наверное это втиснуть только для текста, обрамленного тегами code


Думаю что форматирование необходимо и для текста тоже, а не только для кода (в обычном тексте отступы вначале абзацев тоже важны).
7. NordWest - 22 апреля 2012 — 12:06 - перейти к сообщению
Есть один минус и я вчера его реально почувствовал. Растерялся

Поправлял инструкцию на инсталляцию мода.
При наличии на форуме этого дополнения код, скопированный в браузере не находится потом в редакторе.
8. 1Bot - 25 апреля 2012 — 10:58 - перейти к сообщению
NordWest пишет:
При наличии на форуме этого дополнения код, скопированный в браузере не находится потом в редакторе.


Поподробнее опишите проблему - буду решать.
9. NordWest - 25 апреля 2012 — 11:41 - перейти к сообщению
Если в редакторе внутри функции вставлены табуляторы, а потом текст кода этой функции разместить на форуме то получаем неприятный эффект. Скопированный назад из браузера код в редакторе уже не находится.
10. 1Bot - 26 апреля 2012 — 07:03 - перейти к сообщению
NordWest пишет:
Если в редакторе внутри функции вставлены табуляторы, а потом текст кода этой функции разместить на форуме то получаем неприятный эффект.


Посмотрите внимательно на описание -- Дополнение: Отображение пробелов в начале каждой строки поста.

Данное дополнение и не предназначено для исправлений табуляций и пробелов внутри строк, а лишь в их начале.
11. NordWest - 26 апреля 2012 — 10:30 - перейти к сообщению
Действительно. Не в дополнении дело. Просто как-то первое, на что подумал. Подмигивание

Но вот интересно - а в чем же тогда дело?
12. 1Bot - 26 апреля 2012 — 16:21 - перейти к сообщению
NordWest пишет:
Но вот интересно - а в чем же тогда дело?


Дело в том, что для браузеров серия табуляций или пробелов в HTML-коде является лишь разделителем между словами и при отображении показывается лишь пробелом (и то если это не начало параграфа, там вообще эти разделители не выводятся).
13. NordWest - 26 апреля 2012 — 18:03 - перейти к сообщению
Спасибо, учту на будущее.
14. Parapsixolog - 30 марта 2018 — 11:42 - перейти к сообщению
Всем добрый день! Вот и я задумался о пробелах в сообщениях и в общем форматировании текста. И вот что получается в движке exbb. По умолчанию, без дополнения 1Bot, пробелы в начале строк действительно не отображаются, сколько бы пробелов не ставь.

Идём дальше. С дополнением 1Bot ситуация немного получше, пробелы в начале строк отображаются, кроме самой первый строки. И количество пробелов правильное, такое, какое есть в исходном тексте. Один пробел в тексте, один пробел и в посту, а два в тексте, и в посту два.

Но хотелось бы, что бы пробелы верно отображались не только в начале строк, но и везде, по всему тексту. Как это сделать?

Вот проверочный текст:

Без пробелов:

00000

Один пробел между цифрами:

1 1 1 1 1 1 1 1 1

Два пробела между цифрами:

2 2 2 2 2 2 2 2 2

Три пробела между цифрами:

3 3 3 3 3 3 3 3 3

Прогрессирующий пробел между цифрами:

0 1 2 3 4 5 6 7 8 9

То есть между 8 и 9 девять пробелов. А по факту отображается 1 пробел. Убедиться в наличии пробелов можно нажав кнопку "Правка", оказывается в исходном тексте все пробелы на месте, кроме самого первого, он автоматически пропадает.

Как выправить это дело? То есть отображать абсолютно все пробелы которые есть в исходном тексте? Если бы exbb правильно отображал текст, это было бы замечательно.

Кстати проблема с пробелами есть не только в exbb, но и в других движках, даже в юкозе.
15. Parapsixolog - 31 марта 2018 — 12:26 - перейти к сообщению
Оказывается тему по поводу не простановки пробелов уже подымали, в 2016 году - http://exbb.info/community/topic...=5&topic=406

И похоже воз до сих пор там. Не ужели так и нет решения?

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0207]     [ ]