Как установить плагин (дополнение) для редактора Tiny MCE в wpForo?

Ссылка скопирована
1 ответ

Приветствую! Помогите кто чем может пожалуйста)
Нашёл отличный движок для форумов Вордпресс - wpForo. Но есть в нём один неприятный косячок... Встроенный текстовый редактор TinyMCE с очень скудным функционалом. В теории, расширить возможности редактора можно с помощью плагинов TinyMCE которые доступны бесплатно на сайте разработчика, например мне нужен следующий плагин https://www.tiny.cloud/docs/plugins/opensource/cod.... На этом же сайте есть инструкция по установке плагинов, но я совсем рамы не соберу как её использовать в моём случае.
То что я успел найти, это код для расширения функционала редактора TinyMCE в wpForo:

add_filter( 'wpforo_editor_settings', function( $settings ){  if ( empty( $settings['tinymce'] ) || ! is_array( $settings['tinymce'] ) ) $settings['tinymce'] = []; $settings['plugins']             = 'compat3x,fullscreen,hr,paste,textcolor,lists,table,visualblocks,visualchars,insertdatetime,charmap,searchreplace,anchor,advlist,codesample, wordcount'; $settings['tinymce']['toolbar1'] = 'fontsizeselect,fontselect,bold,italic,underline,strikethrough,forecolor,backcolor,bullist,numlist,hr,alignleft,aligncenter,alignright,alignjustify,subscript,superscript,outdent,indent,link,unlink,blockquote,wpf_spoil,undo,redo,pastetext,source_code,fullscreencut,removeformat,table,insertdatetime,charmap,styleselect,searchreplace,anchor,codesample,emoticons, wordcount';  return $settings;  });

add_filter( 'wpforo_editor_settings', function( $settings ){ if ( empty( $settings['tinymce'] ) || ! is_array( $settings['tinymce'] ) ) $settings['tinymce'] = []; $settings['plugins'] = 'compat3x,fullscreen,hr,paste,textcolor,lists,table,visualblocks,visualchars,insertdatetime,charmap,searchreplace,anchor,advlist,codesample, wordcount'; $settings['tinymce']['toolbar1'] = 'fontsizeselect,fontselect,bold,italic,underline,strikethrough,forecolor,backcolor,bullist,numlist,hr,alignleft,aligncenter,alignright,alignjustify,subscript,superscript,outdent,indent,link,unlink,blockquote,wpf_spoil,undo,redo,pastetext,source_code,fullscreencut,removeformat,table,insertdatetime,charmap,styleselect,searchreplace,anchor,codesample,emoticons, wordcount'; return $settings; });

С помощью него мне удалось добавить функционал плагинов которые шли в наборе. Файлы плагинов находятся wp-includejstinymceplugins и в каждой папке лежит файл plugin.js в котором сам плагин и прописан. Но никаких подобных файлов я не нашёл в описании плагина на сайте. В инструкции, скорее всего, интеграция в самописный сайт, а под CMS не адаптировано.

Если кто сталкивался с подобным или поможет в решить вопрос, буду очень благодарен!

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ольга Сеть Ответ

В wpForo встроенный редактор может быть TinyMCE, но это не значит, что любой плагин TinyMCE можно просто положить в папку и он заработает. Нужно подключить plugin script к конкретному экземпляру редактора, а wpForo может инициализировать редактор со своими настройками.

Если wpForo использует стандартный WordPress wp_editor(), можно попробовать подключить внешний TinyMCE plugin через фильтры WordPress:

add_filter('mce_external_plugins', function ($plugins) {
    $plugins['myplugin'] = get_stylesheet_directory_uri() . '/tinymce/myplugin/plugin.min.js';
    return $plugins;
});
 
add_filter('mce_buttons', function ($buttons) {
    $buttons[] = 'myplugin';
    return $buttons;
});

add_filter('mce_external_plugins', function ($plugins) { $plugins['myplugin'] = get_stylesheet_directory_uri() . '/tinymce/myplugin/plugin.min.js'; return $plugins; }); add_filter('mce_buttons', function ($buttons) { $buttons[] = 'myplugin'; return $buttons; });

Но если wpForo переопределяет настройки редактора или использует свой init, этот код может не затронуть форумный редактор.

Начните с проверки: появляется ли плагин в обычном редакторе WordPress. Если да, но не появляется в wpForo — значит нужно искать hooks именно wpForo. У wpForo есть свои фильтры и настройки editor toolbar, и правильнее вмешиваться через них, а не глобально ломать TinyMCE на всём сайте.

Также учтите безопасность. Форумный редактор доступен пользователям, а не только администраторам. Если добавить кнопки HTML/iframe/script без фильтрации, можно открыть XSS. Даже если TinyMCE показывает кнопку, WordPress/wpForo потом может вырезать теги при сохранении.

Проверьте документацию wpForo по editor toolbar и allowed HTML. Иногда нужная функция уже есть в настройках форума или расширениях wpForo.

Практический путь:

  • проверить, какой редактор реально используется;
  • подключить TinyMCE-плагин к обычному редактору;
  • найти фильтр wpForo для toolbar/init;
  • проверить сохранение и вывод тегов;
  • не разрешать опасный HTML обычным пользователям.

Если задача — просто расширить форматирование, безопаснее использовать готовые настройки/аддоны wpForo, чем подключать произвольный TinyMCE plugin вручную.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно