Ich bin mir mit der syntax auch nicht immer sicher...aber im skin-dev thread im original forum kriegst du da bestimmt ne antwort...hitcher, jezz, igotdvds, ronie und noch ein paar andere sind da immer recht aktiv
Habe es schon im C++ source gefunden:
Sollte allerdings auch mal im wiki erklaert werden.
So bin schon weiter mit meinem AddOn. Habe es schon eingebunden. Statisch funktioniert das schon. Jetzt muss es nur noch so bauen, dass ich mit python alle skins durchgehen, von denen ich weiss an welcher Stelle ich meine Includes einfuegen muss.
Im Default confluence skin wuerde die Aenderung in IncludesCodecFlagging sein:
<include file="IncludesMediaStorageFlags.xml"/>
<include name="VideoCodecFlaggingConditions">
<include>MediaStorageFlags</include>
<control type="image">
<description>Video rez Image</description>
...
In meinem script werde ich also via xpath (ich hoffe dafuer gibts support in python) die Ersetzung in den script files machen.
Dazu muss ich wissen, in welchen files und an welcher Stelle die beiden Aenderungen reinmuessen.
Das wuerde ich mir also so vorstellen (pseudocode):
{
skin: "skin.confluence",
changes: [
{
file: "IncludesCodecFlagging",
at: "include[@name='VideoCodecFlaggingConditions']"
}
]
}
Das wuerde im file "special://home/addons/skin.confluence/IncludesCodecFlagging.xml" die Zeile "<include file='IncludesMediaStorageFlags.xml'/>" direkt unter "<includes>" einfuegen. Und dann noch die Zeile "<include>MediaStorageFlags</include>" direct als child von "<include name="VideoCodecFlaggingConditions">".
Momentan ist es auch noch notwendig, mein "IncludesMediaStorageFlags.xml" welches so aussieht:
<includes>
<include name="MediaStorageFlagsBase">
<width>90</width>
<height>33</height>
</include>
<include name="MediaStorageFlags">
<control type="image">
<include>MediaStorageFlagsBase</include>
<texture fallback="special://home/addons/script.video.media-storage-flags/resources/media/01.png">skin/media/flags/storage/01.png</texture>
<visible>substring(ListItem.FilenameAndPath,/media/HD01)</visible>
</control>
<control type="image">
<include>MediaStorageFlagsBase</include>
<texture fallback="special://home/addons/script.video.media-storage-flags/resources/media/02.png">skin/media/flags/storage/02.png</texture>
<visible>substring(ListItem.FilenameAndPath,/media/HD02)</visible>
</control>
<control type="image">
<include>MediaStorageFlagsBase</include>
<texture fallback="special://home/addons/script.video.media-storage-flags/resources/media/03.png">skin/media/flags/storage/03.png</texture>
<visible>substring(ListItem.FilenameAndPath,/media/HD03)</visible>
</control>
<control type="image">
<include>MediaStorageFlagsBase</include>
<texture fallback="special://home/addons/script.video.media-storage-flags/resources/media/04.png">skin/media/flags/storage/04.png</texture>
<visible>substring(ListItem.FilenameAndPath,/media/HD04)</visible>
</control>
</include>
</includes>
Alles anzeigen
in den jeweilen scripts default ordner zu kopieren, weil das file attribute nur aus dem skin folder includes nachladen kann. Ich habe dazu schon einen feature request aufgemacht, dass "include file='special://...'" auch moeglich sein wird.
Wenn der Skin eigene images fuer storage tagging bereitstellt, werden diese benutzt. Ansonsten die standard aus dem addon verwendet.
Ich versuche jetzt gerade die visible conditions via setting einstellbar zu machen, sodass der Benutzer da sein eigenes Prefix waehlen kann.
Dafuer waere es notwendig, dass mein script beim aendern der settings erneut aufgerufen wird. Ist sowas moeglich?
In Zukunft koennte ich mir vorstellen, dass die Skin Developer die beiden notwendigen include Zeilen schon per default in die skins einbauen, und via "condition=system.hasaddon(script.video.media-storage-flags)" togglen.
Das wuerde mir das ganze scripting erleichtern, weil ich dann nicht mehr die skin files aendern muesste.
Ansonsten koennte ich mir auch vorstellen, dass auf meinem github repo die oben im pseudocode geschriebenen settings fuer jeden skin bereitgelegt werden koennten. Und mein script laedt dann die fuer das aktuelle skin notwendige "patch Anleitung" herunter.
Aber erstmal funktioniert das primaer Danke fuer Eure Hilfe schonmal!