[OXT] Adaptation barres d'outils pour AOO 4.x

Venez découvrir tous les tutoriels, modèles et autres foires aux questions afin de maîtriser rapidement votre suite bureautique favorite.

Modérateur : Vilains modOOs

Règles du forum
Aucune question dans cette section !
Cette section est faite pour présenter les tutoriels. Si vous avez une question sur l'installation, le fonctionnement ou l'utilisation, vous devez poster dans la section du module où se produit le problème.
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
Messages : 1527
Inscription : 28 sept. 2008 14:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

[OXT] Adaptation barres d'outils pour AOO 4.x

Message par Alain de La Chaume »

Modifier une OXT pour compatibilité avec AOO 4.0.0 (tuto version 2)
Dans cette version 2 du tuto, le texte des fichiers XML n'est pas en balisage CODE ce qui permet :
− la mise en couleur dans le texte original des parties supprimées ;
− la mise en couleur dans le texte modifié des parties ajoutées ou modifiées.
Mais... car il y a un mais... toutes les espaces normales au début de chaque ligne ont été converties en espaces fixes de la valeur d'un demi-cadratin (code hexa 2002). Cette manipulation interdit tout copier-coller brut de pomme car lesdits blancs fixes perturbent la bonne lecture des fichiers XML (xcu et autres).

Depuis la version 4.0.0 d'AOO, les WindowState.xcu (fichiers tbCalc.xcu, tbWriter.xcu etc. générés par Extension Compiler) ne sont plus utilisés. A la place, la structure de la section OfficeToolBar du fichier AddonUI.xcu a été modifiée. Cela est expliqué dans le rapport 121577 (voir les exemples).
Cette évolution est incompatible avec les extensions contenant une barre d'outils :
− créées pour OpenOffice avant la version 4.0 ;
− créées pour LibreOffice.
Ici une discussion traite de ce sujet.
Si l'extension ne comporte pas de barre d'outils, elle reste compatible.
Un développeur d'extension à barre d'outils désirant la diffuser sur les différentes versions d'OpenOffice/LibreOffice devra compiler deux versions de son extension.
Manuellement on peut bricoler le fichier oxt sorti par Extension Compiler :
− modifier AddonUI.xcu ;
− supprimer les tb*.xcu ;
− supprimer les entrées de ces fichiers tb*.xcu dans manifest.xml.
BasicAddonBuilder est lui aussi incompatible avec Apache 4.0.
Source de ces informations : Bernard Marcelly (bm92).

Exemple : Modifier acIncrSav-1.0.8.oxt (version 2)

Exemple : Modifier testFontsJTBv144.oxt (version 2)
_______________
(Une OXT ou un OXT ? Je dis "une" car sous-entendu "extension". Mais comme il est très à la mode de tout féminiser et que je suis toujours à contre-courant, à vrai dire, je m'en fiche.)
☀☀☀ Quand un "maître Capello" aura tranché, cette note devra disparaître. ☀☀☀
Dernière modification par Alain de La Chaume le 10 juin 2013 07:36, modifié 8 fois.
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
Messages : 1527
Inscription : 28 sept. 2008 14:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Modifier acIncrSav-1.0.8.oxt (version 2)

Message par Alain de La Chaume »

Modifier acIncrSav-1.0.8.oxt (tuto version 2)
Le code de l'extension n'ayant pas été modifié, son numéro de version ne change pas.
Seul le procédé de création de la barre d'outils étant différent et spécifique à AOO version 4,
le nom du fichier OXT et le commentaire apparaissant dans le gestionnaire d'extensions me semblent aujourd'hui suffisants pour indiquer cette variante.

Dupliquer l'OXT
Copier acIncrSav-1.0.8.oxt vers acIncrSav-1.0.8_aoo.zip
Sur certains systèmes, renommer le fichier OXT en ZIP peut faciliter l'extraction de son contenu.

Extraire le contenu de l'OXT
Sur (x)Ubuntu : clic droit > Extraire ici

Dans le dossier généré par l'extraction (acIncrSav-1.0.8_aoo)...
Supprimer le dossier WindowState et ses fichiers tb*.xcu
Modifier manifest.xml (dossier META-INF)
Supprimer toutes les références aux fichiers supprimés ci-avant.
  manifest.xml original
<?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.package-bundle-description"
      manifest:full-path="Tooltips/tip-fr.txt" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.basic-library"
      manifest:full-path="acIncrSav/" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
      manifest:full-path="WindowState/tbWriter.xcu" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
      manifest:full-path="WindowState/tbWriterWeb.xcu" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
      manifest:full-path="WindowState/tbWriterGlobal.xcu" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
      manifest:full-path="WindowState/tbCalc.xcu" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
      manifest:full-path="WindowState/tbDraw.xcu" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
      manifest:full-path="WindowState/tbImpress.xcu" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
      manifest:full-path="WindowState/tbMath.xcu" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
      manifest:full-path="WindowState/tbChart.xcu" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
      manifest:full-path="WindowState/tbBase.xcu" />

   <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
      manifest:full-path="AddonUI.xcu" />
</manifest:manifest>

  manifest.xml modifié
<?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.package-bundle-description"
      manifest:full-path="Tooltips/tip-fr.txt" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.basic-library"
      manifest:full-path="acIncrSav/" />
   <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
      manifest:full-path="AddonUI.xcu" />
</manifest:manifest>

Modifier descr-fr.txt (dossier Descriptions)
Indiquer ici qu'il s'agit d'une version spécifique pour AOO 4.0.0
(Alain de La Chaume, mai 2013, spécifique AOO-4.0.0)
Effectuer des sauvegardes, numérotées automatiquement, dans un sous-dossier nommé "zzSauveIncr"

Modifier AddonUI.xcu
  AddonUI.xcu original
<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 oor:name="Addons" oor:package="org.openoffice.Office">
   <node oor:name="AddonUI">
      <node oor:name="OfficeToolBar">
         <node oor:name="org.openoffice.alaindelachaume.acincrsav" oor:op="replace">
            <node oor:name="N001" oor:op="replace">
               <prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument,com.sun.star.text.GlobalDocument,com.sun.star.sheet.SpreadsheetDocument,com.sun.star.drawing.DrawingDocument,com.sun.star.presentation.PresentationDocument,com.sun.star.formula.FormulaProperties,com.sun.star.chart.ChartDocument,com.sun.star.sdb.OfficeDatabaseDocument</value>
               </prop>
               <prop oor:name="Title" oor:type="xs:string">
                  <value xml:lang="fr">acIncrSav 1.0.8</value>
               </prop>
               <prop oor:name="URL" oor:type="xs:string">
                  <value>vnd.sun.star.script:acIncrSav.aMain.main?language=Basic&location=application</value>
               </prop>
               <prop oor:name="Target" oor:type="xs:string">
                  <value>_self</value>
               </prop>
            </node>
         </node>
      </node>
      <node oor:name="AddonMenu">
         <node oor:name="org.openoffice.alaindelachaume.acincrsav.N001" oor:op="replace">
            <prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument,com.sun.star.text.GlobalDocument,com.sun.star.sheet.SpreadsheetDocument,com.sun.star.drawing.DrawingDocument,com.sun.star.presentation.PresentationDocument,com.sun.star.formula.FormulaProperties,com.sun.star.chart.ChartDocument,com.sun.star.sdb.OfficeDatabaseDocument</value>
            </prop>
            <prop oor:name="Title" oor:type="xs:string">
               <value xml:lang="fr-FR">acIncrSav 1.0.8</value>
            </prop>
            <prop oor:name="URL" oor:type="xs:string">
               <value>vnd.sun.star.script:acIncrSav.aMain.main?language=Basic&location=application</value>
            </prop>
            <prop oor:name="Target" oor:type="xs:string">
               <value>_self</value>
            </prop>
         </node>
      </node>
      <node oor:name="Images">
         <node oor:name="org.openoffice.alaindelachaume.acincrsav.N001" oor:op="replace">
            <prop oor:name="URL" oor:type="xs:string">
               <value>vnd.sun.star.script:acIncrSav.aMain.main?language=Basic&location=application</value>
            </prop>
            <node oor:name="UserDefinedImages">
               <prop oor:name="ImageSmallURL" oor:type="xs:string">
                  <value>%origin%/icones/icone_16.png</value>
               </prop>
               <prop oor:name="ImageBigURL" oor:type="xs:string">
                  <value>%origin%/icones/icone_26.png</value>
               </prop>
            </node>
         </node>
      </node>
   </node>
</oor:component-data>

  AddonUI.xcu modifié
<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
 oor:name="Addons" oor:package="org.openoffice.Office">
   <node oor:name="AddonUI">
      <node oor:name="OfficeToolBar">
         <node oor:name="org.openoffice.alaindelachaume.acincrsav
.aoo.Toolbar1" oor:op="replace">
                <prop oor:name="Title" oor:type="xs:string" oor:localized="true">
                    <value xml:lang="fr">acSauvegarde++ 1.0.8</value>
                    <value xml:lang="en-US">acIncrSave++ 1.0.8</value>
                 </prop>
            <node oor:name="ToolBarItems">

            <node oor:name="N001" oor:op="replace">
               <prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument,com.sun.star.text.GlobalDocument,com.sun.star.sheet.SpreadsheetDocument,com.sun.star.drawing.DrawingDocument,com.sun.star.presentation.PresentationDocument,com.sun.star.formula.FormulaProperties,com.sun.star.chart.ChartDocument,com.sun.star.sdb.OfficeDatabaseDocument</value>
               </prop>
               <prop oor:name="Title" oor:type="xs:string">
                  <value xml:lang="fr">acIncrSav 1.0.8</value>
               </prop>
               <prop oor:name="URL" oor:type="xs:string">
                  <value>vnd.sun.star.script:acIncrSav.aMain.main?language=Basic&location=application</value>
               </prop>
               <prop oor:name="Target" oor:type="xs:string">
                  <value>_self</value>
               </prop>
            </node>
            </node>
         </node>
      </node>
      <node oor:name="AddonMenu">
         <node oor:name="org.openoffice.alaindelachaume.acincrsav.N001" oor:op="replace">
            <prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument,com.sun.star.text.GlobalDocument,com.sun.star.sheet.SpreadsheetDocument,com.sun.star.drawing.DrawingDocument,com.sun.star.presentation.PresentationDocument,com.sun.star.formula.FormulaProperties,com.sun.star.chart.ChartDocument,com.sun.star.sdb.OfficeDatabaseDocument</value>
            </prop>
            <prop oor:name="Title" oor:type="xs:string">
               <value xml:lang="fr-FR">acIncrSav 1.0.8</value>
            </prop>
            <prop oor:name="URL" oor:type="xs:string">
               <value>vnd.sun.star.script:acIncrSav.aMain.main?language=Basic&location=application</value>
            </prop>
            <prop oor:name="Target" oor:type="xs:string">
               <value>_self</value>
            </prop>
         </node>
      </node>
      <node oor:name="Images">
         <node oor:name="org.openoffice.alaindelachaume.acincrsav.N001" oor:op="replace">
            <prop oor:name="URL" oor:type="xs:string">
               <value>vnd.sun.star.script:acIncrSav.aMain.main?language=Basic&location=application</value>
            </prop>
            <node oor:name="UserDefinedImages">
               <prop oor:name="ImageSmallURL" oor:type="xs:string">
                  <value>%origin%/icones/icone_16.png</value>
               </prop>
               <prop oor:name="ImageBigURL" oor:type="xs:string">
                  <value>%origin%/icones/icone_26.png</value>
               </prop>
            </node>
         </node>
      </node>
   </node>
</oor:component-data>


Recréer une archive (un dossier compressé)
Sélectionner tous les éléments du dossier généré par l'extraction (acIncrSav-1.0.8_aoo)
et créer une archive zip.
Et enfin renommer le fichier zip en acIncrSav-1.0.8_aoo.oxt
Dernière modification par Alain de La Chaume le 10 juin 2013 07:35, modifié 1 fois.
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
Messages : 1527
Inscription : 28 sept. 2008 14:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Exemple : Modifier testFontsJTBv144.oxt (version 2)

Message par Alain de La Chaume »

Modifier testFontsJTBv144.oxt (tuto version 2)

Dupliquer l'OXT
Copier testFontsJTBv144.oxt vers testFontsJTBv144_aoo.zip
Sur certains systèmes, renommer le fichier OXT en ZIP peut faciliter l'extraction de son contenu.

Extraire le contenu de l'OXT
Sur (x)Ubuntu : clic droit > Extraire ici

Dans le dossier généré par l'extraction (testFontsJTBv144_aoo)...
− Supprimer *WindowState.xcu
Supprimer WriterGlobalWindowState.xcu, WriterWebWindowState.xcu et WriterWindowState.xcu.
Modifier manifest.xml (dossier META-INF)
Supprimer toutes les références aux fichiers supprimés ci-avant.
  manifest.xml original
<?xml version="1.0" encoding="UTF-8"?>
<manifest:manifest>

 <manifest:file-entry manifest:full-path="WriterWindowState.xcu" manifest:media-type="application/vnd.sun.star.configuration-data"/>
 <manifest:file-entry manifest:full-path="WriterWebWindowState.xcu" manifest:media-type="application/vnd.sun.star.configuration-data"/>

 <manifest:file-entry manifest:full-path="addon.xcu" manifest:media-type="application/vnd.sun.star.configuration-data"/>
 <manifest:file-entry manifest:full-path="testFontsJTB/" manifest:media-type="application/vnd.sun.star.basic-library"/>
</manifest:manifest>

  manifest.xml modifié
<?xml version="1.0" encoding="UTF-8"?>
<manifest:manifest>
 <manifest:file-entry manifest:full-path="addon.xcu" manifest:media-type="application/vnd.sun.star.configuration-data"/>
 <manifest:file-entry manifest:full-path="testFontsJTB/" manifest:media-type="application/vnd.sun.star.basic-library"/>
</manifest:manifest>

Modifier addon.xcu
  addon.xcu original
<?xml version='1.0' encoding='UTF-8'?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Addons" oor:package="org.openoffice.Office">
  <node oor:name="AddonUI">
    <node oor:name="OfficeToolBar">
      <node oor:name="name.TomBil.addon.testFontsJTB" oor:op="replace">
        <node oor:name="btn01" oor:op="replace">
          <prop oor:name="Context" oor:type="xs:string">
            <value>com.sun.star.text.GlobalDocument,com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
          </prop>
          <prop oor:name="Title" oor:type="xs:string">
            <value xml:lang="en">Test of missing fonts</value>
            <value xml:lang="cs">Test chybějících fontů</value>
            <value xml:lang="de">Statistik der verwendeten Fonts</value>
            <value xml:lang="fr">Statistiques des polices utilisées</value>
          </prop>
          <prop oor:name="URL" oor:type="xs:string">
            <value>macro:///testFontsJTB.m_TestFonts.TestFontsFaces</value>
          </prop>
          <prop oor:name="Target" oor:type="xs:string">
            <value>_self</value>
          </prop>
          <prop oor:name="ImageIdentifier" oor:type="xs:string">
            <value>%origin%/testFontsJTB/testfont</value>
          </prop>
        </node>
      </node>
    </node>
  </node>
</oor:component-data>

  addon.xcu modifié
<?xml version='1.0' encoding='UTF-8'?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Addons" oor:package="org.openoffice.Office">
  <node oor:name="AddonUI">
    <node oor:name="OfficeToolBar">
      <node oor:name="name.TomBil.addon.testFontsJTB
.aoo.Toolbar1" oor:op="replace">
                <prop oor:name="Title" oor:type="xs:string" oor:localized="true">
                  <value xml:lang="en">Test of missing fonts</value>
                  <value xml:lang="cs">Test chybějících fontů</value>
                  <value xml:lang="de">Statistik der verwendeten Fonts</value>
                  <value xml:lang="fr">Statistiques des polices utilisées</value>
                </prop>
        <node oor:name="ToolBarItems">

        <node oor:name="btn01" oor:op="replace">
          <prop oor:name="Context" oor:type="xs:string">
            <value>com.sun.star.text.GlobalDocument,com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
          </prop>
          <prop oor:name="Title" oor:type="xs:string">
            <value xml:lang="en">Test of missing fonts</value>
            <value xml:lang="cs">Test chybějících fontů</value>
            <value xml:lang="de">Statistik der verwendeten Fonts</value>
            <value xml:lang="fr">Statistiques des polices utilisées</value>
          </prop>
          <prop oor:name="URL" oor:type="xs:string">
            <value>macro:///testFontsJTB.m_TestFonts.TestFontsFaces</value>
          </prop>
          <prop oor:name="Target" oor:type="xs:string">
            <value>_self</value>
          </prop>
          <prop oor:name="ImageIdentifier" oor:type="xs:string">
            <value>%origin%/testFontsJTB/testfont</value>
          </prop>
        </node>
        </node>
      </node>
    </node>
  </node>
</oor:component-data>


Recréer une archive (un dossier compressé)
Sélectionner tous les éléments du dossier généré par l'extraction (testFontsJTBv144_aoo)
et créer une archive zip.
Et enfin renommer le fichier zip en testFontsJTBv144_aoo.oxt
Pour cette OXT, seul le nom du fichier indique qu'il s'agit d'une version spécifique destinée à Apache OpenOffice version => 4.0.0.
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Répondre