Mehrfach verwendeter Code ist eine feine Sache, das spart Platz, Lade- und Rechenzeit. Der Estuary verwendet sowas z.B. in Form eines einmal definierten Panels, welches zur Ansicht der zuletzt gesehenen Kanäle, der Aufnahmen usw. genutzt wird. Bumblebee und ich nutzen diese auch zur Anzeige der German Telecast Offers. Eigentlich eine feine Sache, wenn...
Ich bekomme es nicht hin, einen onclick mit entsprechender Condition zu formulieren. onclick (ohne condition) geht generell, auch condition="true" oder condition="false" funktioniert (oder eben auch nicht). Ich möchte den onclick aber nur auslösen, wenn eine betsimmte Bedingung erfüllt ist, die da sein könnten:
- Panel hat die id=12350 und kann auch per Parameter an die Liste übergeben werden
- Panel wird von einem Addon bestückt, welches ebenfalls per Parameter aus der Home.xml übergeben wird usw. usf.
Nur irgendwie funktioniert das alles nicht???
Ich habe mal den Code fürs Panel sowie die wichtigen Stellen aus der Home.xml angefügt
Includes_Home.xml:
<include name="WidgetListChannels">
<param name="item_limit">15</param>
<param name="icon">$INFO[ListItem.Icon]</param>
<param name="label">$INFO[ListItem.Label]</param>
<param name="label2">$INFO[ListItem.Title]</param>
<definition>
<param name="addon">$PARAM[addon_name]</param>
<include content="CategoryLabel">
<param name="label">$PARAM[widget_header]</param>
<param name="list_id" value="$PARAM[list_id]"/>
</include>
<include content="BusyListSpinner">
<param name="list_id" value="$PARAM[list_id]"/>
<param name="posy" value="200"/>
</include>
<control type="panel" id="$PARAM[list_id]">
<left>0</left>
<top>120</top>
<right>0</right>
<height>430</height>
<include content="WidgetListCommon">
<param name="list_id" value="$PARAM[list_id]"/>
</include>
<visible>Integer.IsGreater(Container($PARAM[list_id]).NumItems,0) | Container($PARAM[list_id]).IsUpdating</visible>
<param name="list_id" value="$PARAM[list_id]"/>
<itemlayout width="310" height="500">
<control type="group">
<left>70</left>
<control type="image">
<width>319</width>
<height>340</height>
<texture>dialogs/dialog-bg-nobo.png</texture>
<bordertexture border="21">overlays/shadow.png</bordertexture>
<bordersize>20</bordersize>
</control>
<control type="image">
<top>43</top>
<left>38</left>
<width>245</width>
<height>200</height>
<texture fallback="DefaultTVShows.png">$PARAM[icon]</texture>
<aspectratio>keep</aspectratio>
</control>
<control type="label">
<left>42</left>
<top>247</top>
<width>245</width>
<height>70</height>
<label>$PARAM[label]</label>
<font>font12</font>
<shadowcolor>text_shadow</shadowcolor>
<align>center</align>
<aligny>top</aligny>
</control>
<control type="label">
<left>42</left>
<top>277</top>
<width>245</width>
<height>65</height>
<label>$PARAM[label2]</label>
<font>font12</font>
<shadowcolor>text_shadow</shadowcolor>
<align>center</align>
<aligny>top</aligny>
</control>
<control type="image">
<left>260</left>
<top>30</top>
<width>32</width>
<height>32</height>
<texture>$VAR[WallWatchedIconVar]</texture>
</control>
</control>
</itemlayout>
<focusedlayout width="310" height="500">
<control type="group">
<depth>DepthContentPopout</depth>
<left>70</left>
<animation type="Focus">
<effect type="zoom" start="100" end="110" time="200" tween="sine" easing="inout" center="240,100" />
</animation>
<animation type="Unfocus">
<effect type="zoom" start="110" end="100" time="200" tween="sine" easing="inout" center="240,100" />
</animation>
<control type="image">
<width>319</width>
<height>340</height>
<texture>dialogs/dialog-bg-nobo.png</texture>
<bordertexture border="21">overlays/shadow.png</bordertexture>
<bordersize>20</bordersize>
</control>
<control type="image">
<width>319</width>
<height>340</height>
<texture colordiffuse="button_focus">colors/grey.png</texture>
<bordersize>20</bordersize>
<include>Animation_FocusTextureFade</include>
</control>
<control type="image">
<top>43</top>
<left>38</left>
<width>245</width>
<height>200</height>
<texture fallback="DefaultTVShows.png">$PARAM[icon]</texture>
<aspectratio>keep</aspectratio>
</control>
<control type="label">
<left>42</left>
<top>247</top>
<width>245</width>
<height>70</height>
<label>$PARAM[label]</label>
<font>font12</font>
<shadowcolor>text_shadow</shadowcolor>
<align>center</align>
<scroll>true</scroll>
<aligny>top</aligny>
</control>
<control type="label">
<left>42</left>
<top>277</top>
<width>245</width>
<height>65</height>
<label>$PARAM[label2]</label>
<font>font12</font>
<shadowcolor>text_shadow</shadowcolor>
<align>center</align>
<scroll>true</scroll>
<aligny>top</aligny>
</control>
<control type="image">
<left>260</left>
<top>30</top>
<width>32</width>
<height>32</height>
<texture>$VAR[WallWatchedIconVar]</texture>
</control>
</control>
</focusedlayout>
<content sortby="$PARAM[sortby]" sortorder="$PARAM[sortorder]" target="$PARAM[widget_target]" limit="$PARAM[item_limit]">$PARAM[content_path]</content>
<onclick condition="String.isEqual($PARAM[addon],plugin.service.gto">RunScript(plugin.service.gto,action=infopopup&blob=$INFO[ListItem.Property(BlobID)])</onclick>
<!-- <onclick>RunScript(plugin.service.gto,action=infopopup&blob=$INFO[ListItem.Property(BlobID)])</onclick> -->
</control>
</definition>
</include>
Alles anzeigen
Home.xml
<include content="WidgetListChannels" condition="System.HasPVRAddon + System.HasAddon(plugin.service.gto)">
<param name="content_path" value="plugin://plugin.service.gto?action=getcontent&ts=$INFO[Window(Home).Property(GTO.timestamp)]"/>
<param name="widget_header" value="$ADDON[plugin.service.gto 30104]: $INFO[Window(Home).Property(GTO.Provider)]"/>
<param name="widget_target" value="pvr"/>
<param name="list_id" value="12350"/>
<param name="addon" value="plugin.service.gto"/>
<param name="label" value="$INFO[ListItem.label2]$INFO[ListItem.Property(StartTime), (,)]"/>
<param name="label2" value="$INFO[ListItem.label]"/>
</include>
Any Hints?