[МЕМО] Пример расширения на JavaScript

Автор Рыбка Рио, 15 июля 2010, 22:03

0 Пользователи и 1 гость просматривают эту тему.

Рыбка Рио

пример, который вставляет в Writer результат вычисления 2+3, находится в меню Сервис/Дополнения/_JSTest

[вложение удалено Администратором]
ubuntu 12.04 + LibO3.6.0

JohnSUN

[joke]
Даже так: "вставляет в текущий активный документ ODF-Writer арифметическое выражение 2+3 и результат его вычисления"...

Улыбнула первая строчка комментария к скрипту  ;D Классика!
[/joke]

В каком инструменте делалось? Какова последовательность действий? В десяток пошаговых инструкций уложить можно?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Рыбка Рио

Цитата: JohnSUN от 15 июля 2010, 21:22В каком инструменте делалось? Какова последовательность действий? В десяток пошаговых инструкций уложить можно?
Можно.
1. В OOo есть IDE для JavaScript, открываем его через меню Сервис/Макросы/Управление макросами.../JavaScript...
2. Создайте новую библиотеку, нажав "Создать..."
3. Создайте новый макрос, нажав "Создать..."
4. Найдите свой профиль OOo, и там папку "Scripts", к примеру,  "C:\Documents and Settings\{user}\Application Data\OpenOffice.org\3\user\Scripts" на WIndows, /home/{user}/.openoffice.org/.../Scripts на линуксе.
5. Скопируйте библиотеку со всем содержимым в папку с вашим будущим расширением.
6. Теперь осталось только подправить файлы Addons.xcu, manifest.xml, description.xml.
а.Addons.xcu - там нужно написать путь до скрипта в виде:

               <prop oor:name="URL" oor:type="xs:string">
<value>vnd.sun.star.script:Library1.Macro1.js?language=JavaScript&amp;location=user:uno_packages/jstest-1.0.0.oxt</value>
</prop>

где Library1 нужно заменить на имя вашей библиотеки, а jstest-1.0.0.oxt - на имя конечноо файла вашего расширения.
остальное всё как в OOoBasic.
б.manifest.xml:
<?xml version="1.0" encoding="UTF-8"?>
<manifest:manifest>
<manifest:file-entry manifest:full-path="Library1/" manifest:media-type="application/vnd.sun.star.framework-script"/>
<manifest:file-entry manifest:full-path="Addons.xcu" manifest:media-type="application/vnd.sun.star.configuration-data"/>
</manifest:manifest>

где Library1 нужно заменить на имя вашей библиотеки.
в.description.xml (Example — OpenOffice.org Wiki).
7. Запакуйте в zip, переименуйте zip  в oxt.

Стандартный макрос вставляет в Writer слово "Helloworld".
Кстати, BeanShell тоже имеет своё IDE и примеры. Наверное, там практически всё тоже самое нужно сделать, что и с JavaScript, чтобы макрос превратить в расширение.
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

#3
Вот ещё тема: How to deploy and invoke JavaScript in an extension`? (View topic) • OpenOffice.org Community Forum
Но там пример от hanya не работает (на OOo 3.2.1), а чтобы заработало нужно разделить папки со скриптам на OOoBasic и со скриптами на JavaScript - и тогда, у меня по крайней мере, заработало.
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

ubuntu 12.04 + LibO3.6.0

Рыбка Рио

Вот пример сразу нескольких скриптов в одном расширении:
http://bernard.marcelly.perso.sfr.fr/Files_en/ExtensionDemo.zip (внутри архива файл .oxt).

(со страницы Extensions Packagers — OpenOffice.org Wiki)
ubuntu 12.04 + LibO3.6.0