Теперь ONLYOFFICE может всё: добавляем плагины в редакторы документов

от автора

Что если бы вы могли добавить в редакторы документов любые функции, какие вам хочется? Теперь вы можете: в редакторах ONLYOFFICE появилась возможность подключения плагинов. Несколько примеров мы написали сами — все их можно посмотреть в нашем открытом репозитории на GitHub’e. Теперь ваш ход — напишите то, чего вам не хватало.

Подробности далее.


Зачем мы это сделали?

Итак, мы решили дать разработчикам возможность добавлять нужную (но не относящуюся напрямую к форматам OOXML) функциональность в редакторы ONLYOFFICE.

Всё началось с одной компании, в которой очень хотели написать собственную кнопку, чтобы генерить контент и вставлять получившиеся данные в редактор. Окей, подумали мы, в этом есть смысл. Есть функциональность, которая нужна только определенным людям и больше никому. Мы не можем сделать всё для всех, но мы можем дать возможность подрубить всё, что нужно. Поэтому вот вам API для работы с редактором, первая версия.

Так и появились плагины.

В них можно использовать код, который мы сами не сможем брать из-за лицензионных ограничений. Мы делаем коммерческий продукт и продаем его, нельзя просто взять и (*в этом моменте автор текста прерывается, чтобы отмахнуться от всплывшего из глубин подсознания призрака Шона Бина) нельзя просто взять и использовать любой код из интернета. То есть, нам нельзя. А вам можно. Те вещи, которые мы по объективным причинам не можем, наши пользователи могут.

Типы плагинов

Мы делим их на три типа:

Визуальные. Когда мы пользуемся таким расширением редактора, у нас открывается окно и рисуется определенный интерфейс. Например, Главред, который просили наши пиарщики.

Визуальный плагин может менять что-то в самом документе, а может и ничего не менять. Главред ничего не меняет — он лишь подсвечивает определенную часть текста (штампы, лишние слова и пр).

Можно написать плагин, который вставляет ищет по Google.Картинкам и вставляет понравившуюся в текст. Этот плагин меняет документ.

Невизуальные. Например, простая кнопка, при нажатии которой производятся манипуляции с документом. Простейший пример такого плагина: расширение, которое при нажатии кнопки добавляет в ваш документ слова Hello World!

(function (window, undefined) {     window.Asc.plugin.init = function () {         var sScript = 'var oDocument = Api.GetDocument();';         sScript += 'var oParagraph = Api.CreateParagraph();';         sScript += 'oParagraph.AddText(\'Hello world!\');';         sScript += 'oDocument.InsertContent([oParagraph]);';         window.Asc.plugin.info.recalculate = true;         this.executeCommand("close", sScript);     };     window.Asc.plugin.button = function (id) {     }; })(window, undefined); 

Вы также можете добавить в свой документ, например, свою собственную кнопку Bold. Или кнопку, при нажатии которой генерится отчет.

OLE-объекты. Это наши любимые плагины. И единственный способ для стороннего разработчика «влезать» в форматную часть документа, т.е. записывать свою информацию не только во время работы редактора, но и непосредственно в файл. Это, например, наши шахматы.

К какому решению подключаются плагины и как это делается?

На самом деле, к любому.

Для серверной версии.

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

Для десктопа.

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

Для веб-версии.

В ближайшее время мы запилим что-то вроде магазина или галереи, куда будут добавляться (после модерации) плагины от пользователей.

Пока «магазина» нет, плагины можно добавлять через расширение в браузере. Этот путь пока работает только для Chrome. У нас на GitHub’e есть папка c говорящим названием chrome_extension_example: это и есть образец, как сделать по нашим плагинам расширение в Chrome.

Здесь, кстати, недлинное видео, о том, что могут наши плагины и как их добавить в существующую инсталляцию (десктоп, сервер).

Как написать свой плагин?

Здесь мы хотели написать подробную инструкцию, как это сделать. Но вспомнили, что у нас уже есть хорошая и подробная документация, где структура плагина описана во всех необходимых деталях. Так что всё здесь. Вы также можете изучить устройство дополнений, которые мы собственноручно выложили на GitHub.

На этом, пожалуй, всё. И да — мы надеемся со временем увидеть буйство плагинов, созданное сообществом. Во всяком случае, очень любопытно, какие функции допишут наши пользователи.
ссылка на оригинал статьи https://habrahabr.ru/post/314716/


Комментарии

Добавить комментарий

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