Как стать автором
Обновить
0
Рейтинг

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

Блог компании ONLYOFFICE JavaScript *Программирование *API *Расширения для браузеров
Что если бы вы могли добавить в редакторы документов любые функции, какие вам хочется? Теперь вы можете: в редакторах 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.

На этом, пожалуй, всё. И да — мы надеемся со временем увидеть буйство плагинов, созданное сообществом. Во всяком случае, очень любопытно, какие функции допишут наши пользователи.
Теги:
Хабы:
Всего голосов 21: ↑19 и ↓2 +17
Просмотры 14K
Комментарии Комментарии 49

Информация

Дата основания
2008
Местоположение
Латвия
Сайт
www.onlyoffice.com
Численность
51–100 человек
Дата регистрации