Plot soll nur für Movie Sets angezeigt werden

  • Hallo liebe Community,

    möchte gerne die Movie Set Overview auch in der Ansicht Seite (View-Slide.xml) anzeigen.
    Note: Bin kein coder, alles was ich tue ist nach dem try and error Prinzip.

    Movie-Set-Eintrag aus einer NFO-Datei:

    Code
    ...
    <set>
      <name>Avatar Filmreihe</name>
      <overview>Avatar (auch bekannt als James Cameron’s Avatar) ist ein...</overview>
    </set>
    ...


    Habe den folgenden Code aus der: ...\skin.transparency\1080p\View-Icons.xml genommen und in die ...\View-Slide.xml gepackt:

    Die <visible> Zeile habe ich selber hinzugefügt, da die Movie Set Overview nur für Movie Sets angezeigt werden soll.
    Leider bisher ohne Erfolg. Geht das überhaupt? ?(

    Gruß

    Testumgebung - OS: Ubuntu 20.04 LTS | Kodi 19.1 | skin: Rapier 12.2.26 + Transparency! (views Slide und Fanart) | für Datenbank-/ Skin Tests
    Live Umgebung - OS: Ubuntu 16.04.3 LTS | Kodi 17.6 | skin: Transparency! 10.3.0 | TV

  • Das funktioniert leider auch nicht: ...\skin.transparency\1080p\View-Slide.xml

    Code
    ...
    <!-- <visible>String.Contains(ListItem.Set,Avatar)</visible> --> <!-- Plot wird für Filme und Movie Set(s) nicht angezeigt :-( -->
    <!-- <visible>Container.Content(Sets) + !Container.Content(Movies) + !ListItem(0).IsParentFolder + !Skin.HasSetting(HideMovieCase)</visible> --> <!-- Plot wird für Filme und Movie Set(s) nicht angezeigt :-( -->
    <visible>String.Contains(ListItem.IsCollection,Avatar Filmreihe)</visible> <!-- Plot wird für Filme und Movie Set(s) nicht angezeigt :-( -->
    ...


    Mit einer Variablen habe ich dann auch noch experimentiert: ...\skin.transparency\1080p\Includes_Variables.xml

    Code
    ...
    <variable name="Movie-Set-Overview"> <!-- Neue Variable: Plot soll nur für Movie Sets angezeigt werden -->
        <value condition="!Container.Content(movies) + Container.Content(Sets) + String.IsEqual(ListItem.IsCollection,Avatar Filmreihe)">$INFO[ListItem.Plot]</value>
    </variable>
    ...


    ...\skin.transparency\1080p\View-Slide.xml

    Testumgebung - OS: Ubuntu 20.04 LTS | Kodi 19.1 | skin: Rapier 12.2.26 + Transparency! (views Slide und Fanart) | für Datenbank-/ Skin Tests
    Live Umgebung - OS: Ubuntu 16.04.3 LTS | Kodi 17.6 | skin: Transparency! 10.3.0 | TV

  • ListItem.IsCollection ist ein bool das true oder false zurückwirft. ListItem.IsCollection wäre true, !ListItem.IsCollection für alles was fals ist (movies usw..).
    Einzelne Sets Abfragen ginge bestimmt wenn man in diesem Fall ListItem.Title vergleicht mit einem fixem Wert, das kann aber global nicht funktionieren
    (ein Skinner weiß ja nicht wie deine Sets heißen).

    Im Prinzip geht man da eher von der Premisse aus wenn Plot nicht leer und EIntrag Set, dann anzeigen.
    Damit läuft das dann für alle Sets bei denen man sich die Mühe machen will und Plots einträgt.

    <visible>ListItem.IsCollection + !String.IsEmpty(ListItem.Plot)</visible> wäre jetzt EIntrag ist Set und Plot ist nicht leer.

    Ich denke das suchst du.

    Der Rest ist alles etwas kompliziert weil ich jetzt nicht ganz kapiere ob es nur bei Sets kommen soll oder Filme wenn du "<!-- Plot wird für Filme und Movie Set(s) nicht angezeigt :( -->" schreibst.
    Wenn es für weitere Contents kommen soll kann man das mit eckigen Klammern Erweitern in der Art
    <visible>[ListItem.IsCollection | Container.Content(movies)] + !String.IsEmpty(ListItem.Plot)</visible>
    Das ist dann die Kurzform für ListItem.IsCollection + !String.IsEmpty(ListItem.Plot) | Container.Content(movies) + !String.IsEmpty(ListItem.Plot)

    Ich finde das wikki da etwas Abstrakt

    https://kodi.wiki/view/Conditional_visibility


    ! = nicht

    + = und

    | = oder


    mit !Container.Content(Movies) in der VAR kommt es klar nicht bei Filmen - heißt ja Übersetzt "wenn Inhalt nicht Filme"


    Grüße

  • Vielen Dank ihr beiden, genau das war die Lösung! :thumbup:

    Beide Lösungen funktionieren:
    <visible>ListItem.IsCollection</visible>
    <visible>ListItem.IsCollection + !String.IsEmpty(ListItem.Plot)</visible>

    Hätte vielleicht auch noch etwas genauer beschreiben sollen was ich möchte:
    Der Plot soll nur angezeigt werden, wenn in der View ein Set auftaucht. Den Plot für einzelne Filme rufe ich (wenn gewünscht) über Info auf (möchte die Hintergrund-fanart nicht permanent mit Text zukleistern).

    Gruß

    Testumgebung - OS: Ubuntu 20.04 LTS | Kodi 19.1 | skin: Rapier 12.2.26 + Transparency! (views Slide und Fanart) | für Datenbank-/ Skin Tests
    Live Umgebung - OS: Ubuntu 16.04.3 LTS | Kodi 17.6 | skin: Transparency! 10.3.0 | TV

  • Hey,

    Und bedeutend einfacher als deine Versuche ;) .

    Dann würde ich das zweite nutzen - Text ist ja perse wenn er Empt ist schon invisible (außer man nutzt fallbacktext wie
    "keine Handlung verfügbar"). aber dein Hintergrund kommt sonst bei jedem Set, auch wenn der Plot mal fehlen sollte weil er unnötig ist oder man sich die Mühe nicht machen
    will für eigene Sets was zu "Erfinden".

    Dein restlicher Code sieht auch noch etwas durcheinander aus, aber die Hauptsache ist ja das die Anzeige stimmt für dich.

    Ich kenne natürlich nicht die Anzeige oder deinen ganzen Code aber so kommen doch Case und das kleine Seticon nur unter Filme und nicht in Zusammenstellungen alleine.IsCollection hat gerade den Vorteil das man damit beides Abfrühstücken kann - Sets unter Filme und nur Sets alleine.


    Wenn es so gemeint ist dann sollte das hier besser passen.
    Nur habe ich nicht den ganzen Code oder den Skin angesehen - käme die View auch bei Addoncontent würde einiges fehlen - da macht ja ein Movieset Case als fallback keinen Sinn.

    Grüße

  • Hallo @Marc0810, Sorry das ich mich erst jetzt melde, ging leider nicht früher.
    Vielen Dank für deine Mühe! :thumbup:

    Hab die Testdaten noch etwas erweitert (Movie Set mit und ohne Overview) und den Movie Set Hintergrund/Text von der Höhe angepasst.
    Dafür hab ich das Movie Set oder Teile davon mehrmals gelöscht und wieder hinzugefügt, dabei ist mir aufgefallen das die Overview nicht mehr in der Datenbank gespeichert wurde.
    Auch das entfernen der Quelle und wieder hinzufügen hat nicht geholfen. Scheint vielleicht ein bug zu sein.
    Die Overview wurde dann via 'DB Browser for SQLite' wieder eingefügt.

    Hab deinen neuen code mal ausprobiert (...\skin.transparency\1080p\View-Slide.xml):

    ... und erst dann ist mir aufgefallen, dass dieses kleine 'movieset.png' vorher gar nicht da war wenn man ein Movie Set anwählt. :sleeping:

    Bild 1: Avatar Movie Set mit Overview

    Bild 2: Avatar Movie Set geöffnet

    Anbei ist die 'View-Slide.xml' zum besseren Verständnis (die Movie Set Overview findet man in Zeile 1143 bis 1165):
    [xattach=27661]View-Slide.xml[/xattach]

    Gruß und ein schönes Wochenende!

    Dateien

    Testumgebung - OS: Ubuntu 20.04 LTS | Kodi 19.1 | skin: Rapier 12.2.26 + Transparency! (views Slide und Fanart) | für Datenbank-/ Skin Tests
    Live Umgebung - OS: Ubuntu 16.04.3 LTS | Kodi 17.6 | skin: Transparency! 10.3.0 | TV

Jetzt mitmachen!

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