Интеграция медиа-элементов в Ckeditor

У меня возникли проблемы с редактором wysiwig ckeditor. Пытаясь уйти от любых медиаплееров на основе флэш-памяти, я наткнулся на MediaElement (http://mediaelementjs.com/), который был предложен в качестве хорошей альтернативы для воспроизведения аудио и видео ( http://drupal.org/node/1035630).

Есть ли простой способ интегрировать этот плеер в медиа-плагин? Я полагаю, что должен быть способ заменить проигрыватель на основе флэш-памяти на медиа-элемент..?

Мысли?


person user1535191    schedule 18.07.2012    source источник


Ответы (1)


Вы можете создать собственный плагин на основе flash-плагина.

Заглавные буквы имеют значение, вот руководство по стилю: Руководство по стилю кодирования http://docs.cksource.com/FCKeditor_3.x/Design_and_Architecture/Coding_Style

Скопируйте каталог _source/plugins/flash и переименуйте его, назовем его mediaelement.

Поместите переименованный каталог сюда /plugins/mediaelement.

Затем переименуйте /plugins/mediaelement/dialogs/flash.js в mediaelement.js.

Добавьте изображение кнопки панели инструментов 16px X 16px в каталог /plugins/mediaelement/images/.
Я знаю, что файлы .png работают, другие не пробовал.


Конфигурация:
Загрузите новый плагин в конфигурацию:

config.extraPlugins = 'mediaelement';

Добавьте кнопку в настройку конфигурации панели инструментов 'MediaElement'

config.toolbar_xxx

Изменения файлов
Вам потребуется изменить ссылки на имя и файлы подключаемого модуля "flash". Вот минимальные изменения, необходимые для загрузки плагина и открытия диалогового окна:

plugins/mediaelement/dialogs/mediaelement.js (174)

CKEDITOR.dialog.add( 'mediaelement', function( editor )

plugins/mediaelement/plugin.js (22–33)

  CKEDITOR.plugins.add( 'mediaelement',
  {
    init : function( editor )
    {
      editor.addCommand( 'mediaelement', new CKEDITOR.dialogCommand( 'mediaelement' ) );
      editor.ui.addButton( 'MediaElement',
        {
          label : 'Media Element',
          command : 'mediaelement',
          icon: this.path + 'images/mediaelement_btn.png'
        });
      CKEDITOR.dialog.add( 'mediaelement', this.path + 'dialogs/mediaelement.js' );

Здесь есть несколько руководств по созданию подключаемых модулей:
http://docs.cksource.com/CKEditor_3.x/Tutorials

Они дадут вам представление о структуре и необходимых элементах. Я узнал об этом, просматривая руководства при работе с копией существующего плагина, это заняло некоторое время, но большая часть того, что вам нужно, уже есть.

Учебники содержат информацию о создании диалоговых окон и используемых параметрах, они помогут вам понять, что происходит в файле plugins/mediaelement/dialogs/mediaelement.js.

Вы можете изменить файл диалога, чтобы он содержал поля, используемые реализацией MediaElement. Я предлагаю вам сравнить код внедрения для flash с кодом, используемым для элемента мультимедиа, чтобы увидеть, какие части соответствуют друг другу, и соответствующим образом изменить файл диалога.

person codewaggle    schedule 18.07.2012
comment
Итак, все, что мне нужно сделать, это изменить любую ссылку, которая ранее говорила о flash, на mediaelement в файле plugin.js? Где я на самом деле ссылаюсь на файлы проигрывателя медиа-элементов в диалоговом окне? - person user1535191; 18.07.2012
comment
Вам нужно посмотреть контекст для каждого появления слова flash в файлах, чтобы решить, как его следует заменить. Файл диалога следует переименовать с flash.js на mediaelement.js. Он создает диалоговое окно с полями, которые вы будете использовать для различных настроек. Вам нужно будет изменить его для работы с конкретными настройками медиа-элемента. Было бы полезно, если бы вы просмотрели учебные пособия, чтобы узнать, что важно для вашей ситуации. Я посмотрю файлы и добавлю несколько заметок к своему ответу. - person codewaggle; 19.07.2012
comment
Я очень благодарен за всю вашу помощь! На самом деле я просмотрел учебники по ссылке ckeditor, которую вы прислали, просто мне это показалось немного греческим. Любые заметки/файлы, которые вы могли бы бросить мне, были бы очень признательны!! - person user1535191; 19.07.2012
comment
Забыл упомянуть, что в mediaelement.js есть куча этих операторов editor.lang.flash.xxx. Они используются для разрешения разных языков, он использует правильный языковой файл в зависимости от языка пользователя, но вам нужно будет добавить слова в каждый языковой файл, чтобы это работало. Самый простой способ — заменить эти сегменты фактическим текстом, который вы хотите отобразить в кавычках. Итак, editor.lang.flash.xxx становится "New Text". - person codewaggle; 19.07.2012
comment
Не стесняйтесь задавать вопросы, если вы застряли. Возможно, вы захотите открыть новый вопрос о конкретных проблемах, с которыми вы столкнулись при создании и внедрении плагина. Я думаю, что на ваш вопрос о возможности интеграции проигрывателя MediaElement был дан ответ. - person codewaggle; 19.07.2012
comment
Получите немного больше репутации, и вы сможете присоединиться к обсуждениям в чате, теперь у вас 11, вам нужно 20. Может быть полезно, поскольку постоянные комментарии загромождают вещи, и их трудно читать и форматировать. - person codewaggle; 19.07.2012
comment
Я ценю все ваши полезные комментарии, очень ценю! - person user1535191; 26.07.2013
comment
Кому-нибудь удалось это сделать? Если это так, возможно, стоит выпустить его для сообщества! Я искал то же самое. - person Ravish Bhagdev; 13.05.2015
comment
@RavishBhagdev Да, если вы будете следовать инструкциям в ответе и смотреть комментарии, вы сможете создать свой собственный плагин. Первоначальный постер смог это сделать, они были новичками и не понимали, что должны принять ответ. - person codewaggle; 13.05.2015