Парсер BBCode на PHP

ZigFreeD

Новичок
Автор оригинала: tashkentchi
Браузеры без designMode работают только с простым вариантом.
Только все равно сделай в обоих варианта xBB-editor кнопку для переключения в другой вариант... вдруг кому то не понравится тот вариант... или он работать будет, но глючно... все может быть... примером могу привести оперу... в нее так часто выходят новые версии... и в каждой бывают какие то траблы с отображениями страниц... в предыдущей версии нормально отображалась, а в новой стала фигово... и наоборот...
Так что так будет удобнее...
 

tashkentchi

Новичок
Кнопку сделал. И баги оперные пофиксил, - смайлы вставляются, прокрутка не скачет, - порядок.

dark-demon
Прикольная штука. Изучаю.
 

ZigFreeD

Новичок
Супер :)

-~{}~ 15.04.07 14:48:

Тут еще потестил твой скрипт... и обнаружил... не знаю глюк это или фича (как мы все знает, фича - это докумментированный глюк), но мне это малость не понравилось...
на Opera 9.20
При нажатии на кнопочку(стрелочка вниз) у шрифтов выпадает меню... но оно не исчезает пока я не кликну по этой кнопке еще раз (не выбирая шрифт)... т.е. я просто открыл посмотереть какие есть шрифты... мне не понравилось например, или я передумал выбирать шрифт... и чтобы закрылось окно приходится нажимать заново на кнопку шрифтов...
по мне было бы удобно чтобы она исчезала если я кликну на поле для ввода текста... как это сделано во всех Win32 приложениях... менюшка исчезает при нажатии на поле ввода... или при клике мышью в любом другом месте приложения!
 

whirlwind

TDD infected, paranoid
tashkentchi респектище, отличный пакет получился. Есть пожелание по поводу js - по возможности предусмотреть API для добавления кнопок с обработчиками на панельку. Это сделает не только серверную часть удобную для программеров, но и клиентскую.

PS. чего svn не юзаете? ;)
 

tashkentchi

Новичок
ZigFreeD, whirlwind - все сделаю, только время нужно. Про SVN: все таки я больше привык в одиночку работать. Положу сегодня-завтра.
 

ZigFreeD

Новичок
Потестил еще твой скрипт...
Вот замеченные недочеты:
1. В цитаты не попадает текст не находящийся во фрайме!
Посмотри в моем коде это работало... вроде бы :)
Пример как на этом же форуме... слева от <textarea> куда вводится ответ есть ссылка "нажми сюда" нажав на которую автоматом помещаесят цитата... убобно было чтобы у тебя могло обрабатываться также... а не только в нутри данного фрайма.
2. Ctrl+Я работает не всегда корректно... Т.е. когда курсор в поле для ввода стоит то нормлаьно (но всего 1 возврат, что есть плохо), а если я поставил какой то код через кнопочку и не кликнул в поле для ввода, то нажав Ctrl+Z у меня в Опере открывается новая страничка (недавно закрытая) :(
Я знаю что это не твой глюк... в опере тоже есть undo... но хотелось бы чтобы когда я кликнут на кнопку... что боле для ввода автоматом получало фокус... а оно его теряет!
Плюс можешь сделать хотябы 5 откатов?

То что я написал про откат происходит не всегда... а изредка... но бывает... иногда все хорошо и фокус тоже получается... в чем трабл понять не могу...
 

tashkentchi

Новичок
xBB версии 0.28

Уже несколько человек попросили поторопиться с очередной версией xBB. Главным образом из-за xBBEditor-а. И хотя он абсолютно сырой, тянуть дольше я не могу. Иначе, выход этой версии затянется на неопределенный срок.

Вот основные отличия версии 0.28 от предыдущих:

  1. Исправлено несколько багов. В том числе закрыта уязвимость для javascript-инъекции в теге [ img].
  2. В класс bbcode добавлен новый метод: checkUrl($url), преобразовывающий URL-ы к безопасному виду от javascript.
  3. Упрощено добавление новых тегов. Вместо утомительного перечисления тегов, куда можно и куда нельзя вложить данный, и какие теги должны закрываться, когда начинается данный и т.п., введено понятие "модель поведения" тега, указание которой решает многие проблемы. Более подробно будет описано в документации.
  4. Все классы, реализующие отдельные теги вынесены в отдельные файлы по принципу "один класс - один файл". Эти файлы подключаются не скопом а по мере надобности.
  5. В состав пакета xBB включен пакет GeSHi для реализации тегов подсветки синтаксиса. Вместе с этими тегами xBB поддерживает теперь 116 тегов.
  6. Умолчальная конфигурация объектов bbcode вынесена в отдельный файл. Это позволяет уменьшить количество повторяющегося кода при использовании библиотеки в нескольких скриптах. Возможности конфигурирования "на лету" от этого нисколько не пострадали.
  7. Библиотека теперь поддерживается в двух вариантах: для PHP4 и для PHP5. Оба варианта практически одинаковы. Различия не выходят за рамки минимума, при котором в PHP5 с включенным E_STRICT не возникает ошибок.
  8. В пакет включена клиентская часть - xBBEditor. Добавлен как экспериментальное приложение. Если возьметесь его использовать, то должны знать следующее:

    a. Это не получится у вас без напильника.
    b. Возможно, что в следующих версиях xBBEditor будет коренным образом переделан и не будет совместим с текущей версией.

Документацию исправить не успел. Займусь этим немедленно.

-~{}~ 23.04.07 01:58:

Скачать можно на http://xbb.uz
 

AlexKl

Guest
Автор оригинала: tashkentchi
xBB версии 0.28

Уже несколько человек попросили поторопиться с очередной версией xBB. Главным образом из-за xBBEditor-а. И хотя он абсолютно сырой, тянуть дольше я не могу. Иначе, выход этой версии затянется на неопределенный срок.

Вот основные отличия версии 0.28 от предыдущих:


Скачать можно на http://xbb.uz
Спасибо за хорошую программу и библиотеку. Вот буквально сегодня ее попробовал. Все работает замечательно. Но есть небольшие вопросы, хотелось бы уточнить.
Возможно ли совместное использование парсера для вывода bbcode и одновременного использования HTML?
Поясню на примере:
если я пишу в тексте
[б]Тест[/б]
то он после парсера выводится жирным, как и положено

Если я пишу
<strong>Тест</strong>
то выводится надпись, а не сам жирный текст

Хотелось бы, что бы выодился жирный текст

Возможно ли это?

то же самое, когда вставляю ссылки, ну например такого вида:
PHP:
<a href="http://fotki.yandex.ru/users/kogo1/view/818/">
<img src="http://img.fotki.yandex.ru/get/kogo1.0/0_332_9fd939c9_L" width="500" height="375" alt="" border="0"></a>
Если поставить в тегах [нобб], то выводится просто текст, если без них, то ссылки там, где написано http//:
Но сами картинки не выводятся.
Скорее всего это из-за того, что '<' заменяестя на '&lt' и т.д.
Как этого избежать?
Спасибо!
 

tashkentchi

Новичок
В этой теме уже поднимался этот вопрос (см. предыдущие посты) и было найдено решение: добавить специальный тег [ html], в котором не "убивать" html и javascript для использования администратором. Приводился даже код, реализующий этот тег. Этот код должен быть несколько доработан.
 

AlexKl

Guest
Спасибо!
Нашел, буду разбираться
Желаю дальнейших творческих успехов и хорошего кода!

-~{}~ 23.04.07 14:10:

Вот еще вопрос
Во всех комментариях к коду у меня русские символны отображаются во в таком виде

Файл содержит умолчальные настройки для класса bbcode.

Список поддерживаемых тегов с указанием соответствующих им классов-обработчиков:

Не подскажите, что можно сделать, что бы видеть нормальные символы?
 

ZigFreeD

Новичок
смени кодировку :) у него если мне память не изменяет стоит iso :) хотя она может и изменять... но точно что не win1251 и не koi8

А вообще используй другой редактор который сам будет определять кодировку :) я юзаю php designer 2007 и проблем не знаю с ним :)
 

ZigFreeD

Новичок
Ашибся маленько :) я все не мог вспомнить исошка там или утф :)

-~{}~ 28.04.07 14:45:

Обнуружил один трабл с xBBEditor в версии php4... После того как ты перезалил все заработало... но один маленький нюанс... не знаю с чем связано... возможно проблемы моего сервера... проблема такая... вначале когда гружу твою тестовую страничку все грузится путем! но как тоько я нажимаю кнопку "подсветить код"... русский текст который был введен становится не читаемым :( т.е. отображатся знаки вопроса... и приходится нажимать F5 чтобы вернуть все обратно :(
 

tashkentchi

Новичок
Попробуй с кодировками поэкспериментить в файле ajax/highlighter.php
Там стоит utf-8, попробуй поменять на windows-1251
 

ZigFreeD

Новичок
Ок! Получилось :) Сделай потом чтобы автоматом бралось из конфига editor.config.php... так удобнее будет...
И вопросик... почему нажимаю на кнопку подсветить код размер шрифта увеличивается когда подсвечен код, и возвращается до обратного значения когда отменяешь подсветку? Это и у тебя на сайте и в библиотеке что скачал...

-~{}~ 28.04.07 22:14:

И версию поставь хотябы xBBEditor 0.01 если не хочешь сразу менять на высокую... всеже нулевая версия как то не смотрится :)

-~{}~ 28.04.07 22:21:

И еще совсем забыл сказать... сделай чтобы в xBBEditor когда наводишь мышь на смайлы она становилась cursor: hand;
По моему так будет красивее :)

-~{}~ 28.04.07 22:29:

Можно ли как нибудь (через конфиги) отключить отображение смайлов? И определенных кнопок? Просто иначе у меня не помещается xBBEditor в место выделенное дизайнером для него :(
 

tashkentchi

Новичок
И вопросик... почему нажимаю на кнопку подсветить код размер шрифта увеличивается когда подсвечен код, и возвращается до обратного значения когда отменяешь подсветку? Это и у тебя на сайте и в библиотеке что скачал...
Надаже... Действительно в опере и в IE скачет :( А в ФФ ок. Доделаю документацию возьмусь за это дело.

И версию поставь хотябы xBBEditor 0.01 если не хочешь сразу менять на высокую... всеже нулевая версия как то не смотрится
Зато правда. С нулевой версии взятки гладки :) Скорее всего вообще номер версии уберу. Будет один номер версии для всего пакета.

сделай чтобы в xBBEditor когда наводишь мышь на смайлы она становилась cursor: hand;
Взял на заметку.

Как тебе новый дизайн сайта?
 

ZigFreeD

Новичок
Прикольно!!! Понравился очень!!!!

Тут попробовал изменить размер XBB.area_width до 500 пикселей :) В итоге размер изменился :) Но появился скроллбар :)
Не подскажешь что подредактировать чтобы смайлы исчезли из редактора? А то код не хочу переконопачивать весь :) еще перестанет вдруг работать :)

-~{}~ 28.04.07 23:42:

А почему http автоматически не добавляется к ссылкам???
я написал www.mail.ru и у меня он ссылается на
http://localhost/bbcode/www.mail.ru :(((
 

tashkentchi

Новичок
Не подскажешь что подредактировать чтобы смайлы исчезли из редактора?
Без напильника не исчезнут. Открой файл xbb.php и переконопать код. Не жалко, все равно его в следующей версии не будет :)

А почему http автоматически не добавляется к ссылкам???
я написал www.mail.ru и у меня он ссылается на
http://localhost/bbcode/www.mail.ru ((
Косяк :( Я в целях защиты от javascript-а убрал из специальных тегов весь код, обрабатывающий адреса и вытащил его в специальный метод. Вот видимо и запорол при этом фичу для тега [ url]. В bbcode.lib.php поправь метод checkUrl($url).
Я его тоже поправлю и в следующую версию это исправление попадет.
 

ZigFreeD

Новичок
Тут посидел вечерком... и от нечего делать создал полноценную коллекцию смайлов с pak файлом в пакете... подойдет к твоей библиотеке...

Смайлы взяты с сайта kolobok.us

Качать тут

P.S.: сделал примитивный скрипт для создания pak файлов :) в нем довольно быстро все создал :)
 
Сверху