von HardyH » Do, 02.04.2009 08:13
... und jetzt einmal alles komplett ...
In das "Hauptverzeichnis" der Extension eine XCU-Datei legen (Name hier: Path.xcu) mit folgendem Inhalt:
Code: Alles auswählen
<?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=[b]"Template"[/b] oor:op="fuse">
<node oor:name=[b]"InternalPaths"[/b]>
<node oor:name=[b]"%origin%/files"[/b] oor:op="fuse"/>
</node>
</node>
</node>
</oor:component-data>
Die drei fetten Einträge (klappt nicht, aber die Tags stehen noch drin) sind für diesen Kontext wohl die wichtigsten:
- "Template", bestimmt in welchem Pfad gesucht werden muss (siehe Basic-Code)
- "InternalPaths", sorgt dafür, dass dieser Pfad nicht im Optionen-Dialog erscheint
- "%origin%/files", ist das Verzeichnis innerhalb der Extension, in der die Template-Dateien liegen
Zusätzlich muss die obere Datei (Path.xcu) in die MANIFEST.XML eingetragen sein, einfach folgende Zeile zusätzlich eintragen:
Code: Alles auswählen
<manifest:file-entry manifest:full-path="Paths.xcu" manifest:media-type="application/vnd.sun.star.configuration-data"/>
und zum Schluss noch der Basic Makro-Code zur weiteren Verwendung innerhalb der Extension (hier: öffnen der Datei)
Code: Alles auswählen
REM der zweite Parameter ist der Dateiname!!!
REM hier moegliche Eintraege als erster Parameter
REM "Basic" ,"AutoCorrect", "AutoText", "Backup", "Gallery", "Graphic", "Work", "Template", "Temp"
Sub Vorlage_Oeffnen
OpenFileInPath("Template", "datei_vorlage.ott")
end Sub
Sub OpenFileInPath(pathName as String, templateFile as String)
Dim i as Integer, TextPos As Integer
Dim fullPath as String
Dim templatePfad, pfade, sep
GlobalScope.BasicLibraries.LoadLibrary("Tools")
templatePfad = GetPathSettings(pathName)
REM eigentlich unter Linux ein ":" zur Erinnerung stehen lassen!
sep = getPathSeparator()
sep = ";"
pfade = ArrayOutOfString(templatePfad, sep)
dim arg(0) as new com.sun.star.beans.PropertyValue
arg(0).Name = "AsTemplate"
arg(0).Value = True
REM oeffnet den ersten Treffer im Pfad und verlaesst die Schleife
For i = 0 to uBound(pfade)
On Error goto naechste
fullPath = pfade(i) + "/" + templateFile
if FileExists(fullPath) then
StarDesktop.loadComponentfromURL(fullPath, "_blank", 0, arg())
Exit For
end if
naechste:
next i
End Sub
Unter OO.org 2.4 klappt das hier, vieleicht hilft es mal jemanden weiter,
HardyH
... und jetzt einmal alles komplett ...
In das "Hauptverzeichnis" der Extension eine XCU-Datei legen (Name hier: Path.xcu) mit folgendem Inhalt:
[code]
<?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=[b]"Template"[/b] oor:op="fuse">
<node oor:name=[b]"InternalPaths"[/b]>
<node oor:name=[b]"%origin%/files"[/b] oor:op="fuse"/>
</node>
</node>
</node>
</oor:component-data>
[/code]
Die drei fetten Einträge (klappt nicht, aber die Tags stehen noch drin) sind für diesen Kontext wohl die wichtigsten:
- "Template", bestimmt in welchem Pfad gesucht werden muss (siehe Basic-Code)
- "InternalPaths", sorgt dafür, dass dieser Pfad nicht im Optionen-Dialog erscheint
- "%origin%/files", ist das Verzeichnis innerhalb der Extension, in der die Template-Dateien liegen
Zusätzlich muss die obere Datei (Path.xcu) in die MANIFEST.XML eingetragen sein, einfach folgende Zeile zusätzlich eintragen:
[code]<manifest:file-entry manifest:full-path="Paths.xcu" manifest:media-type="application/vnd.sun.star.configuration-data"/>[/code]
und zum Schluss noch der Basic Makro-Code zur weiteren Verwendung innerhalb der Extension (hier: öffnen der Datei)
[code]
REM der zweite Parameter ist der Dateiname!!!
REM hier moegliche Eintraege als erster Parameter
REM "Basic" ,"AutoCorrect", "AutoText", "Backup", "Gallery", "Graphic", "Work", "Template", "Temp"
Sub Vorlage_Oeffnen
OpenFileInPath("Template", "datei_vorlage.ott")
end Sub
Sub OpenFileInPath(pathName as String, templateFile as String)
Dim i as Integer, TextPos As Integer
Dim fullPath as String
Dim templatePfad, pfade, sep
GlobalScope.BasicLibraries.LoadLibrary("Tools")
templatePfad = GetPathSettings(pathName)
REM eigentlich unter Linux ein ":" zur Erinnerung stehen lassen!
sep = getPathSeparator()
sep = ";"
pfade = ArrayOutOfString(templatePfad, sep)
dim arg(0) as new com.sun.star.beans.PropertyValue
arg(0).Name = "AsTemplate"
arg(0).Value = True
REM oeffnet den ersten Treffer im Pfad und verlaesst die Schleife
For i = 0 to uBound(pfade)
On Error goto naechste
fullPath = pfade(i) + "/" + templateFile
if FileExists(fullPath) then
StarDesktop.loadComponentfromURL(fullPath, "_blank", 0, arg())
Exit For
end if
naechste:
next i
End Sub[/code]
Unter OO.org 2.4 klappt das hier, vieleicht hilft es mal jemanden weiter,
HardyH