Как в редактор redactor добавить свой span с классом? 2.X

Как в редактор redactor добавить свой span с классом?

 
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
Привет, друзья!
Возможно ли как то расширить редактор своими классами? Если да , то как
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
yury:
Возможно ли как то расширить редактор своими классами? Если да , то как
Непонятна задача. Нужно добавить какие-то стили в редактор или нужна новая кнопка?
Реклама
cms
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
Ris:
Нужно добавить какие-то стили в редактор или нужна новая кнопка?
да, кнопка, которая позволяла бы выделять нужный текст по примеру как выделяется заголовком или жирным.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
yury,
Нужно сделать плагин.
Например взять плагин спойлера с гитхаба и слегка доработать.
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
Ris:

yury,
Нужно сделать плагин.
Например взять плагин спойлера с гитхаба и слегка доработать.

можно пример плагина на гите?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
yury:
можно пример плагина на гите?
https://github.com/instantsoft/icms2/tree/master/wysiwyg/redactor/files/plugins/spoiler
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
Ris:

yury:
можно пример плагина на гите?
https://github.com/instantsoft/icms2/tree/master/wysiwyg/redactor/files/plugins/spoiler

только добавлением скрипта видимо не обойтись. еще надо редактировать файл redactor.js
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
Пытался так сделать

Код PHP:
  1.  
  2. if (!RedactorPlugins) var RedactorPlugins = {};
  3.  
  4. RedactorPlugins.span = {
  5. init: function ()
  6. {
  7. var fonts = [ 'marked' ];
  8. var that = this;
  9. var dropdown = {};
  10.  
  11. $.each(fonts, function(i, s)
  12. {
  13. dropdown['s' + i] = { title: s, callback: function() { that.setSpan(s); }};
  14. });
  15.  
  16. dropdown['remove'] = { title: this.opts.curLang['remove_font'], callback: function() { that.resetSpan(); }};
  17.  
  18. this.buttonAdd('span', this.opts.curLang['span'], false, dropdown);
  19. },
  20. setSpan: function (value)
  21. {
  22. this.inlineSetClass('marked', value);
  23. },
  24. resetSpan: function()
  25. {
  26. this.inlineRemoveClass('marked');
  27. }
  28. };
т.е задача была сделать span class="marked"
Редактировалось: 1 раз (Последний: 6 июля 2018 в 20:13)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
yury:
еще надо редактировать файл redactor.js
Еще надо редактировать файл \wysiwyg\redactor\wysiwyg.class.php
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
Ris:

yury:
еще надо редактировать файл redactor.js
Еще надо редактировать файл \wysiwyg\redactor\wysiwyg.class.php

да, я уже полностью с гита взял обновленный редактор. по принципу со спойлером сделал, но осталось понять как сам скрипт правильно прописать. привел код выше. Кнопка подгрузилась, скрипт отрабатывает, но почему то не вставляется в редактор спан
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
yury,
Вы лучше скажите, какой спан надо добавлять к выделенному контенту.
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
Ris:

yury,
Вы лучше скажите, какой спан надо добавлять к выделенному контенту.

т.е задача была сделать span class="marked"
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
yury,
Понятно.
Но Вы пытаетесь присвоить объекту this класс marked.
Вы понимаете, что this - это весь html страницы? Надо сначала изъять выделенный html
Код JS:
  1. content = this.getSelectionHtml();
А потом его обвести в спан и вставить обратно.
Код JS:
  1. span = '<span class="marked">'+content+'</span>';
  2. this.insertHtmlAdvanced(span);
Посетитель
no avatar
МедальАвторитет форума
Сообщений: 2794
Ris:

yury,
Понятно.
Но Вы пытаетесь присвоить объекту this класс marked.
Вы понимаете, что this - это весь html страницы? Надо сначала изъять выделенный html
Код JS:
  1. content = this.getSelectionHtml();
А потом его обвести в спан и вставить обратно.
Код JS:
  1. span = ''+content+'';
  2. this.insertHtmlAdvanced(span);

а можете на моем примере конечный результат показать? не очень понимаю(
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
yury:
а можете на моем примере конечный результат показать?
Пока не могу.
Я в отпуске и тот ноут, что есть под рукой, не позволяет установить некоторые инструменты.
Посмотрю после 16-го.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.