Dynamic List Content

  • @blauesgreen

    kann ich so nicht bestätigen.


    Keine target Parameterübergabe und dementsprechend target="" im content Pfad und es geht wie es soll.

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

  • @blauesgreen

    kann ich so nicht bestätigen.


    Keine target Parameterübergabe und dementsprechend target="" im content Pfad und es geht wie es soll.

    Ja, target leer lassen geht, bei den oben genannten.
    Dein Beispiel zeigt Kanäle.
    Wie oben geschrieben funktionieren die bei mir auch ohne target.
    Der Rest aus dem pvr Bereich aber nicht. Recordings, Timer.
    Timer funktioniert aber auch nicht, wenn ein target gesetzt ist.
    Recordings geht mit dem target aus meinem Code oben.
    Setze ich aber ein Addonpfad ein, geht es nicht ohne target.
    Man kann scheinbar nicht generell sagen, dass es leer sein kann.
    Hast du in deinen widgets auch eins für die TV Aufnahmen (recordings)?
    Wie hast du es da gemacht?
    bg

  • Habs gerade mit "pvr://recordings/tv/active/" und ohne target probiert. Geht 1a.

    Timers mit pvr://timers/tv/timers kannste zwar einbinden, aber nicht sinnvoll nutzen.

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

  • Nene, der der spielt die Aufnahme direkt ab.
    Ich hab kein Kodi 18 im Einsatz und fass das auch erst an wenns soweit ist.

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

  • Nene, der der spielt die Aufnahme direkt ab.
    Ich hab kein Kodi 18 im Einsatz und fass das auch erst an wenns soweit ist.

    ich habe in meinen Aufnahmen noch unterverzeichnisse! deshalb funktioniert das so nicht. wenn er direkt die aufnahmen im widget anzeigen würde, dann ginge auch das onclick ohne target :D
    also scheint mein problem sich ausschliesslich auf verzeichnisse zu beziehen, auch wenn sie in addons liegen.
    bg

  • Du könntest custom onclicks machen und den ListItem.Folderpath nutzen.
    <onclick condition="ListItem.IsFolder">ActivateWindow($INFO[ListItem.Folderpath])</onclick>

    Nicht getestet, sollte aber eigentlich funktionieren. Dynamic Content Lists lassen sich wunderbar mit eigenen onclicks versehen.

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

  • Du könntest custom onclicks machen und den ListItem.Folderpath nutzen.
    <onclick condition="ListItem.IsFolder">ActivateWindow($INFO[ListItem.Folderpath])</onclick>

    Nicht getestet, sollte aber eigentlich funktionieren. Dynamic Content Lists lassen sich wunderbar mit eigenen onclicks versehen.

    So hab ich es ja für timers schon gemacht, für mehr brauche ich das onclick nicht, bisher.
    Die anderen targets mache ich dann vom listitem.folderpath abhängig.
    Ist nur doppeltgemoppelter Mist.
    Ich muss jetzt auch noch zwischen Video addons und den anderen unterscheiden. Aber mal heißt ein Video addon plugin://Service....
    Und mal addon://Video... Und mal xy bienenschiss.
    Aber zu 99% hab ich ja jetzt schon abgedeckt.
    Wäre nur schön, so wie Marc es schrieb, wenn man den eindeutigen Typ auslesen könnte, auch innerhalb eines addons oder pvr Verzeichnisses.
    bg

  • Ich bin nie angekleckert gekommen ksooo :) Durch Embuary bin ich leider gezwungen noch auf Krypton zu bleiben. Vor RC krieg ich unseren Dev nicht dazu den Support auszuweiten. Versuchs schon immer mit dem Wortlaut "Feature Freeze", aber leider konnte ich aus keinen Git commit rauslesen ob es schon soweit ist für Leia.

    "I don't caretaker"

    SKIN: Embuary - Donate: HIER de Hoibe bestellen, merci :thumbup:

    Devices: Nvidia Shield + Fire TV 4k --- NAS: i3 6100 | 8GB | 15tb | OMV4 | Emby --- TV: Sony 55" XF9005 + LG 47" LM640S | 114x Adalight | Yamaha 683

  • Ich muss jetzt auch noch zwischen Video addons und den anderen unterscheiden. Aber mal heißt ein Video addon plugin://Service....
    Und mal addon://Video... Und mal xy bienenschiss.

    Hey,

    Dir geht um dein Dashboard oder? Das ist eben der Grund warum ich gleich einen eigenen WidgetType als string mit der Widgetauswahl setzen würde.
    Da du ja Scriptunabhängig bist und nur durch deine Skinsetting Anzahl etwas eingeschränkt bist, finde ich diese Lösung einfach sauberer.
    Kein Pfad bei dem und DBType beim anderen aber nur wenn Target nicht das usw.. So ist das sauber und Bombensicher getrennt wenn man
    vom "Einsteller" etwas Disziplin verlangt (Manches muss man dann eben trennen auch wenns nicht nötig wäre, so trenn ich z.B. Film und Serienplaylisten mit zwei Buttons).

    Ich mach das ja anders als du:

    Code
    <item>
    		<label>$LOCALIZE[1038]</label>
    		<onclick>Skin.SetString($INFO[Window(Home).Property(WidgetPath)],addons://sources/audio/)</onclick>
    		<onclick>Skin.SetString($INFO[Window(Home).Property(WidgetLabel)],$LOCALIZE[1038])</onclick>
    		<onclick>Skin.SetString($INFO[Window(Home).Property(WidgetTarget)],music)</onclick>
    		<onclick>Skin.SetString($INFO[Window(Home).Property(WidgetLayout)],Thumb)</onclick>
    		<onclick>Dialog.Close(1124)</onclick>
    		<visible>String.IsEqual(Window(home).Property(WidgetLayer),Addons)</visible>
    	</item>

    So hab ich mit Target einen fixen String der Bomebensicher geht und mit Layout eine Option ein Layout zu bestimmen.
    Was würde passieren wenn den click immer gleich im Setting als string mitgibst?

    Ich weiß natürlich nicht ob du schon 1000 Settings hast im skin, jeder string ist ja eins mehr, aber sowas wie !String.IsEmpty(skin.string(Widegtclick)) für alle die Probleme machen wäre das nichts? Oder ignoriert er dann die "Kodiclicks" als zweiten CLick für die die ein String.IsEmpty haben..

    Grüße

  • Hey,
    Dir geht um dein Dashboard oder? Das ist eben der Grund warum ich gleich einen eigenen WidgetType als string mit der Widgetauswahl setzen würde.
    Da du ja Scriptunabhängig bist und nur durch deine Skinsetting Anzahl etwas eingeschränkt bist, finde ich diese Lösung einfach sauberer.
    Kein Pfad bei dem und DBType beim anderen aber nur wenn Target nicht das usw.. So ist das sauber und Bombensicher getrennt wenn man
    vom "Einsteller" etwas Disziplin verlangt (Manches muss man dann eben trennen auch wenns nicht nötig wäre, so trenn ich z.B. Film und Serienplaylisten mit zwei Buttons).

    Ich mach das ja anders als du:

    Code
    <item>
    		<label>$LOCALIZE[1038]</label>
    		<onclick>Skin.SetString($INFO[Window(Home).Property(WidgetPath)],addons://sources/audio/)</onclick>
    		<onclick>Skin.SetString($INFO[Window(Home).Property(WidgetLabel)],$LOCALIZE[1038])</onclick>
    		<onclick>Skin.SetString($INFO[Window(Home).Property(WidgetTarget)],music)</onclick>
    		<onclick>Skin.SetString($INFO[Window(Home).Property(WidgetLayout)],Thumb)</onclick>
    		<onclick>Dialog.Close(1124)</onclick>
    		<visible>String.IsEqual(Window(home).Property(WidgetLayer),Addons)</visible>
    	</item>

    So hab ich mit Target einen fixen String der Bomebensicher geht und mit Layout eine Option ein Layout zu bestimmen.
    Was würde passieren wenn den click immer gleich im Setting als string mitgibst?

    Ich weiß natürlich nicht ob du schon 1000 Settings hast im skin, jeder string ist ja eins mehr, aber sowas wie !String.IsEmpty(skin.string(Widegtclick)) für alle die Probleme machen wäre das nichts? Oder ignoriert er dann die "Kodiclicks" als zweiten CLick für die die ein String.IsEmpty haben..

    Grüße

    Moin.
    Es geht um die Widgets. Im Dashboard habe ich nur Addons bzw stimmt ja gar nicht ;). Da sind ja auch auch noch so ne Art Widgets, muss ich mir ja gleich nochmal ansehen.
    Disziplin vom User .. klingt gut. 1000 Settings hab ich bestimmt schon, alleine für die Custombuttons+Customwidgets+Customsubmenüs :D
    Und da ich ja mit dem dynamsichen content arbeiten möchte, spart ja auch zig Zeilen an Code, muss ich mich eben um das TARGET kümmern.
    Wobei ich denke, ich bin schon auf dem richtigen Weg. Sieht alles etwas kompliziert aus im Code, aber es läuft gut. Ist halt sehr verschachtelt, damit ich sinnvoll code. Wobei ich eigentlich keine Ahnung vom coden habe :D
    Dazu kommt, dass es ja bestimmte Funktionen in Kodi gibt, die ich ja dann mit den ganzen Propertys umgehen würde und dann auch noch jedesmal "clearen" müsste.
    Ich habe jetzt meine Variable für die TARGETS erweitert und hoffe, dass ich so alles abgedeckt habe.
    Einzig "Timers" braucht ein separates onclick. In den Addonpfaden kommt ja immer Strings wie video, audio, movie, episodes oder ähnliches. Das lese ich dann aus und mach was draus ;P
    bg

  • Hey,

    Wobei ich denke, ich bin schon auf dem richtigen Weg. Sieht alles etwas kompliziert aus im Code, aber es läuft gut. Ist halt sehr verschachtelt, damit ich sinnvoll code. Wobei ich eigentlich keine Ahnung vom coden habe

    Frag mich mal;).. Wenn ich mich Phyton Anfange Platz BJ1 jedesmal ein Äderchen oder er bekommt Nackschmerzen vom Kopfschütteln :P .

    Für unsereins als Nichtprogrammierer ist da vieles etwas Unlogisch. Man hat zwar nicht so sehr den Überblick, aber immer das Gefühl als das "etwas der Mut" fehlt.
    Im Sinne von nach ein bis drei Versionen auch mal tabula rasa machen im Skinengine. Es kommt ja immer nur was dazu oder wird erweitert, raus fällt ja fast nie was.
    Statts man nun sagt DBType war gut um die Dialoginfos auch außerhalb der Windows die kein Container.Content haben zum laufen zu bekommen, aber lasst uns das streichen oder erweitern für alle Typen..

    Es liegt klar auch an denen die es verwenden und was die coder Betrifft ist es bestimmt lang nicht so interessant wie die Knoblerei an was neuem.
    Nur wenn es dann eben DBType gibt das auch für Sets gilt, im Gegenzug aber ListItem.IsCollection weiter besteht wird es eben unnötig
    unübersichtlich da schnell mal alle Stellen zu finden die Sets betreffen.
    Klar zwingt einen keiner dazu, es weiter zu verwenden, es geht aber alles in die Richtung das vieles durch ständig Anpassung und Erweiterungen für das was fehlt Extrem verschachtelt wurde.
    Sualfred hat das mal irgendwo mit einem Kartenhaus verglich was ich äußerst passende finde.

    Vor allem weil es dann ja oft vorkommt das das eine nur dort geht und das andere woanders.
    Ich hab ja den direkten Vergleich - du glaubst nicht wie super einfach das alles ist wenn man den Anspruch auf Vollständigkeit nicht hat.
    Da ich mich ja nur um Film und Serie kümmern muss fällt da soviel an "wenns und abers" weg das man den Code super lesen kann ohne über 3 Ecken und 5 Wenns zu stolpern
    bis einem Schwummrig wird ;) .

    Und es ist auch um einiges flotter wenn nicht jedesmal noch x conditions durchgeorgelt werden müssen weil ein einzges Ding wie z.B. Timer halt aus dem Rahmen fällt.

    Und Kompliziert wirds ja schnell wenn man alles abdecken will. Du sagst jetzt "sieht schlimmer aus als es ist", aber warte man ein halbes Jahr ohne reingesehen zu haben.
    Dann kommt einem das schnell nicht mehr so Einfach vor wenn es mal aus dem Kopf ist weil man nicht jeden Tag auf den Code sieht ;) .

    Mein Home auf Strings basiert war irgendwann so kompliziert das ich nicht mehr wusste was was macht mit GetLabel(ID) hier und VAR da.
    Da musste ich irgendwann von vorne Anfangen um Kleinigkeiten zu ändern.
    Aber Hauptsache es läuft ist ja die Devise im Skincode irgendwie schon immer gewesen.

    Grüße

Jetzt mitmachen!

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