Основной код плагина находится в файле .js, описывающем, какие действия и каким образом должен выполнять плагин. Этот файл размещается в корневой папке плагина вместе с файлами config.json и index.html.
Как это работает?
В коде каждого плагина содержится объект window.Asc.plugin, который, в свою очередь, имеет несколько методов для взаимодействия с редакторами документов, таблиц и презентаций.
Для работы плагина разработчик должен определить два обязательных метода для объекта window.Asc.plugin: window.Asc.plugin.init и window.Asc.plugin.button. После этого используется метод window.Asc.plugin.callCommand для передачи данных в редакторы с помощью встроенных функций API Генератора документов.
Если плагин работает с OLE-объектом, для управления им используется метод window.Asc.plugin.executeCommand.
Рассмотрим, как это сделано в плагине helloworld.js:
(function (window, undefined) {
window.Asc.plugin.init = function () {
this.callCommand(function() {
var oDocument = Api.GetDocument();
var oParagraph = Api.CreateParagraph();
oParagraph.AddText("Hello world!");
oDocument.InsertContent([oParagraph]);
}, true);
};
window.Asc.plugin.button = function (id) {
};
})(window, undefined);
При инициализации плагина (window.Asc.plugin.init = function () {…})редактор формирует абзац с фразой ‘Hello World’, а затем использует API Генератора документов для создания документа с этим текстом (с помощью метода window.Asc.plugin.callCommand — this.callCommand(function() {…})).
Единственная кнопка ‘OK’ (window.Asc.plugin.button = function (id) {…}) используется для создания текста и завершения работы с плагином.
Таким же образом можно создать любой другой плагин. В настоящее время плагины поддерживают не только передачу текста или форматированного текста в редакторы, но и встраивание OLE-объектов (например, плагин YouTube, встраивающий видео с YouTube на страницу редактора).