SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Building community around non coding
extensions, create and deploy non coding
extensions
 Kálmán “KAMI” Szalai

 LibreOffice Conference
 Paris, France
 14 October, 2011
                                                                                  1
                          LibreOffice Paris 2011 Conference - Non coding extensions
About → Kami

 OpenOffice.org contributor since 2003
 LibreOffice contributor since 2010
 Extension development
   ● Non-coding extensions (OxygenOffice templates,

     galleries)
   ● SmART (ex Diagram) [with Tibor Hornyák]

   ● Barcode [with Dániel Darabos]

   ● Validator [with Tibor Hornyák]

   ● WatchWindow [with Tibor Hornyák]


 Other Free Software activities: Mozilla, Ubuntu

 System Administrator at a mobile phone monitoring company
 – http://www.synaptel.com/                                2
                             LibreOffice Paris 2011 Conference - Non coding extensions
What is LibreOffice Extension?

 Extending LibreOffice capabilities
 One file with „.oxt” extension
 Easy to install and remove
 Effective update mechanism
   ● Build-in into LibreOffice


 Easy entry point for
   ● Programmers

   ● Content developers




                                                                                       3
                               LibreOffice Paris 2011 Conference - Non coding extensions
Levels of extension deployment

 Shared extension installation
  ● Installed by the LibreOffice itself or by the system

    administrator
  ● User can't add, update or remove it

  ● System administrator can manage it via CLI, „Package

    Manager” or replace the extensions' dir
  ● Available for all users




                                                                                     4
                             LibreOffice Paris 2011 Conference - Non coding extensions
Levels of extension deployment

 Per-user extension installation
  ● Installed and managed by the user

  ● User can manage it via CLI or „Package Manager”

  ● Available for that user only who installed it




                                                                                    5
                            LibreOffice Paris 2011 Conference - Non coding extensions
Type of Extensions

 There are two types of extensions
  ● Code extension

  ● Non-coding extensions




                                                                                      6
                              LibreOffice Paris 2011 Conference - Non coding extensions
Code extension

 Implements UNO Component
   ● This is what we use as „Extension” in general

   ● Integrates into the UI: menu elements and toolbars


 Calc Add-Ins
   ● Create one or more Calc function




                                                                                      7
                              LibreOffice Paris 2011 Conference - Non coding extensions
Non-coding extensions


  Contains Open Document Format files or special
  LibreOffice files:
    ● Templates („.ott”, „.ots”, „.otp”, „.otd”)

    ● Dictionaries

    ● Galleries

    ● AutoCorrect

    ● AutoTexts

    ● Databases

    ● Settings




                                                                                     8
                             LibreOffice Paris 2011 Conference - Non coding extensions
Structure of extensions

 „.oxt” files are ZIP files
 Structured set of files and directories
   ● META-INF/manifest.xml

   ● description/*

   ● licenses/*

   ● readmes/*

   ● Paths.xcu

   ● description.xml

   ● gallery/*, autotext/*, template/*




                                                                                        9
                                LibreOffice Paris 2011 Conference - Non coding extensions
META-INF/manifest.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manifest:manifest PUBLIC "-//OpenOffice.org//DTD Manifest
1.0//EN" "Manifest.dtd">
<manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest">
   <manifest:file-entry manifest:media-
type="application/vnd.sun.star.configuration-data"
                 manifest:full-path ="Paths.xcu"/>
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.package-
bundle-description"
 manifest:full-path="description/description_en-US.txt" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.package-
bundle-description;locale=de"
 manifest:full-path="description/description_de-DE.txt" />
</manifest:manifest>


                                                                                              10
                                       LibreOffice Paris 2011 Conference - Non coding extensions
Paths.xcu


<?xml version='1.0' encoding='UTF-8'?>
<oor:component-data oor:package="org.openoffice.Office"
oor:name="Paths" xmlns:install="http://openoffice.org/2004/installation"
xmlns:oor="http://openoffice.org/2001/registry"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <node oor:name="Paths">
     <node oor:name="Gallery" oor:op="fuse">
          <node oor:name="InternalPaths">
                    <node oor:name="%origin%/gallery" oor:op="fuse"/>
          </node>
       </node>
    </node>
</oor:component-data>
                                                                                           11
                                    LibreOffice Paris 2011 Conference - Non coding extensions
description.xml (1 of 2)

<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://openoffice.org/extensions/description/2006"
xmlns:d="http://openoffice.org/extensions/description/2006"
  xmlns:xlink="http://www.w3.org/1999/xlink">
 <identifier value="net.sf.ooop.oxygenoffice.accessories" />
 <version value="2.8.0.0" />
  <dependencies>
     <OpenOffice.org-minimal-version value="2.0" d:name="OpenOffice.org 2.0"/>
  </dependencies>
  <update-information>
   <src xlink:href="http://ooop.sourceforge.net/update/extensions.xml" />
  </update-information>
  <registration>
     <simple-license accept-by="admin" default-license-id="en-US" suppress-on-update="true" >
       <license-text xlink:href="licenses/license_de-DE.txt" lang="de-DE" />
       <license-text xlink:href="licenses/license_en-US.txt" lang="en-US" license-id="en-US" />
     </simple-license>
  </registration>



                                                                                                                 12
                                                          LibreOffice Paris 2011 Conference - Non coding extensions
description.xml (2 of 2)

  <extension-description>
  <src xlink:href="description/description_en.txt" lang="en" />
          <src xlink:href="description/description_de.txt" lang="de" />
  </extension-description>
  <release-notes>
  <src xlink:href="readme/readme_en.txt" lang="en" />
          <src xlink:href="readme/readme_de.txt" lang="de" />
  </release-notes>
<publisher>
<name xlink:href="http://ooop.sf.net/" lang="en">OxygenOffice Professional Team</name>
</publisher>
<icon>
<default xlink:href="App1.png" />
</icon>
</description>




                                                                                                                  13
                                                           LibreOffice Paris 2011 Conference - Non coding extensions
Update information

  Additional update information on the server
<?xml version="1.0" encoding="UTF-8"?>
<description
xmlns="http://openoffice.org/extensions/update/2006"
 xmlns:xlink="http://www.w3.org/1999/xlink">
 <identifier value="net.sf.ooop.oxygenoffice.accessories"/>
 <version value="2.0" />
 <update-download>
   <src
xlink:href="http://ooop.sourceforge.net/download/extension.oxt"
/>
 </update-download>
</description>
                                                                                      14
                               LibreOffice Paris 2011 Conference - Non coding extensions
Extension builder scripts

 You can build extensions easily
 Example scripts
   ●   https://ooop.svn.sourceforge.net/svnroot/ooop/trunk/utils/




                                                                                          15
                                   LibreOffice Paris 2011 Conference - Non coding extensions
Templates: Language (in)dependent


  Use common/* directory for language independent
  templates
    ● Feature Request: localizable template names in

      common section
  Language dependent templates only visible when the
  template language = UI language
    ● Feature Request: language selector @ „Templates and

      Documents” dialog




                                                                                    16
                             LibreOffice Paris 2011 Conference - Non coding extensions
Templates: Languages

 Paths.xcu
  ● Language independent


     – <node oor:name="%origin%/template"
        oor:op="fuse"/>
     – Files under: template/<categories>/ or
        template/<other_dir>/ using the trick
  ● Language dependent


     – <node oor:name="%origin%/template/$(vlang)"
        oor:op="fuse"/>
     – Files under: template/<language id>/<categories>/ or
        template/<other_dir>/ using the trick


                                                                                     17
                              LibreOffice Paris 2011 Conference - Non coding extensions
Templates: Built in categories

 officorr → “Business Correspondence”
 offimisc → “Other Business Documents”
 personal → “Personal Correspondence and Documents”
 forms → “Forms and Contracts”
 finance → “Finances”
 educate → “Education”
 layout → “Presentation Backgrounds”
 presnt → “Presentations”
 misc → “Miscellaneous”
 common → “Language independent”



                                                                                  18
                           LibreOffice Paris 2011 Conference - Non coding extensions
Templates: Small trick


  Redefine directory names for templates
   ● Filename: .nametranslation.table


encoding="UTF-8"
[TRANSLATIONNAMES]
Docs=Dokumentációk
Proj=Projekt tervek




                                                                                    19
                             LibreOffice Paris 2011 Conference - Non coding extensions
Templates: Missing functionality

 Search
 Tagging
 Multiple level subdirs
   ● Second level sub-directories are simply invisible in

     LibreOffice
 Template name localization
   ● For language independent templates


      – For example templates in common/ folder




                                                                                      20
                               LibreOffice Paris 2011 Conference - Non coding extensions
Galleries: Building it by hand


  Embedded elements
    ● Open: Tools → Gallery

    ● Select the object and hold the button until „+” sign

      appear
or
    ● Select the object and CTRL+hold the button

    ● Drag it to the gallery


  Linked elements
    ● Select theme (in Gallery) → Properties → Files → Add




                                                                                    21
                             LibreOffice Paris 2011 Conference - Non coding extensions
Galleries: Automated way

 Gengal – easy way to add linked gallery elements
  ● Not packed with LibreOffice 3.4 (BUG?)


 Dia filter importer
  ● https://fedorahosted.org/openoffice.org-diafilter/




                                                                                      22
                               LibreOffice Paris 2011 Conference - Non coding extensions
Galleries: Missing functionality

 Localization (gallery themes, elements)
 Search
 Tagging
 XML based files (still using binary files)
 BUG: Themes with same name override each other
 BUG: Linked elements cannot be seen or inserted – wrong
 path for %origin% variable




                                                                                    23
                             LibreOffice Paris 2011 Conference - Non coding extensions
Galleries: Localization

 Not trivial and not possible without rebuilding
 Gallery code lives in: /svx/
   ● source/gallery2/galtheme.src

   ● Inc/galtheme.hrc


 Useful environment variables
   ● GALLERY_ENABLE_ID_DIALOG – Assign to L10n name

   ● GALLERY_SHOW_PRIVATE_TITLE – L10n name

   ● AVOID_BURN_IN_FOR_GALLERY_THEME – Do not

     force color setting (not need in general)
 No L10n for elements only for themes not for every gallery
 elements


                                                                                    24
                             LibreOffice Paris 2011 Conference - Non coding extensions
Setting-override with extension

 Two step-by-step guide
  ● http://blogs.oracle.com/kkoll/entry/using_extensions_to_c

    hange_openoffice
  ● http://wiki.services.openoffice.org/wiki/Documentation/Ad

    ministration_Guide/Deactivating_Registration_Wizard




                                                                                     25
                              LibreOffice Paris 2011 Conference - Non coding extensions
AutoText & Autocorr


  Create the required AutoTexts and Auto Corrections
  Copy
    ● autotext/<name>.bau or

    ● autocorr/acor_<lang>.dat


to the extension




                                                                                     26
                              LibreOffice Paris 2011 Conference - Non coding extensions
Deliver extensions to our users

 Extensions & Templates site
   ● Currently in beta test stage


       – http://extensions-test.libreoffice.org/
       – http://templates-test.libreoffice.org/
   ● Need more extensions and templates

   ● Status update about LibreOffice Extensions & Templates

      site:
       – 15th of October, morning, La Cantine:
Status and Future of the LibreOffice Extension and Template
Repository by Andreas Mantke



                                                                                     27
                              LibreOffice Paris 2011 Conference - Non coding extensions
Corporate Extension deployment

 Shared folder + login script
  ● Simply copy the extension to the right directory


     – Shared: /opt/libreoffice3.4/share/extensions/<EXT>/
  ● CLI


     – Shared: unopkg add --shared <EXT>
     – User: unopkg add <EXT>
 Use Tools → Extension manager
  ● User

  ● Shared (run LO as root :o( )




                                                                                     28
                              LibreOffice Paris 2011 Conference - Non coding extensions
Idea: Distribute templates in Extensions

 Provide collection of templates for categories and/or
 languages
   ● Templates for (Hungarian) lawyers

   ● Templates for kids

   ● Hungarian templates


 „On-the-fly” template extension generation
   ● Users select or search templates (categories, languages,

     quality)→ They can download it as an extension
 Easier to install for long-term usage
 Automatic updates



                                                                                     29
                              LibreOffice Paris 2011 Conference - Non coding extensions
Call for Template Workgroup

 Tasks
   ● Create high quality templates

   ● Fix and sort already available templates

   ● Discuss related topics


      – „Templates and Documents” dialog redesign
           ●   http://wiki.services.openoffice.org/wiki/Feature_-_Templates
      –   Define categories (they are hardcoded in the source)
           ●   LibreOffice brand new template site uses lots more categories
  ●   Unite template creators
  ●   Build community around template localization
       – Design and build localization workflow for template
         L10n
           ●   Using dedicated sites or apps like OmegaT
                                                                                                30
                                         LibreOffice Paris 2011 Conference - Non coding extensions
Ideas around templates

 Possibility of multi-languages templates
   ● Same layout for every language


      – Smart script, or
      – ODF changes
 Store templates in a repository for template development
   ● Using version management (GIT)


      – Commit in uncompressed form (flat file)
      – Store the base template plus the language dependent
        content for each language
   ● Or use document management system




                                                                                    31
                             LibreOffice Paris 2011 Conference - Non coding extensions
An offer (you can't refuse)


  Use already collected templates and galleries as a base of
  further work
  Huge collection of templates and galleries
https://ooop.svn.sourceforge.net/svnroot/ooop/trunk/extras/source/
  Licenses – all files are available under free licenses
https://ooop.svn.sourceforge.net/svnroot/ooop/trunk/documents/license/




                                                                                          32
                                   LibreOffice Paris 2011 Conference - Non coding extensions
Are you a volunteer?

 Review the templates and gallery elements
 Fix possible problems (design, spelling, etc.)
 Localize the templates
 Upload to our brand new template site
   ● Still beta: http://templates-test.libreoffice.org/


 Move the selected templates to a official LibreOffice
 repository
 Discuss the best possible solution




                                                                                       33
                                LibreOffice Paris 2011 Conference - Non coding extensions
Are you a developer?

 Fix the bugs and add feature for
   ● Gallery

   ● Templates


 Documents and Templates dialog redesign
  ●   http://wiki.services.openoffice.org/wiki/Feature_-_Templates
       – Rather old page
       – Let's start the brainstorming again




                                                                                         34
                                  LibreOffice Paris 2011 Conference - Non coding extensions
Links


  Extensions
http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Extensions
  Non-code extensions
http://wiki.services.openoffice.org/wiki/Non-code_extensions
  LibreOffice Template & Extensions
    ● http://templates-test.libreoffice.org/

    ● http://extensions-test.libreoffice.org/


  Our Templates and Galleries collection → LibreOffice
https://ooop.svn.sourceforge.net/svnroot/ooop/trunk/extras/source/




                                                                                                  35
                                           LibreOffice Paris 2011 Conference - Non coding extensions
Thank you for your attention

 Building community around non coding extensions, create
 and deploy non coding extensions

 Any questions, ideas
  ● kami911@gmail.com




 Kálmán “KAMI” Szalai

 LibreOffice Conference
 Paris, France
 14 October, 2011

                                                                                    36
                             LibreOffice Paris 2011 Conference - Non coding extensions

Mais conteúdo relacionado

Destaque (7)

KKU ICT
KKU ICTKKU ICT
KKU ICT
 
เทคโนโลยีปัจจุบันกับการใช้งานใน มข.
เทคโนโลยีปัจจุบันกับการใช้งานใน มข.เทคโนโลยีปัจจุบันกับการใช้งานใน มข.
เทคโนโลยีปัจจุบันกับการใช้งานใน มข.
 
Nguyễn Vũ Hưng: LibreOffice/ODF on Smartphone/Tablet/Cloud
Nguyễn Vũ Hưng: LibreOffice/ODF on Smartphone/Tablet/Cloud Nguyễn Vũ Hưng: LibreOffice/ODF on Smartphone/Tablet/Cloud
Nguyễn Vũ Hưng: LibreOffice/ODF on Smartphone/Tablet/Cloud
 
QR Platba
QR PlatbaQR Platba
QR Platba
 
Basic configuration fortigate v4.0 mr2
Basic configuration fortigate v4.0 mr2Basic configuration fortigate v4.0 mr2
Basic configuration fortigate v4.0 mr2
 
Proof of Kraft Mc-Millan theorem - nguyen vu hung
Proof of Kraft Mc-Millan theorem - nguyen vu hungProof of Kraft Mc-Millan theorem - nguyen vu hung
Proof of Kraft Mc-Millan theorem - nguyen vu hung
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Semelhante a LibreOffice/OpenOffice.org - non coding extensions

Learn PHP Lacture1
Learn PHP Lacture1Learn PHP Lacture1
Learn PHP Lacture1
ADARSH BHATT
 
Logging Services for .net - log4net
Logging Services for .net - log4netLogging Services for .net - log4net
Logging Services for .net - log4net
Guo Albert
 

Semelhante a LibreOffice/OpenOffice.org - non coding extensions (20)

ODFKit
ODFKitODFKit
ODFKit
 
IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
 
Andres Gutierrez "Phalcon 3.0, Zephir & PHP7"
Andres Gutierrez "Phalcon 3.0, Zephir & PHP7"Andres Gutierrez "Phalcon 3.0, Zephir & PHP7"
Andres Gutierrez "Phalcon 3.0, Zephir & PHP7"
 
Presentation of lpOD (ODF automation platform) at FOSDEM 2010
Presentation of lpOD (ODF automation platform) at FOSDEM 2010Presentation of lpOD (ODF automation platform) at FOSDEM 2010
Presentation of lpOD (ODF automation platform) at FOSDEM 2010
 
OOoCon Lpod
OOoCon LpodOOoCon Lpod
OOoCon Lpod
 
Managing Plone Projects with Perl and Subversion
Managing Plone Projects with Perl and SubversionManaging Plone Projects with Perl and Subversion
Managing Plone Projects with Perl and Subversion
 
Drupal 8 preview_slideshow
Drupal 8 preview_slideshowDrupal 8 preview_slideshow
Drupal 8 preview_slideshow
 
Ide
IdeIde
Ide
 
Graphical libraries
Graphical librariesGraphical libraries
Graphical libraries
 
Open erp
Open erpOpen erp
Open erp
 
Learn PHP Lacture1
Learn PHP Lacture1Learn PHP Lacture1
Learn PHP Lacture1
 
Open Source Everything...including documentation
Open Source Everything...including documentationOpen Source Everything...including documentation
Open Source Everything...including documentation
 
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
 
Logging Services for .net - log4net
Logging Services for .net - log4netLogging Services for .net - log4net
Logging Services for .net - log4net
 
The LibreOffice Human Interface Guidelines (HIG)
The LibreOffice Human Interface Guidelines (HIG)The LibreOffice Human Interface Guidelines (HIG)
The LibreOffice Human Interface Guidelines (HIG)
 
Python tutorial
Python tutorialPython tutorial
Python tutorial
 
Asf icfoss-mentoring
Asf icfoss-mentoringAsf icfoss-mentoring
Asf icfoss-mentoring
 
Open Source Software: A Study
Open Source Software: A StudyOpen Source Software: A Study
Open Source Software: A Study
 
Sharepoint and LibreOffice interoperability through CMIS (Protocols Plugfest ...
Sharepoint and LibreOffice interoperability through CMIS (Protocols Plugfest ...Sharepoint and LibreOffice interoperability through CMIS (Protocols Plugfest ...
Sharepoint and LibreOffice interoperability through CMIS (Protocols Plugfest ...
 
OpenNTF - DNUG November 2013
OpenNTF - DNUG November 2013OpenNTF - DNUG November 2013
OpenNTF - DNUG November 2013
 

Mais de Kálmán "KAMI" Szalai

Jó mint a Linux Mint - Linux Rendszergazda Meetup
Jó mint a Linux Mint - Linux Rendszergazda MeetupJó mint a Linux Mint - Linux Rendszergazda Meetup
Jó mint a Linux Mint - Linux Rendszergazda Meetup
Kálmán "KAMI" Szalai
 
Ubuntu Hour, Budapest - Linux Mint - Kis disztribúció, nagy siker
Ubuntu Hour, Budapest - Linux Mint - Kis disztribúció, nagy sikerUbuntu Hour, Budapest - Linux Mint - Kis disztribúció, nagy siker
Ubuntu Hour, Budapest - Linux Mint - Kis disztribúció, nagy siker
Kálmán "KAMI" Szalai
 
Android vs Firefox OS - Vissza a jövőbe: Firefox OS
Android vs Firefox OS - Vissza a jövőbe: Firefox OSAndroid vs Firefox OS - Vissza a jövőbe: Firefox OS
Android vs Firefox OS - Vissza a jövőbe: Firefox OS
Kálmán "KAMI" Szalai
 

Mais de Kálmán "KAMI" Szalai (20)

POI vadászat szolgáltatói honlapokról
POI vadászat szolgáltatói honlapokrólPOI vadászat szolgáltatói honlapokról
POI vadászat szolgáltatói honlapokról
 
Külső adatok (GTFS, UIC, boltok) félautomatikus importálása az OpenStreetMap-be
Külső adatok (GTFS, UIC, boltok) félautomatikus importálása az OpenStreetMap-beKülső adatok (GTFS, UIC, boltok) félautomatikus importálása az OpenStreetMap-be
Külső adatok (GTFS, UIC, boltok) félautomatikus importálása az OpenStreetMap-be
 
Unalomból térképezés - meglepően egyszerűen lehetsz önkéntes
Unalomból térképezés - meglepően egyszerűen lehetsz önkéntesUnalomból térképezés - meglepően egyszerűen lehetsz önkéntes
Unalomból térképezés - meglepően egyszerűen lehetsz önkéntes
 
An introduction to Python for absolute beginners
An introduction to Python for absolute beginnersAn introduction to Python for absolute beginners
An introduction to Python for absolute beginners
 
Szabad szoftverek - szabad a gazda?
Szabad szoftverek - szabad a gazda?Szabad szoftverek - szabad a gazda?
Szabad szoftverek - szabad a gazda?
 
LAS fájlok ínyenceknek / LIDAR - szabad szoftverekkel
LAS fájlok ínyenceknek / LIDAR - szabad szoftverekkelLAS fájlok ínyenceknek / LIDAR - szabad szoftverekkel
LAS fájlok ínyenceknek / LIDAR - szabad szoftverekkel
 
Linux Mint - közreműködési lehetőségek
Linux Mint - közreműködési lehetőségekLinux Mint - közreműködési lehetőségek
Linux Mint - közreműködési lehetőségek
 
Linux Mint Közösségi Találkozó 17.3 és Linux Installfest
Linux Mint Közösségi Találkozó 17.3 és Linux InstallfestLinux Mint Közösségi Találkozó 17.3 és Linux Installfest
Linux Mint Közösségi Találkozó 17.3 és Linux Installfest
 
Fordítási alapok
Fordítási alapokFordítási alapok
Fordítási alapok
 
Önkéntesek, közösségek
Önkéntesek, közösségekÖnkéntesek, közösségek
Önkéntesek, közösségek
 
Jó mint a Linux Mint - Linux Rendszergazda Meetup
Jó mint a Linux Mint - Linux Rendszergazda MeetupJó mint a Linux Mint - Linux Rendszergazda Meetup
Jó mint a Linux Mint - Linux Rendszergazda Meetup
 
Ubuntu Hour, Budapest - Linux Mint - Kis disztribúció, nagy siker
Ubuntu Hour, Budapest - Linux Mint - Kis disztribúció, nagy sikerUbuntu Hour, Budapest - Linux Mint - Kis disztribúció, nagy siker
Ubuntu Hour, Budapest - Linux Mint - Kis disztribúció, nagy siker
 
OpenStreetMap Budapest Meetup - Mozilla Location Service
OpenStreetMap Budapest Meetup - Mozilla Location ServiceOpenStreetMap Budapest Meetup - Mozilla Location Service
OpenStreetMap Budapest Meetup - Mozilla Location Service
 
Linux Mint - kis disztribúció nagy siker
Linux Mint - kis disztribúció nagy sikerLinux Mint - kis disztribúció nagy siker
Linux Mint - kis disztribúció nagy siker
 
Firefox OS beszámoló
Firefox OS beszámolóFirefox OS beszámoló
Firefox OS beszámoló
 
6 facts about Open Web and Firefox Os
6 facts about Open Web and Firefox Os6 facts about Open Web and Firefox Os
6 facts about Open Web and Firefox Os
 
Android vs Firefox OS - Vissza a jövőbe: Firefox OS
Android vs Firefox OS - Vissza a jövőbe: Firefox OSAndroid vs Firefox OS - Vissza a jövőbe: Firefox OS
Android vs Firefox OS - Vissza a jövőbe: Firefox OS
 
Android vs. Firefox OS - Egyszer volt, hol nem volt a Firefox OS
Android vs. Firefox OS - Egyszer volt, hol nem volt a Firefox OSAndroid vs. Firefox OS - Egyszer volt, hol nem volt a Firefox OS
Android vs. Firefox OS - Egyszer volt, hol nem volt a Firefox OS
 
Firefox OS - Szakmai nap
Firefox OS - Szakmai napFirefox OS - Szakmai nap
Firefox OS - Szakmai nap
 
Firefox - A kezdetek
Firefox - A kezdetekFirefox - A kezdetek
Firefox - A kezdetek
 

Último

Último (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

LibreOffice/OpenOffice.org - non coding extensions

  • 1. Building community around non coding extensions, create and deploy non coding extensions Kálmán “KAMI” Szalai LibreOffice Conference Paris, France 14 October, 2011 1 LibreOffice Paris 2011 Conference - Non coding extensions
  • 2. About → Kami OpenOffice.org contributor since 2003 LibreOffice contributor since 2010 Extension development ● Non-coding extensions (OxygenOffice templates, galleries) ● SmART (ex Diagram) [with Tibor Hornyák] ● Barcode [with Dániel Darabos] ● Validator [with Tibor Hornyák] ● WatchWindow [with Tibor Hornyák] Other Free Software activities: Mozilla, Ubuntu System Administrator at a mobile phone monitoring company – http://www.synaptel.com/ 2 LibreOffice Paris 2011 Conference - Non coding extensions
  • 3. What is LibreOffice Extension? Extending LibreOffice capabilities One file with „.oxt” extension Easy to install and remove Effective update mechanism ● Build-in into LibreOffice Easy entry point for ● Programmers ● Content developers 3 LibreOffice Paris 2011 Conference - Non coding extensions
  • 4. Levels of extension deployment Shared extension installation ● Installed by the LibreOffice itself or by the system administrator ● User can't add, update or remove it ● System administrator can manage it via CLI, „Package Manager” or replace the extensions' dir ● Available for all users 4 LibreOffice Paris 2011 Conference - Non coding extensions
  • 5. Levels of extension deployment Per-user extension installation ● Installed and managed by the user ● User can manage it via CLI or „Package Manager” ● Available for that user only who installed it 5 LibreOffice Paris 2011 Conference - Non coding extensions
  • 6. Type of Extensions There are two types of extensions ● Code extension ● Non-coding extensions 6 LibreOffice Paris 2011 Conference - Non coding extensions
  • 7. Code extension Implements UNO Component ● This is what we use as „Extension” in general ● Integrates into the UI: menu elements and toolbars Calc Add-Ins ● Create one or more Calc function 7 LibreOffice Paris 2011 Conference - Non coding extensions
  • 8. Non-coding extensions Contains Open Document Format files or special LibreOffice files: ● Templates („.ott”, „.ots”, „.otp”, „.otd”) ● Dictionaries ● Galleries ● AutoCorrect ● AutoTexts ● Databases ● Settings 8 LibreOffice Paris 2011 Conference - Non coding extensions
  • 9. Structure of extensions „.oxt” files are ZIP files Structured set of files and directories ● META-INF/manifest.xml ● description/* ● licenses/* ● readmes/* ● Paths.xcu ● description.xml ● gallery/*, autotext/*, template/* 9 LibreOffice Paris 2011 Conference - Non coding extensions
  • 10. META-INF/manifest.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE manifest:manifest PUBLIC "-//OpenOffice.org//DTD Manifest 1.0//EN" "Manifest.dtd"> <manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest"> <manifest:file-entry manifest:media- type="application/vnd.sun.star.configuration-data" manifest:full-path ="Paths.xcu"/> <manifest:file-entry manifest:media-type="application/vnd.sun.star.package- bundle-description" manifest:full-path="description/description_en-US.txt" /> <manifest:file-entry manifest:media-type="application/vnd.sun.star.package- bundle-description;locale=de" manifest:full-path="description/description_de-DE.txt" /> </manifest:manifest> 10 LibreOffice Paris 2011 Conference - Non coding extensions
  • 11. Paths.xcu <?xml version='1.0' encoding='UTF-8'?> <oor:component-data oor:package="org.openoffice.Office" oor:name="Paths" xmlns:install="http://openoffice.org/2004/installation" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <node oor:name="Paths"> <node oor:name="Gallery" oor:op="fuse"> <node oor:name="InternalPaths"> <node oor:name="%origin%/gallery" oor:op="fuse"/> </node> </node> </node> </oor:component-data> 11 LibreOffice Paris 2011 Conference - Non coding extensions
  • 12. description.xml (1 of 2) <?xml version="1.0" encoding="UTF-8"?> <description xmlns="http://openoffice.org/extensions/description/2006" xmlns:d="http://openoffice.org/extensions/description/2006" xmlns:xlink="http://www.w3.org/1999/xlink"> <identifier value="net.sf.ooop.oxygenoffice.accessories" /> <version value="2.8.0.0" /> <dependencies> <OpenOffice.org-minimal-version value="2.0" d:name="OpenOffice.org 2.0"/> </dependencies> <update-information> <src xlink:href="http://ooop.sourceforge.net/update/extensions.xml" /> </update-information> <registration> <simple-license accept-by="admin" default-license-id="en-US" suppress-on-update="true" > <license-text xlink:href="licenses/license_de-DE.txt" lang="de-DE" /> <license-text xlink:href="licenses/license_en-US.txt" lang="en-US" license-id="en-US" /> </simple-license> </registration> 12 LibreOffice Paris 2011 Conference - Non coding extensions
  • 13. description.xml (2 of 2) <extension-description> <src xlink:href="description/description_en.txt" lang="en" /> <src xlink:href="description/description_de.txt" lang="de" /> </extension-description> <release-notes> <src xlink:href="readme/readme_en.txt" lang="en" /> <src xlink:href="readme/readme_de.txt" lang="de" /> </release-notes> <publisher> <name xlink:href="http://ooop.sf.net/" lang="en">OxygenOffice Professional Team</name> </publisher> <icon> <default xlink:href="App1.png" /> </icon> </description> 13 LibreOffice Paris 2011 Conference - Non coding extensions
  • 14. Update information Additional update information on the server <?xml version="1.0" encoding="UTF-8"?> <description xmlns="http://openoffice.org/extensions/update/2006" xmlns:xlink="http://www.w3.org/1999/xlink"> <identifier value="net.sf.ooop.oxygenoffice.accessories"/> <version value="2.0" /> <update-download> <src xlink:href="http://ooop.sourceforge.net/download/extension.oxt" /> </update-download> </description> 14 LibreOffice Paris 2011 Conference - Non coding extensions
  • 15. Extension builder scripts You can build extensions easily Example scripts ● https://ooop.svn.sourceforge.net/svnroot/ooop/trunk/utils/ 15 LibreOffice Paris 2011 Conference - Non coding extensions
  • 16. Templates: Language (in)dependent Use common/* directory for language independent templates ● Feature Request: localizable template names in common section Language dependent templates only visible when the template language = UI language ● Feature Request: language selector @ „Templates and Documents” dialog 16 LibreOffice Paris 2011 Conference - Non coding extensions
  • 17. Templates: Languages Paths.xcu ● Language independent – <node oor:name="%origin%/template" oor:op="fuse"/> – Files under: template/<categories>/ or template/<other_dir>/ using the trick ● Language dependent – <node oor:name="%origin%/template/$(vlang)" oor:op="fuse"/> – Files under: template/<language id>/<categories>/ or template/<other_dir>/ using the trick 17 LibreOffice Paris 2011 Conference - Non coding extensions
  • 18. Templates: Built in categories officorr → “Business Correspondence” offimisc → “Other Business Documents” personal → “Personal Correspondence and Documents” forms → “Forms and Contracts” finance → “Finances” educate → “Education” layout → “Presentation Backgrounds” presnt → “Presentations” misc → “Miscellaneous” common → “Language independent” 18 LibreOffice Paris 2011 Conference - Non coding extensions
  • 19. Templates: Small trick Redefine directory names for templates ● Filename: .nametranslation.table encoding="UTF-8" [TRANSLATIONNAMES] Docs=Dokumentációk Proj=Projekt tervek 19 LibreOffice Paris 2011 Conference - Non coding extensions
  • 20. Templates: Missing functionality Search Tagging Multiple level subdirs ● Second level sub-directories are simply invisible in LibreOffice Template name localization ● For language independent templates – For example templates in common/ folder 20 LibreOffice Paris 2011 Conference - Non coding extensions
  • 21. Galleries: Building it by hand Embedded elements ● Open: Tools → Gallery ● Select the object and hold the button until „+” sign appear or ● Select the object and CTRL+hold the button ● Drag it to the gallery Linked elements ● Select theme (in Gallery) → Properties → Files → Add 21 LibreOffice Paris 2011 Conference - Non coding extensions
  • 22. Galleries: Automated way Gengal – easy way to add linked gallery elements ● Not packed with LibreOffice 3.4 (BUG?) Dia filter importer ● https://fedorahosted.org/openoffice.org-diafilter/ 22 LibreOffice Paris 2011 Conference - Non coding extensions
  • 23. Galleries: Missing functionality Localization (gallery themes, elements) Search Tagging XML based files (still using binary files) BUG: Themes with same name override each other BUG: Linked elements cannot be seen or inserted – wrong path for %origin% variable 23 LibreOffice Paris 2011 Conference - Non coding extensions
  • 24. Galleries: Localization Not trivial and not possible without rebuilding Gallery code lives in: /svx/ ● source/gallery2/galtheme.src ● Inc/galtheme.hrc Useful environment variables ● GALLERY_ENABLE_ID_DIALOG – Assign to L10n name ● GALLERY_SHOW_PRIVATE_TITLE – L10n name ● AVOID_BURN_IN_FOR_GALLERY_THEME – Do not force color setting (not need in general) No L10n for elements only for themes not for every gallery elements 24 LibreOffice Paris 2011 Conference - Non coding extensions
  • 25. Setting-override with extension Two step-by-step guide ● http://blogs.oracle.com/kkoll/entry/using_extensions_to_c hange_openoffice ● http://wiki.services.openoffice.org/wiki/Documentation/Ad ministration_Guide/Deactivating_Registration_Wizard 25 LibreOffice Paris 2011 Conference - Non coding extensions
  • 26. AutoText & Autocorr Create the required AutoTexts and Auto Corrections Copy ● autotext/<name>.bau or ● autocorr/acor_<lang>.dat to the extension 26 LibreOffice Paris 2011 Conference - Non coding extensions
  • 27. Deliver extensions to our users Extensions & Templates site ● Currently in beta test stage – http://extensions-test.libreoffice.org/ – http://templates-test.libreoffice.org/ ● Need more extensions and templates ● Status update about LibreOffice Extensions & Templates site: – 15th of October, morning, La Cantine: Status and Future of the LibreOffice Extension and Template Repository by Andreas Mantke 27 LibreOffice Paris 2011 Conference - Non coding extensions
  • 28. Corporate Extension deployment Shared folder + login script ● Simply copy the extension to the right directory – Shared: /opt/libreoffice3.4/share/extensions/<EXT>/ ● CLI – Shared: unopkg add --shared <EXT> – User: unopkg add <EXT> Use Tools → Extension manager ● User ● Shared (run LO as root :o( ) 28 LibreOffice Paris 2011 Conference - Non coding extensions
  • 29. Idea: Distribute templates in Extensions Provide collection of templates for categories and/or languages ● Templates for (Hungarian) lawyers ● Templates for kids ● Hungarian templates „On-the-fly” template extension generation ● Users select or search templates (categories, languages, quality)→ They can download it as an extension Easier to install for long-term usage Automatic updates 29 LibreOffice Paris 2011 Conference - Non coding extensions
  • 30. Call for Template Workgroup Tasks ● Create high quality templates ● Fix and sort already available templates ● Discuss related topics – „Templates and Documents” dialog redesign ● http://wiki.services.openoffice.org/wiki/Feature_-_Templates – Define categories (they are hardcoded in the source) ● LibreOffice brand new template site uses lots more categories ● Unite template creators ● Build community around template localization – Design and build localization workflow for template L10n ● Using dedicated sites or apps like OmegaT 30 LibreOffice Paris 2011 Conference - Non coding extensions
  • 31. Ideas around templates Possibility of multi-languages templates ● Same layout for every language – Smart script, or – ODF changes Store templates in a repository for template development ● Using version management (GIT) – Commit in uncompressed form (flat file) – Store the base template plus the language dependent content for each language ● Or use document management system 31 LibreOffice Paris 2011 Conference - Non coding extensions
  • 32. An offer (you can't refuse) Use already collected templates and galleries as a base of further work Huge collection of templates and galleries https://ooop.svn.sourceforge.net/svnroot/ooop/trunk/extras/source/ Licenses – all files are available under free licenses https://ooop.svn.sourceforge.net/svnroot/ooop/trunk/documents/license/ 32 LibreOffice Paris 2011 Conference - Non coding extensions
  • 33. Are you a volunteer? Review the templates and gallery elements Fix possible problems (design, spelling, etc.) Localize the templates Upload to our brand new template site ● Still beta: http://templates-test.libreoffice.org/ Move the selected templates to a official LibreOffice repository Discuss the best possible solution 33 LibreOffice Paris 2011 Conference - Non coding extensions
  • 34. Are you a developer? Fix the bugs and add feature for ● Gallery ● Templates Documents and Templates dialog redesign ● http://wiki.services.openoffice.org/wiki/Feature_-_Templates – Rather old page – Let's start the brainstorming again 34 LibreOffice Paris 2011 Conference - Non coding extensions
  • 35. Links Extensions http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Extensions Non-code extensions http://wiki.services.openoffice.org/wiki/Non-code_extensions LibreOffice Template & Extensions ● http://templates-test.libreoffice.org/ ● http://extensions-test.libreoffice.org/ Our Templates and Galleries collection → LibreOffice https://ooop.svn.sourceforge.net/svnroot/ooop/trunk/extras/source/ 35 LibreOffice Paris 2011 Conference - Non coding extensions
  • 36. Thank you for your attention Building community around non coding extensions, create and deploy non coding extensions Any questions, ideas ● kami911@gmail.com Kálmán “KAMI” Szalai LibreOffice Conference Paris, France 14 October, 2011 36 LibreOffice Paris 2011 Conference - Non coding extensions