Skript-Konfigurationen
Skript-Konfigurationen ("Scriptable Configs") erlauben es, mittels JavaScript die Konfiguration anzupassen. Nur bestimmte Dokumentfunktionen implementieren diese Konfigurationsart und je nach Dokumentfunktion können auch andere API-Objekte zur Verfügung stehen.
Momentan findet dieses Konzept Einsatz in der Dokumentfunktion Template Distribution.
Bedingungen
Mittels dem If
-Element können Elemente eingeschränkt werden. Wie bei allen (neuen) JavaScript-APIs (z. B. Mappings oder Untervorlagen) kann via oo
-API-Objekt auf weitere Eigenschaften zugegriffen werden. Analog des Mappings kann die Bedingung als Attribut oder als Unterelement definiert sein, sowie eine Expression bzw. eine Main-Funktion besitzen:
<!-- Expression im Attribut -->
<If Condition="oo.PowerPoint.Version == 15">
...
</If>
<!-- Expression als Unterelement -->
<If>
<If.Condition>oo.PowerPoint.Version > 12</If.Condition>
...
</If>
<!-- Main-Funktion als Unterelement -->
<If>
<If.Condition>
function main()
{
return oo.PowerPoint.Version > 12;
}
</If.Condition>
...
</If>
Bedingungen können beliebig verschachtelt werden.
Beispiel
Folgende Konfiguration:
<Configuration>
<If Condition="oo.PowerPoint.Version == 14">
<Path>%APPDATA%\SomePowerpointAddin</Path>
<If Condition="oo.PowerPoint.Is32Bit">
<Registry>
<RegistryKey Root="HKCU" RegistryView="Registry32" Key="Software\Microsoft\Office\14.0\PowerPoint\AddIns\SomePowerpointAddin">
<RegistryValue Type="String" Name="Path" Expand="true">%APPDATA%\SomePowerpointAddin\SomePowerpointAddin.ppam</RegistryValue>
<RegistryValue Type="DWord" Name="AutoLoad">00000001</RegistryValue>
</RegistryKey>
</Registry>
</If>
<If Condition="oo.PowerPoint.Is64Bit">
<Registry>
<RegistryKey Root="HKCU" RegistryView="Registry64" Key="Software\Microsoft\Office\14.0\PowerPoint\AddIns\SomePowerpointAddin">
<RegistryValue Type="String" Name="Path" Expand="true">%APPDATA%\SomePowerpointAddin\SomePowerpointAddin.ppam</RegistryValue>
<RegistryValue Type="DWord" Name="AutoLoad">00000001</RegistryValue>
</RegistryKey>
</Registry>
</If>
</If>
</Configuration>
Ergibt mit API-Objekt: oo.PowerPoint.Version = 14
, oo.Is32Bit = true
und oo.Is64Bit = false
folgendes Resultat:
<Configuration>
<Path>%APPDATA%\SomePowerpointAddin</Path>
<RegistryKey Root="HKCU" RegistryView="Registry32" Key="Software\Microsoft\Office\14.0\PowerPoint\AddIns\SomePowerpointAddin">
<RegistryValue Type="String" Name="Path" Expand="true">%APPDATA%\SomePowerpointAddin\SomePowerpointAddin.ppam</RegistryValue>
<RegistryValue Type="DWord" Name="AutoLoad">00000001</RegistryValue>
</RegistryKey>
</Configuration>