Page 1 of 1
New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 4:45 pm
by Louv
I added some new
view.xml files to the folder
resources/views, but none of them appears in the drop down list on the
First Steps screen.
I am sure I copied them to the right directory, because the existing entries in the drop down box dissapear when I delete the corresponding view files.
I use Twonkyserver 6.0.34 on a Qnap Ts419P+
What is my mistake?

Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 5:03 pm
by phibertron
Did you also add them to the view-definitions.xml
This is the first line of that file
<view name='base' viewlist='advanced,folder,ipodlike,simple,classified,playlists,mobile' guilist='advanceddefault,ipodlike,simpledefault,byfolder,mobile'>
You'll have to add the name= used in a view to the above list
above there is simpledefault listed, and from that view that is also its name=
<view name='simpledefault' path='simple.view'>
Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 6:39 pm
by Louv
Thanks for your answer, but it won't work yet.
I added the new view (musica) as follows:
<view name='base' viewlist='advanced,folder,ipodlike,simple,classified,playlists,mobile,musica' guilist='advanceddefault,ipodlike,simpledefault,byfolder,mobile,musica'>
the result is, that Twonkyserver hangs and the whole NAS has to be restarted.
Maybe I have to add another statement, but I cannot interprete this part of your answer:
above there is simpledefault listed, and from that view that is also its name=<view name='simpledefault' path='simple.view'
Could you be more specific?
I checked the View Configuration Update (Version 5.1.

but did not find the solution.
thanks in advance!
Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 7:36 pm
by phibertron
Is the view name musica.view.xml?
and is the first line in the musica.view.xmllike this?
<view name='musica' path=musica.view'>
I havent played around with the custom views in a while,
I usually just edit the one I wantas my default
but kind of remembering that I had to name the guilist name different for it to work
<view name='base' viewlist='advanced,folder,ipodlike,simple,classified,playlists,mobile,musica' guilist='advanceddefault,ipodlike,simpledefault,byfolder,mobile,mymusica'>
not sure why I had to do that back then, or if its still the case
Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 7:56 pm
by Louv
No, this won't work eiter. The musica view does not appear in the drop down list.
Basically, I want a navtree element based on composer/album. I didn't find any tree based on this.
Would you have a coding example that I could insert in the view-definitions.xml in order to get that?
Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 7:59 pm
by phibertron
Are you restarting twonky after making changes?
If yes, is it still hanging?
Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 8:05 pm
by Louv
Yes, I restart and it does not hang, but does not show the new view.
Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 8:10 pm
by phibertron
Here is what you could do to edit the built in views
view-definitions.xml
in the music section <container name='music'
add the following code
Code: Select all
<container name='Composer/Album' groupid='music/composeralbum' class='object.container' createClass='object.item.audioItem.musicTrack'>
<container buildon='upnp:author@role' createClass='object.item.audioItem.musicTrack' class='object.container.person.musicArtist' />
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
</container>
yourdefault.view.xml
In the music section <container id='music'>
add the following link
Code: Select all
<link groupid='music/composeralbum' />
Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 8:38 pm
by Louv
Thanks. I added the code you provided as below. Twonky starts, but does not build any tree. I suspect there might be a syntax error or something like that.
<view name='base' viewlist='advanced,folder,ipodlike,simple,classified,playlists,mobile,musica' guilist='advanceddefault,ipodlike,simpledefault,byfolder,mobile,mymusica'>
<navtree sortcriteria='+upnp:originalTrackNumber'>
<container name='music' id='music' upnp:originalTrackNumber='1' createClass='object.item.audioItem.musicTrack,object.item.audioItem.online.musicTrack'>
<container name='alltracks' id='music/all' createClass='object.item.audioItem.musicTrack' class='object.container'/>
<container name='artist' id='music/artists' class='object.container.person.musicArtist' createClass='object.item.audioItem.musicTrack'>
<container name='allname' createClass='object.item.audioItem.musicTrack' class='object.container' />
<container buildon='upnp:artist' class='object.container.person.musicArtist' createClass='object.item.audioItem.musicTrack'/>
</container>
<container name='artistindex' id='music/artistindex' class='object.container' createClass='object.item.audioItem.musicTrack'>
<container buildon='upnp:artist[3]' class='object.container' createClass='object.item.audioItem.musicTrack'>
<container buildon='upnp:artist' class='object.container.person.musicArtist' createClass='object.item.audioItem.musicTrack'>
<container name='allname' createClass='object.item.audioItem.musicTrack' class='object.container' />
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
</container>
</container>
<container name='composer' id='music/composers' createClass='object.item.audioItem.musicTrack' class='object.container' >
<container buildon='upnp:author@role' createClass='object.item.audioItem.musicTrack' class='object.container.person.musicArtist' />
</container>
<container name='rating' id='music/rating' createClass='object.item.audioItem.musicTrack' class='object.container' >
<container buildon='pv:rating' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
<container name='artistalbum' id='music/artistalbum' class='object.container.person.musicArtist' createClass='object.item.audioItem.musicTrack'>
<container name='allname' createClass='object.item.audioItem.musicTrack' class='object.container' >
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
</container>
<container name='Composer/Album' groupid='music/composeralbum' class='object.container' createClass='object.item.audioItem.musicTrack'>
<container buildon='upnp:author@role' createClass='object.item.audioItem.musicTrack' class='object.container.person.musicArtist' />
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
</container>
<container buildon='upnp:artist' class='object.container.person.musicArtist' createClass='object.item.audioItem.musicTrack'>
<container name='allname' createClass='object.item.audioItem.musicTrack' class='object.container' />
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
</container>
<container name='genre' id='music/genre' class='object.container' createClass='object.item.audioItem.musicTrack'>
<container buildon='upnp:genre' class='object.container.genre.musicGenre' createClass='object.item.audioItem.musicTrack' />
</container>
<container name='genrealbum' id='music/genrealbum' class='object.container' createClass='object.item.audioItem.musicTrack'>
<container buildon='upnp:genre' class='object.container.genre.musicGenre' createClass='object.item.audioItem.musicTrack' >
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
</container>
<container name='genreartist' id='music/genreartistalbum' class='object.container' createClass='object.item.audioItem.musicTrack'>
<container name='allname' createClass='object.item.audioItem.musicTrack' class='object.container' >
<container name='allname' createClass='object.item.audioItem.musicTrack' class='object.container' >
<container name='allname' createClass='object.item.audioItem.musicTrack' class='object.container' />
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
<container buildon='upnp:artist' class='object.container' createClass='object.item.audioItem.musicTrack'>
<container name='allname' createClass='object.item.audioItem.musicTrack' class='object.container' />
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
</container>
<container buildon='upnp:genre' class='object.container.genre.musicGenre' createClass='object.item.audioItem.musicTrack'>
<container name='allname' createClass='object.item.audioItem.musicTrack' class='object.container' >
<container name='allname' createClass='object.item.audioItem.musicTrack' class='object.container' />
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
<container buildon='upnp:artist' class='object.container' createClass='object.item.audioItem.musicTrack'>
<container name='allname' createClass='object.item.audioItem.musicTrack' class='object.container' />
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
</container>
</container>
<container name='album' id='music/albums' createClass='object.item.audioItem.musicTrack' class='object.container' >
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
<container name='byfolder' id='music/folders' class='object.container.storageFolder' createClass='object.item.audioItem.musicTrack'>
<container buildon='res' createClass='object.item.audioItem.musicTrack' class='object.container.storageFolder' />
</container>
<container name='playlists' id='music/playlists' class='object.container' createClass='object.item.audioItem.musicTrack,object.item.audioItem.online.musicTrack' sortcriteria='+upnp:originalTrackNumber,+dc:title' restricted='0' flags='pv:playlistRoot=Music' >
<container name='playlistrecentlyadded' filteron='pv:addedLast60' sortcriteria='-pv:addedTime' createClass='object.item.audioItem.musicTrack' maxitems='500' upnp:originalTrackNumber='3' restricted='1' class='object.container.playlistContainer' flags='pv:smartplaylist=1' />
<container name='playlistmostplayed' filteron='pv:playcount' sortcriteria='-pv:playcount' createClass='object.item.audioItem.musicTrack' maxitems='500' upnp:originalTrackNumber='1' restricted='1' class='object.container.playlistContainer' flags='pv:smartplaylist=1' />
<container name='playlistlastplayed' filteron='pv:lastPlayedTime' sortcriteria='-pv:lastPlayedTime' createClass='object.item.audioItem.musicTrack' maxitems='500' upnp:originalTrackNumber='2' restricted='1' class='object.container.playlistContainer' flags='pv:smartplaylist=1' />
<container name='playlisthighlyrated' filteron='pv:highrated' sortcriteria='-pv:rating' createClass='object.item.audioItem.musicTrack' maxitems='500' upnp:originalTrackNumber='4' class='object.container.playlistContainer' restricted='1' flags='pv:smartplaylist=1' />
<container buildon='upnp:playlist' sortcriteria='+upnp:originalTrackNumber' upnp:originalTrackNumber='5' createClass='object.item.audioItem.musicTrack,object.item.audioItem.online.musicTrack' class='object.container.playlistContainer' />
</container>
<container buildon='pv:onlineServiceTitle' groupid='music/onlineservices' createClass='object.item.audioItem.online.musicTrack' class='object.container'>
<container name='allstations' createClass='object.item.audioItem.online.musicTrack' class='object.container' />
<container name='genrestation' class='object.container' createClass='object.item.audioItem.online.musicTrack'>
<container buildon='upnp:genre' class='object.container.genre.musicGenre' createClass='object.item.audioItem.online.musicTrack' />
</container>
<container name='stationindex' class='object.container' createClass='object.item.audioItem.online.musicTrack'>
<container buildon='dc:title[3]' class='object.container' createClass='object.item.audioItem.online.musicTrack'>
<container buildon='dc:title' class='object.container' createClass='object.item.audioItem.online.musicTrack'/>
</container>
</container>
</container>
</container>
Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 8:42 pm
by phibertron
It could be the groupid
try
<container name='Composer/Album' groupid='custom/composeralbum'
and
<link groupid='custom/composeralbum' />
also change
<container buildon='upnp:author@role' createClass='object.item.audioItem.musicTrack' class='object.container.person.musicArtist' />
to
<container buildon='upnp:author@role' createClass='object.item.audioItem.musicTrack' class='object.container.person.musicArtist' >
Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 8:50 pm
by Louv
No, it doesn't work either.
Could it be that the number of times the 'container' attribute is listen does not match?
</container>
<container name='Composer/Album' groupid='custom/composeralbum' class='object.container' createClass='object.item.audioItem.musicTrack'>
<container buildon='upnp:author@role' createClass='object.item.audioItem.musicTrack' class='object.container.person.musicArtist' />
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
</container>
Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 8:57 pm
by phibertron
that would be it
when there is a />
at the end, it doesnt need a closing </container>
Code: Select all
<container name='Composer/Album' groupid='custom/composeralbum' class='object.container' createClass='object.item.audioItem.musicTrack'>
<container buildon='upnp:author@role' createClass='object.item.audioItem.musicTrack' class='object.container.person.musicArtist' >
<container buildon='upnp:album' albumart='1' sortcriteria='+pv:numberOfThisDisc,+upnp:originalTrackNumber' createClass='object.item.audioItem.musicTrack' class='object.container.album.musicAlbum' />
</container>
</container>
Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 9:34 pm
by Louv
It works. Thanks very much!!!

Re: New Navtree files are not listed in First Steps
Posted: Sat Nov 26, 2011 9:44 pm
by phibertron
Sweet!
Your Welcome