Sortierung der Playlist ändern.
Beiträge von `Black
-
-
Also ich habe aktuell einen pull request erstellt, mit dem das Caching/Updating optimiert wird. Mit dem Begrenzen der Anzahl schaue ich mir an, sollte kein Problem sein hinzuzufügen. Kann aber nicht versprechen, dass das alles in Gotham hinzugefügt wird.
Bzgl. der Schauspieler schaue ich mir das auch mal an, der Pfad ist offenbar leer und wird nicht richtig gesetzt.
Für das Infofenster habe ich zudem auch einen passenden PR, mit dem es dann möglich ist, <oninfo> in jedem Control zu nutzen, sofern es nicht mit einer Default-Aktion überschrieben ist. Damit kann man dann aber sehr einfach im Homescreen über info einen Dialog einblenden. Das wird aber erst nach Gotham verfügbar.
-
Wüsste jetzt auch nicht, woran das liegen könnte.
-
Ja lädt wirklich fix, deutlich schneller als über ein Script. Aktuell lädt er halt immer noch bei jedem Windowopen alles neu, aber das wird auch noch besser werden, möglicherweise aber nicht mehr in Gotham.
Rantanplan-1
Da dürfte es keine Unterschied geben. Lässt du aber randomandlastitems weg (was mMn. nicht mehr wirklich gebraucht wird) und gibst im Content einfach den Playlist-Pfad an, ist die neue Methode wesentlich schneller. -
Ja und nein. Es kommt darauf an, was man möchte. Beispielsweise "ongoing tv shows" ist nicht möglich mit einer Smartplaylist, d.h. hier braucht man auch wieder ein Script. Da gibt es von BigNoid allerdings schon eine angepasste Version, so dass man einfach <content>plugin://service.library.data.provider?type=recommendedepisodes&reload=$INFO[Window.Property(recommendedepisodes)]</content> verwenden kann.
Jugger
D.h. du hast folgendes:PHP<control type="list"> [...] <focusedlayout> <control type="image"> [...] <texture background="true">$INFO[ListItem.Art(poster)]</texture> </control> </focusedlayout> <content>videodb://recentlyaddedmovies/</content> </control>
und siehst keine Poster? -
Hast du einen aktuellen nightly build laufen? Das ist erst seit 2-3 tagen gemerged.
-
butchabay
Innerhalb eines Windows, da man natürlich über Container(id).ListItem(offest).Property auch außerhalb des Containers darauf zugreifen kann. -
Nein, kein Script. Man kann einfach einen Pfad angeben und dann wird der Inhalt in den Container geladen... man kann also einfach videodb://recentlyaddedmovies/ angeben und hat alle zuletzt hinzugefügten Filme. Für Scripts geht das auch, d.h. z.B. <content>plugin://service.library.data.provider?type=recentmovies</content>. Ich bin gerade noch dabei besseres Caching zu implementieren (aktuell wird jedes mal beim aktivieren eines Windows alles neu geladen) sowie automatisches Aktualisieren nach Datenbank-Upates.
-
Gotham (aktuelle Nightly) macht das alles super einfach:
PHP<control type="list"> [...] <content target="video">special://profile/playlists/video/playlist.xsp</content> </control>
Mehr musst du eigentlich nicht tun. Du kannst dann ganz normal alle Properties anzeigen, also ListItem.Art(poster), ListItem.Genre, ListItem.VideoCodec u.s.w.
-
Also es ist natürlich möglich, indem du dir ein Script schreibst, welches die jeweiligen Scripte herunterlädt, entpackt und in den "addons"-Ordner verschiebt. Danach z.B. noch einen Dialog einblenden mit der Aufforderung XBMC neu zu starten und man wäre fertig. Eine einfache Lösung gibt es aber nicht. Wenn du trotzdem interessiert bist, würde ich mir z.B. mal das Aeon MQ5 Extrapack anschauen.
-
-
Da gibts vieles.
Ich habe z.B. in Xperience1080 eingebaut, dass man über onback die Custom Home Items direkt editieren kann. Funktionieren tut das über eine Property, d.h. ich habe im Container
PHP<onback condition="!Skin.HasSetting(KioskMode)">SetProperty(EditTile,1)</onback> <onback condition="!Skin.HasSetting(KioskMode)">Select</onback>
und später (vereinfacht) in den Items
PHP<onclick condition="IsEmpty(Window.Property(EditTitle))">Addon starten</onclick> <onclick condition="!IsEmpty(Window.Property(EditTitle))">Addon editieren</onclick> <onclick condition="!IsEmpty(Window.Property(EditTitle))">ClearProperty(EditTile)</onclick>
Weiter kann man es z.B. nutzen, um in Grouplists herauszubekommen, ob nach links oder rechts gescrollt wurde, indem man folgendes in den einzelnen Buttons setzt:
PHP<onleft>ClearProperty(HomeMoveDirection,Home)</onleft> <onright>SetProperty(HomeMoveDirection,1,Home)</onright>
Danach kann man über IsEmpty() und !IsEmpty() Fokus-Animationen steuern.
Auch habe ich z.B. Properties, um spezielle FileBrowser Dialoge für Fanart, Poster, Banner etc. im DialogVideoInfo anzeigen zu können. Natürlich kann ich das auch alles mit Strings machen, hat aber den Nachteil, dass für jedes Setzen eine Schreiboperation auf dem Dateisystem notwendig ist (viel langsamer) und außerdem werden die Werte nur im jeweiligen, temporären Kontext gebraucht und müssen nicht dauerhaft gespeichert sein.
-
Das heisst man könnte die ganzen custom items zbs. mit SetProperty erstellen?
<onclick>SetProperty(CustomHome1)</onclick>
<onclick>Skin.SetString(CustomHome1)</onclick>und dann im home Menu:
<label>$INFO[Window(Home).Property(CustomHome1)]</label>
<visible>IsEmpty(Window.Property(CustomHome1))</visible>SetProperty macht nur dann Sinn, wenn die Werte nicht persistiert werden sollen, d.h. für custom home items ist es nicht geeignet, da diese auch nach einem Neustart noch verfügbar sein sollen. Um aber schnell und im Vergleich zu Skin.SetString() ohne Lag einen temporären Wert zu setzen, ist SetProperty() gut geeignet.
-
blauesgruen
Du hast das in deinem Eingangspost schon ganz richtig verstanden eigentlich. Mit SetProperty(key,value[,id]) wird eine neue Property für das aktive Window bzw. das spezifizierte Window gesetzt. Mit Window(id).Property(key) kann man den Wert der gesetzten Property auslesen, ClearProperty(key[,id]) setzt die Property zurück, d.h. nach ClearProperty(test,home) ist IsEmpty(Window(home).Property(test)) true. -
Das müssen die Nutzer selber deaktivieren. Deshalb gibts in meinem Skin ein fettes "Mouse not supported - please disable" als Mauszeiger.
-
ListItem.Art(fanart) gibts für Episoden nicht, du musst ListItem.Art(tvshow.fanart) nutzen.
-
Dafür gibt es den Artwork Downloader... local art aktivieren und laufen lassen, dann ist ListItem.Art(discart) verfügbar. Abgesehen davon sollte $INFO[ListItem.Path,,disc.png] definitiv funktionieren. Wenn du das außerhalb des Containers aufrufst, versuchs mit $INFO[Container(id).ListItem.Path,,disc.png].
-
Erstmal Grundsätzlich zwei Fehler im Startpost:
1. $INFO[Listitem.path,,disc.png] -> andernfalls steht dort immer mindestens disc.png -> Label wird nie leer sein
2. !IsEmpty(Control.GetLabel(77)) ist die korrekte Syntax (wurde ja schon gepostet)Das wird so aber auch nicht funktionieren, weil selbst wenn dort kein Bild vorhanden ist, steht im Label der Pfad. Mit einem Dummy-Fallback funktioniert es:
PHP
Alles anzeigen<control type="image" id="77"> [...] # Das Fallback-Image ist nur dafür da, damit man später auf dieses prüfen kann (man kann es auch anders nennen) <texture fallback="empty.png">$INFO[ListItem.Path,,disc.png]</texture> </control> # Die Animation <animation type="Conditional" condition="!StringCompare(Control.GetLabel(77),empty.png)" reversible="false"> [...] </animation>
-
Wo ist die Variable definiert? Wie gezeigt direkt unter dem Control oder an anderer Stelle in includes?
-
MCE Keyboard geht unter OpenELEC nicht! MCE Remote nutzen.