Как сделать дополнительные BB коды в форуме

Например, как на IPB

#1 2 октября 2010 в 09:10
Столкнулась с этой проблемой. ББкодов форума очень мало! Нашла мини-доработку быстрого ответа, но это не совсем то — где
  1. [img]
, например! Хотелось добавить ещё больше BB кодов!
Ребята, кто делал это себе? Поделитесь, будьте добры. :)
#2 26 января 2012 в 20:15
вопрос остался без ответа а ведь актуально!!!
#3 26 января 2012 в 23:43
Кнопки с функциями находятся здесь: core/classes/page.class.php
Я себе сделал дополнительную кнопку "Линия" и вживил выделение текста цветом(цвета- выпадающее меню).

Пока выглядит кривовато и без иконок, но работает, далее доведу до ума.
Редактор один на форум, блоги и ЛС, так что кнопки добавятся и там соответственно.
#4 27 января 2012 в 01:16
Новая версия InstantCMS 1.9
22 ноября 2011 — Fuze
BBCode

правильные автоссылки;
исправлена проблема при цитировании автора с ником из нескольких слов #292;
множественные исправления js формы добавления bb кодов #297 #363;
поддержка плагинов для кнопок формы добавления (GET_BBCODE_BUTTON) ;
#5 27 января 2012 в 01:35
• Mike •, можно для тех, кто "в танке"?..
#6 27 января 2012 в 02:17
Если коротко, то появилась возможность добавлять код дополнительных кнопок BBcode с помощью плагина…
В файле /core/classes/page.class.php в функции getBBCodeToolbar появилась в самом конце строка (~884)
  1. $html = cmsCore::callEvent('GET_BBCODE_BUTTON', $html);
Которая обозначает что если написать плагин использующий этот вызов, то в конец списка кнопок редактора добавиться код новой кнопки…
Потом пишем плагин(только для примера /plugins/p_trio_bb/plugin.php):
  1.  
  2. <?php
  3.  
  4. class p_trio_bb extends cmsPlugin {
  5.  
  6. // ==================================================================== //
  7.  
  8. public function __construct(){
  9.  
  10. parent::__construct();
  11.  
  12. $this->info['plugin'] = 'p_trio_bb';
  13. $this->info['title'] = 'Demo Add BBcode';
  14. $this->info['description'] = 'Демо добавления кнопок для ББ-кодов';
  15. $this->info['author'] = '• Mike •';
  16. $this->info['version'] = '0.1';
  17. $this->info['type'] = 'BBcode';
  18.  
  19. $this->events[] = 'GET_BBCODE_BUTTON';
  20.  
  21. }
  22.  
  23. // ==================================================================== //
  24.  
  25. public function install(){
  26.  
  27. return parent::install();
  28.  
  29. }
  30.  
  31. // ==================================================================== //
  32.  
  33. public function upgrade(){
  34.  
  35. return parent::upgrade();
  36.  
  37. }
  38.  
  39. // ==================================================================== //
  40.  
  41. public function execute($event, $html){
  42.  
  43. parent::execute();
  44.  
  45. $html .= '<a class="usr_bb_button" href="javascript:addTag(\''.$field_id.'\', \'[h1]\', \'[/h1]\')" title="Большой заголовок">
  46. <img src="/includes/bbcode/images/h1.png" border="0" alt="Большой заголовок" />
  47. </a>
  48. <a class="usr_bb_button" href="javascript:addTag(\''.$field_id.'\', \'[h2]\', \'[/h2]\')" title="Средний заголовок">
  49. <img src="/includes/bbcode/images/h2.png" border="0" alt="Средний заголовок" />
  50. </a>
  51. <a class="usr_bb_button" href="javascript:addTag(\''.$field_id.'\', \'[h3]\', \'[/h3]\')" title="Маленький заголовок">
  52. <img src="/includes/bbcode/images/h3.png" border="0" alt="Маленький заголовок" />';
  53.  
  54. return $html;
  55. }
  56.  
  57.  
  58. // ==================================================================== //
  59.  
  60. }
  61.  
  62. ?>
  63.  
закидываем в директорию /plugins/p_trio_bb/ инсталируем и включаем в админке переходим на сайт и видим копию трех кнопочек с заголовками 1-3 уровня…
соответственно коды добавляем свои следуя правилам функции getBBCodeToolbar
#7 27 января 2012 в 02:48
Как-то мудрено. У меня проще получилось. Просто прописал дополнительные кнопки и всё. Зачем что-то устанавливать?
Тем более что некоторые распространенные BB коды не воспринимаются, примером тому создание списка.
#8 27 января 2012 в 02:50
можно целиком заменить стандартную панель если убрать (.) точку перед = в строке $html =…
#9 27 января 2012 в 02:55
мудрёно что? написать свои строки в $html .= ''? так вы их и так написали только добавляли исправляя файлы движка, а так у вас будет плагин, и например при обновлении с версии на версию не нужно будет вспоминать где что и как правили вносили дополняли… ) а всё остальное я написал дайте свое название папке с плагином заполните блок информации сверху и функцию переименуйте, больше ничего сложного…
#10 27 января 2012 в 02:55


Кнопки с функциями находятся здесь: core/classes/page.class.php
Я себе сделал дополнительную кнопку "Линия" и вживил выделение текста цветом(цвета- выпадающее меню).

Пока выглядит кривовато и без иконок, но работает, далее доведу до ума.
Редактор один на форум, блоги и ЛС, так что кнопки добавятся и там соответственно.

Vyatich

Выделение цветом вот тут хорошо реализовано instantcms.ru/blogs/zametki-polzovatelja/menjaem-cvet-shrifta-v-komentarijah.html
Я поставил, удобно и цветов много, взято на примере форума phpbb
#11 27 января 2012 в 10:54

Выделение цветом вот тут хорошо реализовано instantcms.ru/blogs/zametki-polzovatelja/menjaem-cvet-shrifta-v-komentarijah.html
Я поставил, удобно и цветов много, взято на примере форума phpbb

Алфей
к вечеру сделаю в виде плагина под версию 1.9…
#12 27 января 2012 в 11:08
Собственно уже есть, но проверялся только на чистой установке 1.9, в принципе конфликтовать ни с чем не должен…
Файл во вложении (распаковываем содержимое архива в корень сайта, устанавливаем в админке (добавить плагины) и включаем… всё… работает везде где стандартный редактор ББ-кодов используется, ничего руками править не нужно…
Успехов…
Прикрепленный файл
pbbcolortable_9c8f7.zip 5 Кб
#13 27 января 2012 в 12:48
• Mike •, Вот спасибо +
#14 27 января 2012 в 13:06
Не подскажите — насколько трудно добавить — "Предварительный просмотр" рядом с "Отправить"?

Пользователи говорят, что не удобно без него.
Вообщем то да, и появляется — сообщение редактрировалось n-раз.
#15 27 января 2012 в 22:51
Для стандартного редактора с ББ-кодами и без изенений файлов движка крайне проблематично, если делать качественно…
Если делать “настоящий реальный” WYSIWYG с подхватом стилей из шаблонов…
В случае, если, просто — посмотреть приблизительно без ББ-кодов — можно придумать (в тех же ББ-кодах) кнопочку просмотр к примеру…
Надо будет посмотреть…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.