SageTV Community  

Go Back   SageTV Community > SageTV Development and Customizations > SageTV v7 Customizations > Phoenix
Forum Rules FAQs Community Downloads Today's Posts Search

Notices

Phoenix This forum is for discussing the user-created Phoenix custom interface for SageTV.

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 05-20-2011, 11:50 AM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
VFS Examples?

I’ve been creating some of my own views for a variety of tasks both for BMT and for Phoenix. I’m curious to know if others are building their own too? If so, I’d love to see what other users are doing to get ideas from. It would be nice to have some consolidation for future reference as well.

Here are a couple of the views that I’ve found beneficial.

This view pulls out all the Kid’s movies from my collection. I used PQL to make sure that as movies are added to the collection basically no maintenance would need to be done. Except maybe refining the PQL look up. I previously was setting genre codes to achieve the same result. I then put it to its own menu fragment to insert it into Phoenix:

Code:
            <view name="wr_kids_movies" label="WR Movies - Kid's Only"> <description>Display Kid's Movies Only</description>
                  <view-source name="sagevideoimportsv7" >
                        <filter by="pql" value="Genre contains 'Family' or Genre contains 'Animation' or Genre contains 'Musical' or Genre contains 'Short' or Rated='G' and MediaType='Movie'"/>
                  </view-source>
                  <presentation>
                        <sort by="title"> </sort>
                  </presentation>
            </view>
      </views>
This view like the Kid’s movies from above grabs only the cinematic movies in my collection. It’s based on the import path where I store movies only. No home vids etc. All one needs to change is the bookmark value to the location of their combined movie collection:

Code:
            <view name="wr_movies_only" label="WR Movies - Cinematic Only" flat="false">
                  <option name="bookmark" value="/Movies/"/>
                  <option name="children-only" value="true"/>
                  <description>Movies in the New folder</description>
                  <tag value="video"/>
                  <view-source name="sagevideoimportsv7"/>
                  <presentation>
                        <sort by="title">
                              <option name="folders-first" value="false"/>
                        </sort>
                  </presentation>
            </view>
The next snippet is to get recently added Movies into BMT as well as for my Phoenix menu. I like the new movies that’s default in Phoenix but it includes my home videos and workout videos which I don’t prefer, so this one does a nice job of only showing the most recent movies added to my collection:

Code:
            <view name="wr_recently_added" label="WR Movies - Recently Added">
                  <description>Recently Added Movies</description>
                  <view-source name="videos" >
                        <filter by="homevideos">
                              <option name="scope" value="exclude"/>
                        </filter>
                  </view-source>
                  <presentation>
                        <sort by="recentactivity">
                              <option name="sort-order" value="desc"/>
                        </sort>
                  </presentation>
            </view>
The following view I no longer use because I changed my approach. I used to batch update the genre field to +Movie so that I could use the following look up to get movies only. Required a little maintenance moving forward but as an example I thought I would include it:

Code:
         <view name="wr_movies" label="Movies Only">
                  <description>Movies Only</description>
                  <view-source name="sagevideoimportsv7"/>
                  <filter by="genre" value="Movie" />
                  <presentation>
                        <sort by="title"> </sort>
                  </presentation>
            </view>
I’m hoping that others have examples to share. I’d like to see them to get ideas from!
Reply With Quote
  #2  
Old 05-22-2011, 04:11 PM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
Chick Flicks VFS

I just got the idea for a view for the women of our lives... I call it the Chick Flicks view:

Code:
<view name="wr_chick_flicks" label="WR Movies - Chick Flicks">
      <description>Display chick flick related movies</description>
      <view-source name="sagevideoimportsv7" >
            <filter by="pql" value="Genre contains 'Romance' or Genre contains 'Musical' or Genre contains 'Music' or Genre contains 'Drama' and MediaType = 'Movie'"/>
      </view-source>
      <presentation>
            <sort by="title"> </sort>
      </presentation>
</view>
I got instant bonus points the second I added this view to my Phoenix Videos library. I’m still working on a way to clean up the few oddities that crop up into the look up. Overall, it’s pretty accurate at getting a nice subset for my wife’s perusal!
Reply With Quote
  #3  
Old 05-23-2011, 05:39 AM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
Kid’s only TV Shows

Here’s a nice one for the TV section. It simply breaks out TV shows suitable for young children:

Code:
<!DOCTYPE vfs SYSTEM "vfs.dtd">
<vfs>
      <views>
            <view name="wr_basic_tv" label="WR Simple TV Lookup">
                  <description>WR TV Simple Lookup of All TV Shows</description>
                  <tag value="tv"/>
                  <view-source name="recordings"/>
                  <view-source name="archivedrecordings"/>
                  <view-source name="videos" >
                        <filter by="mediatype" value="tv" />
                  </view-source>
            </view>


            <view name="wr_kids_tv" label="WR TV - Kid's Only"> <description>WR Display Kid's Shows Only</description>
                  <view-source name="wr_basic_tv" >
                        <filter by="pql" value="Genre contains 'Animation' or Genre contains 'Animated' or Genre contains 'Children' and MediaType = 'TV' and ParentalRating &lt;&gt; 'TV14' and ParentalRating &lt;&gt; 'TVM'"/>
                  </view-source>
                  <presentation level="1">
                        <group by="show"/>
                        <sort by="title"/>
                        <hint value="series"/>
                  </presentation>
            </view>
      </views>
</vfs>
I had to use 2 views for this one for the 2 filters. I’m sure there’s a better way to achieve this but the method above seems to work well.

Last edited by wrems; 05-23-2011 at 07:30 AM.
Reply With Quote
  #4  
Old 05-23-2011, 09:23 AM
bialio's Avatar
bialio bialio is offline
SageTVaholic
 
Join Date: May 2007
Location: Frisco, TX
Posts: 3,445
The top view isn't really necessary - there are 'built in' views already that are the same. It doesn't hurt to have your own of course, but it is duplication.

Look for the views named phoenix.view.primary.*

These are good candidates to be used in the <view-source> tag for any custom views you make. They will eventually be the basis for the GUI view builder.

Code:
<view name="phoenix.view.primary.importedmovies"		
<view name="phoenix.view.primary.recordedmovies"
<view name="phoenix.view.primary.recordedtv" 
<view name="phoenix.view.primary.recordedtvarchived" 
<view name="phoenix.view.primary.importedtv" 
<view name="phoenix.view.primary.homevideos" 
<view name="phoenix.view.primary.scheduledrecordings"
<view name="phoenix.view.primary.upcomingairings"
btl.
__________________
PHOENIX 3 is here!
Server : Linux V9, Clients : Win10 and Nvidia Shield Android Miniclient
Reply With Quote
  #5  
Old 05-23-2011, 09:29 AM
bialio's Avatar
bialio bialio is offline
SageTVaholic
 
Join Date: May 2007
Location: Frisco, TX
Posts: 3,445
This is a view that is in the 313 release - it basically finds everything that is on TV right now, then groups it by genre. So it's kind of like an alternate way to look at EPG data:

Code:
                <view name="phoenix.view.default.nowshowing" label="Now Showing">
                        <description>Currently Airing TV shows</description>
                        <tag value="epg"/>
                        <tag value="tv"/>
                        <tag value="movie"/>
                        <tag value="default"/>
                        <view-source name="phoenix.view.primary.currentlyairing"/>

                        <presentation level="1">
                                <group by="genre">
                                        <option name="prune-single-item-groups" value="false"/>
                                </group>
                                <sort by="title"/>                              
                        </presentation> 
                        
                        <presentation level="2">
                                <sort by="title"/>                              
                        </presentation> 
                </view>
If you are so inclined you can make some nice specific views like "Kids shows on right now" or "Cooking shows on right now" based on this.
__________________
PHOENIX 3 is here!
Server : Linux V9, Clients : Win10 and Nvidia Shield Android Miniclient
Reply With Quote
  #6  
Old 05-26-2011, 03:02 PM
PiX64's Avatar
PiX64 PiX64 is offline
Sage Icon
 
Join Date: Dec 2008
Location: Illinois
Posts: 1,991
here is one i created for baby media

VFS:
Code:
<!DOCTYPE vfs SYSTEM "vfs.dtd">
<vfs>
	<views>
		<view name="mr_baby_media" label="MR Media - All Baby Media">
			<description>MR Display all baby media</description>
			<view-source name="sagevideoimportsv7" >
				<filter by="pql" value="MediaTitle contains 'Baby' or IMDBID = 'tt1476037' and (MediaType = 'TV' or MediaType = 'Movie')" />
			</view-source>
			<presentation>
				 <sort by="title"/>
			</presentation>
		</view>
	</views>
</vfs>
menu fragment:
Code:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE menus SYSTEM "menus.dtd">
<menus>
      <fragment parentMenu="phoenix.menu.lz.videos" insertBefore="phoenix.menu.lz.videos.alltitlescoverflow">
            <menuItem name="mr_baby_media" label="Baby Media" visible="true"> 
				<description>MR - Display baby media</description>
				<screen name="Phoenix UMB - Cover Flow" />
            </menuItem>
      </fragment>
      <fragment parentMenu="phoenix.menu.lz.tv" insertBefore="phoenix.menu.lz.TV.alltitlescoverflow">
            <menuItem name="mr_baby_media" label="Baby Media" visible="true"> 
				<description>MR - Display baby </description>
				<screen name="Phoenix UMB - Cover Flow" />
            </menuItem>
      </fragment>
</menus>

Last edited by PiX64; 05-26-2011 at 07:43 PM.
Reply With Quote
  #7  
Old 05-26-2011, 03:38 PM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
Here's another example. One for my workout videos.

Can take a folder of an import path and show all contents in that folder. In my case my full path is:

Code:
\\sage\SageTV Video\Workout Videos

Here's the vfs:

Code:
<!DOCTYPE vfs SYSTEM "vfs.dtd">
<vfs>
      <views>
            <view name="wr_workout_videos_only" label="WR Movies - Workout Videos" flat="false">
                  <option name="root" value="/Workout Videos/"/>
                  <option name="children-only" value="true"/>
                  <description>WR Display workout videos only</description>
                  <tag value="video"/>
                  <view-source name="sagevideoimportsv7"/>
                  <presentation>
                        <sort by="title">
                              <option name="folders-first" value="false"/>
                        </sort>
                  </presentation>
            </view>
      </views>
</vfs>
Reply With Quote
  #8  
Old 05-27-2011, 07:02 AM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
Chick Flicks VFS

Here’s my full VFS for the chick flicks view. I’ve been pretty happy with it. It’s designed to allow movies that are chick flicks to be grabbed automatically with the first PQL statement. Then the second statement excludes the all specific titles that are not chick flicks by using their IMDB ID. Using BMT one can peruse this view and copy and paste the IMDB ID’s pretty quickly for the suspect ones.

This way not matter what happens with BMT those excluded titles will not creep back into the view. I’ve found it much easier to let BMT do it’s thing and not fight with the genres, because future metadata updates will over write the genres back to the TMDB standard - then you have to go and update those again. So for me, it’s easier to leave it as is and exclude the creepers in another manner.

There’s a bit of ongoing maintenance to keep it up over time since there is no silver bullet to getting to an accurate chick flicks definition, it’s pretty subjective. The maintenance is mostly once in a while eyeballing the view and excluding the movies that creep up by their IMDB ID’s. Which should be minimal over time, a few here and there and some of them will be pretty close regardless. The first definition is broad enough to capture all of the chick flicks and then some. The excludes are really the fringe movies with a genre of Drama.

My thoughts are if others are interested in a view like this that over time the exclude list of IMDB ID’s will become pretty extensive. My thoughts are, if we each shared our list of excludes it would save the effort of building it from scratch. I would bet that a lot of us have the same movies, so the excludes would overlap. Eventually we’d be able to create one master list of all the excludes of the movies currently available and the definition would be pretty darn accurate. Then the only additions would be going forward and those would probably be minimal. It would just take a few minutes here and there to take a scalpel to the view and add the new IMDB ID’s to a master list...

Code:
<!DOCTYPE vfs SYSTEM "vfs.dtd">
<vfs>
      <views>
            <view name="wr_chick_flicks_Temp" label="Chick Flicks Temp" visible="false">
                  <description>Intermediary View for the final Chick Flicks View NOT FINAL VIEW</description>
                  <view-source name="sagevideoimportsv7" >
                        <filter by="pql" value=
						"
						Genre contains 'Romance' or 
						Genre contains 'Musical' or 
						Genre contains 'Music' or 
						Genre contains 'Drama' and 
						MediaType = 'Movie' and 
						Rated &lt;&gt; 'G'
						"/>
                  </view-source>
            </view>



            <view name="wr_chick_flicks" label="WR Movies - Chick Flicks">
                  <description>WR Display chick flick related movies</description>
                  <view-source name="wr_chick_flicks_Temp" >
                        <filter by="pql" value=
"
IMDBID = 'tt1067106' or 
IMDBID = 'tt0078788' or
IMDBID = 'tt0372784' or
IMDBID = 'tt1020558' or
IMDBID = 'tt0206634' or
IMDBID = 'tt0097162' or
IMDBID = 'tt1136608' or
IMDBID = 'tt0083866' or
IMDBID = 'tt0060390' or
IMDBID = 'tt1433108' or
IMDBID = 'tt0093058' or
IMDBID = 'tt0119177' or
IMDBID = 'tt0947810' or
IMDBID = 'tt0113277' or
IMDBID = 'tt0910905' or
IMDBID = 'tt0361748' or
IMDBID = 'tt0460780' or
IMDBID = 'tt1075747' or
IMDBID = 'tt0947802' or
IMDBID = 'tt0065988' or
IMDBID = 'tt0467197' or
IMDBID = 'tt0087803' or
IMDBID = 'tt0477348' or
IMDBID = 'tt0093748' or
IMDBID = 'tt0482572' or
IMDBID = 'tt1152836' or
IMDBID = 'tt1053424' or
IMDBID = 'tt1034331' or
IMDBID = 'tt0479537' or
IMDBID = 'tt0046303' or
IMDBID = 'tt1130884' or
IMDBID = 'tt0286106' or
IMDBID = 'tt0413300' or
IMDBID = 'tt0473705' or
IMDBID = 'tt0438488' or
IMDBID = 'tt1095217' or
IMDBID = 'tt1037705' or
IMDBID = 'tt0468569' or
IMDBID = 'tt0970416' or
IMDBID = 'tt0077416' or
IMDBID = 'tt0068646' or
IMDBID = 'tt0071562' or
IMDBID = 'tt0099674' or
IMDBID = 'tt0887912' or
IMDBID = 'tt0087553' or
IMDBID = 'tt0049730' or
IMDBID = 'tt0081505' or
IMDBID = 'tt0075213' or
IMDBID = 'tt0840361' or
IMDBID = 'tt0040897' or
IMDBID = 'tt0780653' or
IMDBID = 'tt1125849' or
IMDBID = 'tt0065126' or
IMDBID = 'tt0114738' or
IMDBID = 'tt0141926' or
IMDBID = 'tt0477080' or
IMDBID = 'tt0096446' or
IMDBID = 'tt0486674' or
IMDBID = 'tt0386117' or
IMDBID = 'tt0080339' or
IMDBID = 'tt0050083' or
IMDBID = 'tt1190080' or
IMDBID = 'tt0357413' or
IMDBID = 'tt0034492' or
IMDBID = 'tt0033563' or
IMDBID = 'tt0106973' or
IMDBID = 'tt0780567' or
IMDBID = 'tt0448011' or
IMDBID = 'tt0048280' or
IMDBID = 'tt1470827' or
IMDBID = 'tt1182921' or
IMDBID = 'tt0200465' or
IMDBID = 'tt1130080' or
IMDBID = 'tt0054047' or
IMDBID = 'tt0056217' or
IMDBID = 'tt0914863' or
IMDBID = 'tt0985699' or
IMDBID = 'tt1175491' or
IMDBID = 'tt0960144'
">

                              <option name="scope" value="exclude"/>
                        </filter>
                  </view-source>
                  <presentation>
                        <sort by="title"> </sort>
                  </presentation>
            </view>
      </views>
</vfs>
Reply With Quote
  #9  
Old 05-27-2011, 09:41 PM
PiX64's Avatar
PiX64 PiX64 is offline
Sage Icon
 
Join Date: Dec 2008
Location: Illinois
Posts: 1,991
Here is another example of what I ended up doing. Jamie and I are having a baby in a week or so and we wanted a way to categories all of his stuff.

so I added a landing menu item called MJ Media with menu sub items of Baby DVDs, Kids Movies and Kids TV

here is what everything looks like

landing menu frag:
Code:
<menus>
	<fragment parentMenu="phoenix.menu.lz" insertBefore="phoenix.menu.lz.recentimports">
		<menu background="GlobalMenuBackground.jpg" icon="gMoviesMenuIcon" label="MJ Media" name="phoenix.menu.lz.videos" type="Video">
			<menuItem name="mr_baby_media" label="Baby DVDs" visible="true"> 
				<description>MR - Display baby dvd</description>
				<eval>AddGlobalContext("DefaultView","mr_baby_dvd")</eval>
				<screen name="Phoenix UMB - Cover Flow" />
			</menuItem>
			<menuItem name="mr_kids_movies" label="Kids Movies" visible="true"> 
				<description>MR - Display kids movies</description>
				<eval>AddGlobalContext("DefaultView","mr_kids_movies")</eval>
				<screen name="Phoenix UMB - Cover Flow" />
            		</menuItem>
			<menuItem name="mr_kids_cartoons" label="Kids TV" visible="true"> 
				<description>MR - Display kids TV</description>
				<eval>AddGlobalContext("DefaultView","mr_kids_tv")</eval>
				<eval>AddStaticContext( "FlowType" , "BANNER" )</eval>
				<screen name="Phoenix UMB - Art Flow" />
            		</menuItem>
		</menu>
	</fragment>
</menus>
baby dvd vfs
Code:
<vfs>
      <views>
            <view name="mr_baby_dvd" label="MR Media - All Baby DVDs" flat="false">
                  <option name="root" value="/BabyDVDs/"/>
                  <option name="children-only" value="true"/>
                  <description>MR Display all baby dvds</description>
                  <tag value="video"/>
                  <view-source name="sagevideoimportsv7"/>
                  <presentation>
                        <sort by="title">
                              <option name="folders-first" value="false"/>
                        </sort>
                  </presentation>
            </view>
      </views>
</vfs>
kids movies vfs
Code:
<vfs>
      <views>
            <view name="mr_kids_movies" label="MR Media - Kids Movies">
                  <description>MR Display Kids related movies</description>
                  <view-source name="sagevideoimportsv7" >
                        <filter by="pql" value="Genre contains 'Animation' and MediaType='Movie' and (Rated='G' or Rated='PG')" />
                  </view-source>
            </view>


            <view name="mr_kids_movies" label="MR Media - Kids Movies">
                 <description>MR Display Kids related movies</description>
                  <view-source name="mr_kids_movies" >
                        <filter by="pql" value="IMDBID = 'tt1219342'">
                              <option name="scope" value="exclude"/>
                        </filter>
                  </view-source>				 
                  <presentation>
                        <sort by="title"> </sort>
                  </presentation>
            </view>
      </views>
</vfs>
kids tv vfs
Code:
<vfs>
      <views>
            <view name="mr_kids_tv" label="MR Media - Kids TV" flat="false">
                  <option name="root" value="/Kids Cartoons/"/>
                  <option name="children-only" value="true"/>
                  <description>MR Display kids tv</description>
                  <tag value="video"/>
                  <view-source name="sagevideoimportsv7"/>
                  <presentation level="1">
				<group by="show"/>
				<sort by="title"/>
				<hint value="series"/>
			</presentation>
			
			<presentation level="2">
				<group by="season">
					<option name="prune-singe-item-groups" value="true"/>
				</group>
				<sort by="title"/>
			</presentation>
			
			<presentation level="3">
				<sort by="seasonepisode" />
			</presentation>
            </view>
      </views>
</vfs>
I have Baby DVD and Kids Movies using Cover Flow, and the Kids TV using Season view.
Reply With Quote
  #10  
Old 05-28-2011, 05:37 AM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
Congrats on the baby. We're expecting number 2 in December
Reply With Quote
  #11  
Old 05-28-2011, 09:07 AM
PiX64's Avatar
PiX64 PiX64 is offline
Sage Icon
 
Join Date: Dec 2008
Location: Illinois
Posts: 1,991
thanks! and 2 u too.
Reply With Quote
  #12  
Old 06-16-2011, 12:50 PM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
Here’s a view that is slightly different than Brian’s New Movies. I like my version a bit better because it shows cinematic movies only, because I place all my cinematic movies in a specific folder called Movies. Even across multiple hard drives they’re grouped together for this view. Also, it displays them all of them and not just the top few.

Here’s the VFS:

Code:
 <view name="wr_movies_by_path" label="WR Movies by Path" flat="false" visible="false">
                  <option name="root" value="/Movies/"/>
                  <option name="children-only" value="true"/>
                  <description>Grab content from the combined import paths</description>
                  <view-source name="sagevideoimportsv7"/>
                  <presentation>
                        <sort by="recentactivity">
                              <option name="sort-order" value="desc"/>
                        </sort>
                  </presentation>
            

	    </view>
            <view name="wr_recently_added_movies" label="WR Movies - Recently Added" flat="true" visible="true">
                  <view-source name="wr_movies_by_path"/>
            </view>
It’s two parts because it first needs to combine the sources and then the second one flattens the structure. If done in a single view the results are totally different and not correct. The above code seems to do really well at giving a laundry list of all the movies added in the order they were added to the system. This is the only way I could get the results to be accurate.
Reply With Quote
  #13  
Old 06-16-2011, 01:18 PM
bialio's Avatar
bialio bialio is offline
SageTVaholic
 
Join Date: May 2007
Location: Frisco, TX
Posts: 3,445
Very nice.

You realize 'New Movies' isn't exactly a view so much as a ViewMenu - since it's part of the landing zone it can't be too big cuz it won't fit. There are some helper views that are used on the Box Landing zone and Info Menu's - they might be called 'New Movies' also, but ideally you shouldn't see them. Turn off 'advanced' views in the Phoenix options to hide all of the 'helper' views - makes browsing your views a lot less painful!

There's a sort that is called 'Date Added' which would probably work better for the above view all things considered - recent activity looks at the file date, while Date Added looks at sage's Media ID which is incremented each time something is added to Wiz.bin - so you've got basically 'New on HardDrive' vs 'New to Sage' - and new to Sage is really what you want to see (normally) when looking for "new" content.
__________________
PHOENIX 3 is here!
Server : Linux V9, Clients : Win10 and Nvidia Shield Android Miniclient
Reply With Quote
  #14  
Old 06-16-2011, 01:21 PM
bialio's Avatar
bialio bialio is offline
SageTVaholic
 
Join Date: May 2007
Location: Frisco, TX
Posts: 3,445
Disclaimer - if you end up having a network hickup and Sage 'finds' a network path that it thought was lost - you might end up with a bunch of 'old' movies showing up as recently added IF Sage goes and re-imports them all. This happened to me!

Nothing we (phoenix) can do about that phenom......
__________________
PHOENIX 3 is here!
Server : Linux V9, Clients : Win10 and Nvidia Shield Android Miniclient
Reply With Quote
  #15  
Old 06-16-2011, 02:03 PM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
Yeah, I was trying the MediaFileId in my plight to get this to work out. However, it was never accurate. It was entirely incorrect. Maybe I set the view up incorrectly. I'm not sure. Maybe I'll try to play with it again to see if it changes. It may be because a while back I nuked my wiz.bin and started over from scratch...
Reply With Quote
  #16  
Old 06-16-2011, 02:23 PM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
Here’s a view very similar to the recently added content above. It’s a view that combines import paths across multiple hard drives and brings it back into 1 flattened view:

Code:
            <view name="wr_movies_by_path" label="WR Movies by Path" flat="false" visible="false">
                  <option name="root" value="/Movies/"/>
                  <option name="children-only" value="true"/>
                  <description>Grab content from the combined import paths</description>
                  <view-source name="sagevideoimportsv7"/>
            </view>

            <view name="wr_movies_only" label="WR Movies - Cinematic Only" flat="true" visible="true">
                  <view-source name="wr_movies_by_path"/>
                  <presentation>
                        <sort by="title">
                              <option name="sort-order" value="asc"/>
                              <option name="ignore-all" value="true"/>
                        </sort>
                  </presentation>
            </view>
It’s 2 parts again to make sure only a specific folder is utilized and displayed. In this case, Movies. But it could be set for any folder one wants to display.

FYI, I'm posting all of these here for a couple of reasons. Hopefully others will find them useful, and more importantly I'm documenting my journey to get these right and have some notes while they're fresh in my mind. At least I should be able to rebuild my views in the event of a major (usually self inflicted) catastrophe!
Reply With Quote
  #17  
Old 06-17-2011, 06:01 PM
RedCoat999's Avatar
RedCoat999 RedCoat999 is offline
Sage Aficionado
 
Join Date: Aug 2003
Posts: 371
So I have a view for kids movies that shows up when i browse for it. To get it in the Landing Zone which instruction do I follow? Do I add the 'fragment' into the real menu xml file or a copy or the landing zone xml and point to that somehow or just copy over the real xml? Confused as to the landing zone bit right now.

Thanks
__________________
Happy Sage customer since 2003

Proud owner of a HD200 connected to a 47" LCD. Loving Sage 7 and Phoenix
Reply With Quote
  #18  
Old 06-17-2011, 06:45 PM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
Place the menu fragment in the userdata area. It's a stand-alone code widget. That way when they release new versions of the menu your menu items won't disappear. You'll probably have to create the folder for 'menus' and for 'vfs' in userdata>phoenix. This is where you'll keep the vfs statements too. Remember to back these up from time to time so if you lose your stuff you can restore them easily enough.

Last edited by wrems; 06-17-2011 at 06:47 PM.
Reply With Quote
  #19  
Old 06-18-2011, 06:36 AM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
Kid’s Only TV View Revised

I previously created this one in a couple of ways. One with PQL and one that includes by IMDB ID’s. Neither worked quite right. The PQL gets pretty close though. Just leaves some remnants that need to be excluded manually. The include by IMDB worked really well since I could control exactly the titles that were presented. This worked until Sage recorded a new one. The new stuff doesn’t always get matched properly or get an IMDB until after BMT scans it after the file is done recording. So the active recordings are basically invisible until they are finsihed recording or they’re fixed in bmt. Too much maintenance.

So, here is the latest incarnation of my kid’s only view. It uses the verbatim title to do the include. That way currently recording stuff shows up as expected. My sort is different than the default but that could easily be changed back to ‘recentactivity’ instead of seasonepisode...

The flip side of this vfs is one for the difference... Basically everything else other than kid’s. I use the titles from below to make an exclude. This way I have 1 view that is everything but kid’s shows and then the below view for kid’s only. These 2 views really helped clean up my TV screens.

Code:
      <views>
            <view name="wr_basic_tv" label="WR Simple TV Lookup" visible="false">
                  <description>WR TV Simple Lookup of All TV Shows</description>
                  <tag value="tv"/>
                  <view-source name="recordings"/>
                  <view-source name="archivedrecordings"/>
                  <view-source name="videos" >
                        <filter by="mediatype" value="tv" />
                  </view-source>
            </view>
            <view name="wr_kids_tv" label="WR TV - Kid's Only"> <description>WR Display Kid's Shows Only</description>
                  <view-source name="wr_basic_tv" >
                        <filter by="pql">
                              <option name="value">
><![CDATA[
Title = 'The Backyardigans' or
Title = 'Caillou' or
Title = 'The Cat in the Hat Knows a Lot About That!' or
Title = 'Clifford the Big Red Dog' or
Title = 'Curious George' or
Title = 'Dinosaur Train' or
Title = 'Prep & Landing' or
Title = 'Shaun the Sheep' or
Title = 'Sid the Science Kid' or
Title = 'The Smurfs' or
Title = 'SpongeBob SquarePants' or
Title = 'Yo Gabba Gabba!'
]]></option>

                              <option name="scope" value="include"/>
                        </filter>
                  </view-source>

                  <presentation level="1">
                        <group by="show"/>
                        <sort by="title">
                              <option name="ignore-all" value="true"/>
                        </sort>
                  </presentation>

		  <presentation level="2">
			<sort by="seasonepisode">
			      <option name="sort-order" value="desc"/>
			</sort>
		  </presentation>
            </view>
      </views>
Reply With Quote
  #20  
Old 06-20-2011, 01:55 PM
wrems's Avatar
wrems wrems is offline
Sage Icon
 
Join Date: Feb 2007
Location: Marietta, GA
Posts: 1,332
Instant Status Recently Recorded and Currently Recording

I created a vfs which I really like. It’s really for the instant status update area. It combines 2 of the view that are there with a bit of a twist. One of the problems I had with the recently recorded view was the spam from my son’s cartoon recording. All my shows inevitably got pushed off the list and I never used that list to start a program for him.

Here’s the basic view:
Code:
      <views>
            <view name="wr_recent_recordings" label="WR Recordings - Recent and Current" flat="true" visible="true">
                  <view-source name="phoenix.view.source.sagerecordings"> </view-source>
		  <presentation>
                        <sort by="recentactivity">
                              <option name="sort-order" value="desc"/>
                        </sort>
                  </presentation>
            </view>
      </views>
Here’s the filter I add to the above code where I specify the names of the shows that won’t be displayed here. It works great! Now only my shows are listed and I can access them quickly. My son’s shows need to be accessed the normal way. Here’s the filter, just substitue your show names and drop it into the code above after </view-source> :

Code:
                     <filter by="pql">
                              <option name="value"
><![CDATA[
Title = 'The Backyardigans' or
Title = 'Caillou' or
Title = 'The Cat in the Hat Knows a Lot About That!' or
Title = 'Clifford the Big Red Dog' or
Title = 'Curious George' or
Title = 'Dinosaur Train' or
Title = 'Lassie' or
Title = 'Looney Tunes' or
Title = 'Prep & Landing' or
Title = 'Shaun the Sheep' or
Title = 'Sid the Science Kid' or
Title = 'SpongeBob SquarePants' or
Title = 'Star Wars - The Clone Wars'
]]></option>
                              <option name="scope" value="exclude"/>
                        </filter>

I’ve been using the above spam filter on a bunch of my TV views to reduce some of the clutter and organize specific content in specific views.
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Examples of glitches in SageTV recordings & PVR-250 (what causes this?) jimbobuk Hardware Support 18 05-24-2003 06:31 AM


All times are GMT -6. The time now is 01:45 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, vBulletin Solutions Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.