Skinning-Frage

  • eventuell hab ich mich da falsch ausgedrückt...

    die 1. "Ebene" an Informationen ist ja vorhanden... das heist Bilt, und Titel werden angezeigt, der rest der informaionen müsste halt noch
    irgendwie gecodet werden...

    Die 2. "Ebene" der Informationen für das Infopanel wird ja erst nach dem Oncklick zur VErfügung gestellt

    XML
    <onclick>RunScript(plugin.program.tvhighlights,"?methode=set_details_to_home&detailurl=$INFO[Window.Property(TVHighlightsToday.1.Popup)]")</onclick>


    aber diese <onclick> auf dem item führe ich ja gar nicht aus da das InfoPanel ja schon beim focussieren des items angezeigt wird...
    Das heist das der Befehl der im Windet-include das "RunScript" ausführt nicht <onclick> sein kann nur funktioniert <onfocus> leider auch nicht...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • Ich denke damit ist das include gemeint...

    <include name="LandscapeArt">

    Also zumindest ohne das Menüscript...

    Hast du denn in den ganzen VAR´s deiner Containers die Daten eingetragen?


    Code
    $INFO[ListItem.Label] $INFO[ListItem.Label2][CR]$INFO[ListItem.Property(HighTemp),[COLOR red],[/COLOR]]$INFO[ListItem.Property(LowTemp), | [COLOR blue],[/COLOR]]

    in deinem Container wird ja offenbar dargestellt, genauso wie ListItem.Icon.. Im Rest müsste doch dann auch in die VAR noch die passenden TV Hightlight propertys oder?


    Deine Info im Container kann ja nur mit $VAR[HomeWidgetTitle2Var] was anzeigen wenn die VAR auch was enthält für das Widget..


    Aber vergib mir, das Script kenn ich ja nicht wirklich :) .

    Grüße

  • Hast du denn in den ganzen VAR´s deiner Containers die Daten eingetragen?

    nicht das ich wüsste... Ich dachete das macht er auch automatisch...

    müsste ich hier mal testen...


    Deine Info im Container kann ja nur mit $VAR[HomeWidgetTitle2Var] was anzeigen wenn die VAR auch was enthält für das Widget..

    sieht so aus:

    XML
    <variable name="HomeWidgetTitle2Var">
            <value condition="!IsEmpty(ListItem.TVShowTitle)">$INFO[ListItem.TVShowTitle]</value>
    	<value condition="!IsEmpty(ListItem.Artist)">$INFO[ListItem.Artist]</value>
    	<value condition="!IsEmpty(ListItem.AlbumArtist)">$INFO[ListItem.AlbumArtist]</value>
    	<value>$INFO[ListItem.Label]</value>
    </variable>


    btw: hast Du eine idee wie ich PVR.Demo clienten nachinstalliert bekomme? Ich hab hier auf arbeit nur ne Portable-Version und kann auf grund der Rechtevergabe am rechner Kodi nicht noch einmal drüber installieren... Ich bräuchte also irgenwas was zip was sich als Addon installieren lässt....

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

    Einmal editiert, zuletzt von sveni_lee (4. Februar 2016 um 09:25)

  • müsste ich hier mal testen...

    Na sieht man ja in deiner VAR:.. Die Fällt zurück zum ListItem.Label wenn ncihts passt. VAR´s werden immer nach unten verglichen bis zum ersten match.
    Da im letzten keine Bedingung steht ist die in dem Fall immer true..

    Und das kommt ja auch - da aber in den Restlichen VAR´s deiner "Standardwidgetcontainer" dort wahrscheinlich mit einer auf ListItem.Plot verwiesen wird, wird natürlich die Handlung nicht aus dem Widget angezeigt,
    da es dort eben ein ListItem.Property.TVHightlight irgendwas ist.

    Also müssen die doch dort rein. Nur was dir jetzt das Script dafür bereitstellt das du zum Vergleichen nutzen kannst muss dir Rantanplan sagen. Der ist da der Checker fürs Script :) .
    Im prinzip brauchst jetzt was wie bei deinem anderen Skin, das per Label oder sonst wie anzeigt welches Widget auf welchem Menüpunkt gerade aktiv ist.

    Jetzt bist wohl an dem Punkt das man sowas erst weiß wenn man es braucht, keine Ahnung ob das script so arbeiten kann oder nur die Widgets erlaubt die Kodi Items mitbringen und auf die neue
    Content Methode setzen.

    PVR.Demo wüsst ich gar nicht das es das gibt - IPTV mit ner kleinen Playliste nutze ich zuhause für Skinnen da ich kein PVR nutze..
    Nur das EPG geht seit den ersten RC Versionen irgendwie nicht mehr..
    Das ginge doch dann per zip.

    Grüße

  • PVR.Demo wüsst ich gar nicht das es das gibt - IPTV mit ner kleinen Playliste nutze ich zuhause für Skinnen da ich kein PVR nutze..
    Nur das EPG geht seit den ersten RC Versionen irgendwie nicht mehr.

    Ich hab den PVR.Demo Clienten jetzt installiert bekommen aber der hilft mir nicht weiter da damit THHighlights nicht funktioniert... hat @Jugger mir grad erklärt...

    wie muß denn die Playlist aussehen und wo gehört die dann hin?


    Und das kommt ja auch - da aber in den Restlichen VAR´s deiner "Standardwidgetcontainer" dort wahrscheinlich mit einer auf ListItem.Plot verwiesen wird, wird natürlich die Handlung nicht aus dem Widget angezeigt,
    da es dort eben ein ListItem.Property.TVHightlight irgendwas ist.

    ja, das macht jetzt Sinn für mich...
    das sollte dann das hier sein...

    XML
    <variable name="HomeWidget8001PlotVar">
    	<value condition="[!IsEmpty(Container(8001).ListItem.Artist) | !IsEmpty(Container(8001).ListItem.AlbumArtist)] + !IsEmpty(Container(8001).ListItem.Plot)">$ESCINFO[Container(8001).ListItem.Plot]</value>
    	<value condition="!IsEmpty(Container(8001).ListItem.Artist) | !IsEmpty(Container(8001).ListItem.AlbumArtist)">$ESCINFO[Container(8001).ListItem.Property(Album_Description)]</value>
    	<value condition="!IsEmpty(Container(8001).ListItem.Property(Addon.Name))">$ESCINFO[Container(8001).ListItem.Property(Addon.Description)]</value>
    	<value condition="!IsEmpty(Container(8001).ListItem.Property(HighTemp))">$INFO[Window(weather).Property(Current.Condition),$LOCALIZE[33006] ,. ]$INFO[Window(weather).Property(Current.FeelsLike),$LOCALIZE[402] ]$INFO[System.TemperatureUnits,,. ]$INFO[Window(weather).Property(Current.Humidity),$LOCALIZE[406] ,. ]$INFO[Window(weather).Property(Current.Wind),$LOCALIZE[404] ,. ]$INFO[Window(weather).Property(Current.DewPoint),$LOCALIZE[405] ]$INFO[System.TemperatureUnits,,. ]$INFO[Window(weather).Property(Current.UVIndex),$LOCALIZE[403] ,. ]$INFO[Window(weather).Property(Today.Sunrise),$LOCALIZE[33027] ,. ]$INFO[Window(weather).Property(Today.Sunset),$LOCALIZE[33028] ,.]</value>
    	<value condition="StringCompare(Container(9000).ListItem.Property(widgetTarget),pictures)"></value>
    	<value>$ESCINFO[Container(8001).ListItem.Plot]</value>
    </variable>

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • ja, das macht jetzt Sinn für mich...
    das sollte dann das hier sein...

    genau.. Jetzt brauchst irgendein property für dein Widget aus dem Script..

    Jetzt hast zwei Möglichkeiten:

    Entweder du packst es da mit rein, oder du machst nen komplett eigenen Container mit normalem Content wie vorher und steuerst sie über visibles.
    Was aber in der Navigation weil es dann immer andere ID´s hat, auch nciht so einfach ist.

    Das einfachst wird sein du packst es rein. Property kann ich dir aber nicht sagen- Müsste ja sowas sein denk ich:

    "StringCompare(Container(9000).ListItem.Property(widgetTarget),pictures)"

    Nur eben mit TVHightlights oder was du da auch reinschreibst im Setting.. Das macht dann dasselbe wie dein Control.Getlabel,xxx im anderen.

    Playliste muss ich heut Abend schauen..

    Grüße

  • Das einfachst wird sein du packst es rein. Property kann ich dir aber nicht sagen- Müsste ja sowas sein denk ich:

    "StringCompare(Container(9000).ListItem.Property(widgetTarget),pictures)"

    Nur eben mit TVHightlights oder was du da auch reinschreibst im Setting.. Das macht dann dasselbe wie dein Control.Getlabel,xxx im anderen.

    das hatte ich mir auch gedacht....

    Beispiel:

    XML
    <variable name="HomeWidget8001PlotVar">
    		<value condition="[!IsEmpty(Container(8001).ListItem.Artist) | !IsEmpty(Container(8001).ListItem.AlbumArtist)] + !IsEmpty(Container(8001).ListItem.Plot)">$ESCINFO[Container(8001).ListItem.Plot]</value>
    		<value condition="!IsEmpty(Container(8001).ListItem.Artist) | !IsEmpty(Container(8001).ListItem.AlbumArtist)">$ESCINFO[Container(8001).ListItem.Property(Album_Description)]</value>
    		<value condition="!IsEmpty(Container(8001).ListItem.Property(Addon.Name))">$ESCINFO[Container(8001).ListItem.Property(Addon.Description)]</value>
    		<value condition="!IsEmpty(Container(8001).ListItem.Property(HighTemp))">$INFO[Window(weather).Property(Current.Condition),$LOCALIZE[33006] ,. ]$INFO[Window(weather).Property(Current.FeelsLike),$LOCALIZE[402] ]$INFO[System.TemperatureUnits,,. ]$INFO[Window(weather).Property(Current.Humidity),$LOCALIZE[406] ,. ]$INFO[Window(weather).Property(Current.Wind),$LOCALIZE[404] ,. ]$INFO[Window(weather).Property(Current.DewPoint),$LOCALIZE[405] ]$INFO[System.TemperatureUnits,,. ]$INFO[Window(weather).Property(Current.UVIndex),$LOCALIZE[403] ,. ]$INFO[Window(weather).Property(Today.Sunrise),$LOCALIZE[33027] ,. ]$INFO[Window(weather).Property(Today.Sunset),$LOCALIZE[33028] ,.]</value>
    		<value condition="StringCompare(Container(9000).ListItem.Property(widgetTarget),pictures)"></value>
    		<value>$ESCINFO[Container(8001).ListItem.Plot]</value>

    meine geänderte Vriable...

    XML
    <variable name="HomeWidgetTitleVar">
    		<value condition="!IsEmpty(ListItem.Property(Addon.Name))">$INFO[ListItem.Property(Addon.Name)]</value>
    		<value condition="!IsEmpty(ListItem.Property(NextTitle)) | !IsEmpty(ListItem.Property(NextDay))">$INFO[ListItem.Property(NextDay),,. ]$INFO[ListItem.Property(NextNumber),, ]$INFO[ListItem.Property(NextTitle)]</value>
    		<value condition="!IsEmpty(ListItem.Episode) + !Stringcompare(ListItem.Label,ListItem.TVShowTitle)">$INFO[ListItem.Season,,x]$INFO[ListItem.Episode,, ]$INFO[ListItem.Title]</value>
    		<value condition="stringCompare(Conatiner(9000).ListItem.Property(widgetType),tvhighlights)">INFO[ListItem.Property(extrainfos)]</value>			
    		<value>$INFO[ListItem.Label]</value>
    	</variable>


    habe ich von hier abgeleitet:


    aber leider kein erfolg....

    "INFO[ListItem.Property(extrainfos)]" ist vorhanden... habe ich mal als default in der Variablen gesetzt und es wurde angezeigt....


    EDIT: einen Teilerfolg konnte ich schon erzielen... hatte einie Tippfehler in den StringCompare... jetzt sieht es schon etwas besser aus...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

    Einmal editiert, zuletzt von sveni_lee (4. Februar 2016 um 13:49)

  • Conatiner

    :) ..

    Gerade auch bei dritten mal gesehen..

    Sah so richtig aus ;) .

    Damit sollte es dann ja klappen oder nicht?..
    Ich machs immer so das ich sogut wie alles an Code von irgendwo kopiere, auch mal ganze Blöche wie ein Label Control,
    und immer nur das ändere was anderst ist - und selbst da such ichs oft bei Notepad++ ordnerweit und kopier es aus dem Sucheregebnis.
    Hat auch den Vorteil das die Reihenfolge der Tags dann relativ gleich ist und man so viel besser den Überblick hat:

    Da muss man sich einfach ne Regel auferlegen oder die vom Rest nehmen.
    Sowas wie erst Positionen, dann Farben, dann Label und am Ende das Visible..

    Falls es nicht kommt:

    Kopier doch wieder mal sichtbar irgendwo das

    $INFO[Conatiner(9000).ListItem.Property(widgetType)]
    ans Ende vom Home.. Dann hast schon mal ne Ahnung ob dein Widgettype überhaupt stimmt.

    Das nächste was ich dann immer mache: Die value die es betrifft an den Anfang zu setzen - also POS1 in der VAR..
    Damit kannst dann schon mal ausschließen das hier zufälligerweise schon was trifft und es nur leer ist weil es das value aber nicht gibt.

    Auch glaub ich von vorteil wäre es wenn nciht alles genau gleich nennst :) .
    Im Fall das mal wissen willst wo welche info herkommt tut man sich immer leichter beim suchen wenn nicht alles TVHightlights heißt.

    Grüße

  • jepp... hat jetzt soweit geklappt...

    Externer Inhalt i.imgur.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    allerdings muß ich das Widget immer einmal anclicken damit das Info-Panel befüllt wird....
    da muss es doch noch eine andere möglichkeit geben...

    die TVHighLifgts.Info... Propertys werden immer erst nach dem <onclick> gesetzt....
    darum hatte ich ab einen <onfocus> gedacht aber das klappt irgendwie nicht....

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • die TVHighLifgts.Info... Propertys werden immer erst nach dem <onclick> gesetzt....

    Also dieser Aufbau kommt bei uns immer auch ohne aufurf durch klick..
    Mastermodus

    Liegt aber nicht nur an deinem Visible?
    Weiter vorne war das mal drin mit einem Control.GetLabel.. Je nachdem wer da wann die VAR oder was auch immer füllt liegts vielleicht daran?

    Bei Klick gibts ja andere Property die in dem eigenen Fenster des Addons kommen.. Oder hast du das angepasst? Das kommt immer erst mit Klick..

    Grüße

  • also die Properties aus der "ersten Instanz" kommen ohne klick!

    XML
    <property name="channel">$INFO[Window(home).Property(TVHighlightsToday.1.Channel)]</property>

    die kann ich auch alle aufrufen...

    das Problem sind die, die erst im Info-Fenster kommen... die werden ja erst mit <onclick> RunScript.... gesetzt...

    Ich habe aber keine <onclick> zum Info-Fenster aufruf sondern wenn der Focus auf dem Item ist, werden die Infos aus den Property(TVHifgLifgtsToday.Info.... angezeigt... und ich weiß nicht, wie ich das Skript gestartet bekomme ohne <onclick>...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • Ich habe aber keine <onclick> zum Info-Fenster aufruf sondern wenn der Focus auf dem Item ist, werden die Infos aus den Property(TVHifgLifgtsToday.Info.... angezeigt... und ich weiß nicht, wie ich das Skript gestartet bekomme ohne <onclick>...

    Also nochmal für Langsame.. du hast nur ein Focus? Versteh ich nicht..
    Der Normale vorgang ist doch jetzt du gehst nach oben zu deinem Widgetcontainer. Scrollst dann durch die einzelnen Tips, und dann hast doch ne Klick.
    Sonst könntest in dem ja auch nix Abspielen..

    Die aus dem Fenster die werden Live beim Klick vom Addon für nur dieses Element geholt soweit ich weiß.. Du hättest also auch ohne Klick gar nichts
    anzuzeigen - aber außer dem Timer sind es ja fast die selben oder täusch ich mich?

    Grüße

  • Die aus dem Fenster die werden Live beim Klick vom Addon für nur dieses Element geholt soweit ich weiß.. Du hättest also auch ohne Klick gar nichts
    anzuzeigen - aber außer dem Timer sind es ja fast die selben oder täusch ich mich?


    ich versuche mal das ganze mit einem Screenshot zu erklären...

    Externer Inhalt i.imgur.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Also unten sind die Items also die einzelnen Highlights.... Wenn ich nach oben navigieren und ein Item in den Focus rückt, wird der obere Teil sichtbar... das ist dann sozusagen das infofenster. Der inhalt wird aber nur aktualisiert, wenn ich zusätzlich auf Enter drücke... ein Extrafenster mit noch mehr infoemationen und den Buttons Wiedergeben usw. geht auf wenn man "i" drückt...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • Dann liegt das wohl am Script.. Also bei uns sofern man EPG hat kommen die Infos gleich.. Da muss man nicht mehr Enter drücken..
    Das Visible "machen" wird wohl im Script durch ein Klick erzeugt. Vielleicht weiß Rantanplan das besser.

    Ohne hab ich ja einfach ne Group mit den Infos und häng es an ein Visible wie du im anderen hattest mit Control.GetLabel oder Container.HasFocus(xxx)
    oder sowas.

    Grüße

  • Externer Inhalt up.picr.de
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    genau das was ich dir geschickt hatte.. kommt direkt wenn ich im Menüpunkt des Widgets bin..

    Und beim Klicken auf ein Bild dann das vom Addon für Timer..

    Externer Inhalt up.picr.de
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Die includes werden dir nicht soviel bringen.. Bei uns läuft das visible ja über ein Control.GetLabel das eine VAR enthält die einen String beim Widgetsetzen mit dem Wert TVHightlight erzeugt.
    Also quasi wie bei deinem alten..

    Grüße

  • Da der rest bei uns aus einem Content kommt von kodi - also Playlisten, Datenbank übers Widget und so, müssen die ja anders sein, sonst bekomm ich ja den Content nicht rein.

    Viel vom Rest läuft schon auch mit.. Nur sind das ja solche Dinger..

    Code
    <content target="$VAR[classic_homewidget_target]">$VAR[classic_homewidget_content]</content>

    Die direkt aus einem String mit einem Widget gefüttert die normalen Infolabels nutzen..

    plugin://service.library.data.provider?type=recommendedepisodes&reload=$INFO[Window(Home).Property(recommendedepisodes)]

    Muss ichs ja extra machen.. Einen includierten Content kannst ja nicht nutzen, da die Includes nur beim Fensteraufruf geladen werden würde das Widget ja gleich bleiben.
    Irgendwo muss das bei dir ja auch extra sein..

    Grüße

  • ja, der inhalt wird auch über Variable generiert...
    sieht bei mir so aus....

    XML
    <variable name="HomeWidget8001PlotVar">
    		<value condition="StringCompare(Container(9000).ListItem.Property(widgetType),tvhighlights)">$INFO[Window(Home).Property(TVHighlightsToday.Info.Description)]</value>	
    		<value condition="[!IsEmpty(Container(8001).ListItem.Artist) | !IsEmpty(Container(8001).ListItem.AlbumArtist)] + !IsEmpty(Container(8001).ListItem.Plot)">$ESCINFO[Container(8001).ListItem.Plot]</value>
    		<value condition="!IsEmpty(Container(8001).ListItem.Artist) | !IsEmpty(Container(8001).ListItem.AlbumArtist)">$ESCINFO[Container(8001).ListItem.Property(Album_Description)]</value>
    		<value condition="!IsEmpty(Container(8001).ListItem.Property(Addon.Name))">$ESCINFO[Container(8001).ListItem.Property(Addon.Description)]</value>
    		<value condition="!IsEmpty(Container(8001).ListItem.Property(HighTemp))">$INFO[Window(weather).Property(Current.Condition),$LOCALIZE[33006] ,. ]$INFO[Window(weather).Property(Current.FeelsLike),$LOCALIZE[402] ]$INFO[System.TemperatureUnits,,. ]$INFO[Window(weather).Property(Current.Humidity),$LOCALIZE[406] ,. ]$INFO[Window(weather).Property(Current.Wind),$LOCALIZE[404] ,. ]$INFO[Window(weather).Property(Current.DewPoint),$LOCALIZE[405] ]$INFO[System.TemperatureUnits,,. ]$INFO[Window(weather).Property(Current.UVIndex),$LOCALIZE[403] ,. ]$INFO[Window(weather).Property(Today.Sunrise),$LOCALIZE[33027] ,. ]$INFO[Window(weather).Property(Today.Sunset),$LOCALIZE[33028] ,.]</value>
    		<value condition="StringCompare(Container(9000).ListItem.Property(widgetTarget),pictures)"></value>
    		<value>$ESCINFO[Container(8001).ListItem.Plot]</value>
    	</variable>

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • schon klar.. nur nimmst du immer die des Windows die nur im Custom Window des Skins gehen?

    Du brauchst es doch so für den mastermodus für Item 1.. .2. für zwei usw..

    Nur diese gehen ohne das Window..
    Und genau das ist das was ich meine.. Mit einer VAR kann das ja kaum gehen - dann kommt ja immer .1 raus egal wo du bist..
    Also brauchst es doch in einem Content wie wir mit einem Visible auf die group mit StringCompare(Container(9000).ListItem.Property(widgetType),tvhighlights)..


    Grüße

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!