Тепер 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.

На цьому, мабуть, все. І так — ми сподіваємося з часом побачити буйство плагінів, створене співтовариством. У всякому разі, дуже цікаво, які функції допишуть наші користувачі.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.