Kodi Community Forum

Full Version: BreadcrumbsVideoVar edit
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello, I created a new movie home menu item with a node. But at the top left corner it is still displayed "Movies / Titles", "Movies / Genres", "Movies / Sets",etc... For example, instead of "Animes / Titles", "Animes / Genres" etc...

So I have to edit the BreadcrumbsVideoVar in the Variables.xml file :

<variable name="BreadcrumbsVideoVar">
    <value condition="Container.Content(movies) | String.StartsWith(container.folderpath,library://video/movies/) | String.StartsWith(container.folderpath,videodb://movies)">$LOCALIZE[20342]</value>
    <value condition="Container.Content(musicvideos) | String.StartsWith(container.folderpath,library://video/musicvideos/) | String.StartsWith(container.folderpath,videodb://musicvideos)">$LOCALIZE[20389]</value>
    <value condition="[!Container.Content(seasons) + !Container.Content(episodes)] + [Container.Content(tvshows) | String.StartsWith(container.folderpath,library://video/tvshows/) | String.StartsWith(container.folderpath,videodb://tvshows)]">$LOCALIZE[20343]</value>
    <value condition="Container.Content(seasons)"></value>
    <value condition="Container.Content(episodes)"></value>
    <value>$LOCALIZE[3]</value>
    </variable>

And especially this line : 
<value condition="Container.Content(movies) | String.StartsWith(container.folderpath,library://video/movies/) | String.StartsWith(container.folderpath,videodb://movies)">$LOCALIZE[20342]</value>
I tried some line but nothing worked...

Here are the two nodes paths :
I would like to be displayed "Movies" for the parent node : library://video/movies/
I would like to be displayed "Animes" for the parent node : library://video/anime/

Thanks
You want a new label so you must add a new entry for that label with the apprioate condition.

So I think this would do it

<value condition="String.Contains(container.folderpath,anime)">Anime</value>

Make this the first line to ensure it tries to match this before the Movies label which is the $LOCALIZE[20342]
(2022-07-23, 15:25)jjd-uk Wrote: [ -> ]You want a new label so you must add a new entry for that label with the apprioate condition.

So I think this would do it

<value condition="String.Contains(container.folderpath,anime)">Anime</value>

Make this the first line to ensure it tries to match this before the Movies label which is the $LOCALIZE[20342]
I tried to delete the first line :
<value condition="Container.Content(movies) | String.StartsWith(container.folderpath,library://video/movies/) | String.StartsWith(container.folderpath,videodb://movies)">$LOCALIZE[20342]</value>
and replace it by 
<value condition="String.Contains(container.folderpath,anime)">Anime</value>
just to see if it works but even if I removed first line it doesn't work, it's not written "Anime / Titles" or "Movies / Titles" but "Videos / Titles"
Strange because this works for me

	<variable name="BreadcrumbsVideoVar">
<value condition="String.Contains(container.folderpath,animation)">Anime</value>
<value condition="Container.Content(movies) | String.StartsWith(container.folderpath,library://video/movies/) | String.StartsWith(container.folderpath,videodb://movies)">$LOCALIZE[20342]</value>
<value condition="Container.Content(musicvideos) | String.StartsWith(container.folderpath,library://video/musicvideos/) | String.StartsWith(container.folderpath,videodb://musicvideos)">$LOCALIZE[20389]</value>
<value condition="Container.Content(tvshows) | String.StartsWith(container.folderpath,library://video/tvshows/) | String.StartsWith(container.folderpath,videodb://tvshows)">$LOCALIZE[20343]</value>
<value condition="Container.Content(seasons)">$LOCALIZE[20343]</value>
<value condition="Container.Content(episodes)">$LOCALIZE[20343]</value>
<value>$LOCALIZE[3]</value>
</variable>

NOTE I am using String.Contains(container.folderpath,animation) so you'd want String.Contains(container.folderpath,anime)

As I'm using my Animation node structure to test

Image

Image

Image
Doesn't work, I don't know where the issue is from, I even tried on the original estuary skin without any skinning...
@jjd-uk Are you sure these are the only steps ?

Here is what I exactly did :
I created a new parent "anime" node, I edited the xml file from this node with a contains rule (I did the same thing with the xml files from the "movies" node), I added in the home.xml menu the anime item (which display the titles.xml file from the "anime" node) to separate from movies, I edited as you did in the variables.xml file but with changing animation by anime but it doesn't work.

Can you try to do only these steps and tell me if it works ?
Did you edit the all the xml files under the anime parent node e.g. anime/titles.xml to add the rule for the anime path?

If so what are the rules for anime/titles.xml for example.
Yes, all the xml files under the anime and movies parent node are edited.

Here is the anime/titles.xml file :
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node order="30" type="filter">
    <label>10024</label>
    <icon>DefaultMovieTitle.png</icon>
    <content>movies</content>
    <rule field="path" operator="contains">
        <value>C:\Users\younm\Desktop\2\Animes\</value>
    </rule>
    <order direction="ascending">sorttitle</order>
</node>

And here is Movies/Titles.xml :
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<node order="30" type="filter">
    <label>10024</label>
    <icon>DefaultMovieTitle.png</icon>
    <content>movies</content>
    <rule field="path" operator="contains">
        <value>C:\Users\younm\Desktop\1\Films\</value>
    </rule>
    <order direction="ascending">sorttitle</order>
</node>
So try

String.Contains(container.folderpath,Animes)
Thanks it works !