diff --git a/config/config.inc.php b/config/config.inc.php index bd9bd6c..b8eb4f9 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -4,10 +4,18 @@ ** NeoMPC Config File **************************************/ + /* Config relating to the display of CD covers */ + /******** THIS IS NOT YET IMPLEMENTED! *********/ $_CONFIG['music_directory'] = '/var/lib/mpd/music'; + $_CONFIG['album_cover_name'] = 'folder.jpg'; + /***********************************************/ + /* Template to use for displaying the pages */ $_CONFIG['template'] = 'default'; + /* Browse mode can be 'filesystem' or 'metadata' */ + $_CONFIG['browse_mode'] = 'metadata'; + $_CONFIG['sort_by_tracknumber'] = true; ?> diff --git a/images/album.gif b/images/album.gif new file mode 100644 index 0000000..dc59d2f Binary files /dev/null and b/images/album.gif differ diff --git a/images/artist.gif b/images/artist.gif new file mode 100644 index 0000000..9994b4b Binary files /dev/null and b/images/artist.gif differ diff --git a/lib/global.php b/lib/global.php index a7704aa..03e82c5 100644 --- a/lib/global.php +++ b/lib/global.php @@ -67,15 +67,4 @@ $page = 'playlist'; } - /* do the same with the current browse position */ - if ($_GET['browse']) { - $browse = $_GET['browse']; - setcookie('browse', stripslashes($browse)); - } - else { - $browse = $_COOKIE['browse']; - } - - $browse = stripslashes($browse); - ?> diff --git a/lib/page.php b/lib/page.php index 92ffd84..32c65b5 100644 --- a/lib/page.php +++ b/lib/page.php @@ -17,67 +17,157 @@ $smarty->assign('current_artist', $current_track['Artist']); $smarty->assign('current_file', $current_track['file']); break; - case "browse": - - /* make the path array */ - - if ($browse == '/') { - $browse = ''; - } - - $browse_list = explode('/', $browse); + case "browse": + + switch ($_CONFIG['browse_mode']) { - //print_r($browse); - - if ($browse) { - - foreach ($browse_list as $browse_item) { - $path .= $browse_item . '/'; - $dir_list[] = array('path' => trim($path, '/'), 'name' => $browse_item); - } - - } - - $smarty->assign('dir_list', $dir_list); - - if (!$browselist) { - $browselist = $mympd->GetDir($browse); - } + case 'metadata': /* metadata based browsing. this will list artists->albums->tracks */ + + /* split the browse get var if present */ + if ($_GET['browse']) { + if ($_GET['browse'] == '/') { + $browse_bits[0] = 'artists'; + } + else { + $browse_bits = split('::', $_GET['browse']); + } + } + + //print_r($browse_bits); - if ($_CONFIG['sort_by_tracknumber']) { - usort($browselist, "track_sort"); - } + /* set the meta_level */ + if ($browse_bits[0]) { + $meta_level = $browse_bits[0]; + } + elseif ($_COOKIE['meta_level']) { + $meta_level = $_COOKIE['meta_level']; + } + else { + $meta_level = 'artists'; + } + + switch ($meta_level) { /* we need to get the information differently for different meta levels */ + + case 'artists': + $artists = $mympd->GetArtists(); + + foreach ($artists as $artist) { + $browselist[]['metaArtist'] = $artist; + } + + break; + + case 'albums': + $albums = $mympd->GetAlbums($browse_bits[1]); + + foreach ($albums as $album) { + $browselist[]['metaAlbum'] = $album; + } + + break; + + case 'tracks': + + $tracks = $mympd->Find(MPD_SEARCH_ALBUM, $browse_bits[1]); + + /* + echo '
'; + print_r($tracks); + echo ''; + //*/ + + /* foreach ($albums as $album) { + $browselist[]['metaAlbum'] = $album; + } */ + + $browselist = $tracks; + + if ($_CONFIG['sort_by_tracknumber']) { + usort($browselist, "track_sort"); + } + + break; + } + + $smarty->assign('browselist', $browselist); + + break; - /* - echo '
'; - print_r($browselist); - echo ''; - //*/ - - foreach ($browselist as $key => $browselist_item) { + case 'filesystem': /* filesystem based browsing. this will follow the filesystem tree */ - - if ($browselist_item['directory']) { - $lastpos = strrpos($browselist_item['directory'], '/'); - if ($lastpos !== false) { - $browselist[$key]['directory_name'] = substr($browselist_item['directory'], $lastpos + 1); + /* get the browse position from the cookie or from get */ + if ($_GET['browse']) { + $browse = $_GET['browse']; + setcookie('browse', stripslashes($browse)); } else { - $browselist[$key]['directory_name'] = $browselist_item['directory']; - } - } - - - /* add a token for files currently on the playlist */ - foreach($mympd->playlist as $playlist_item) { - if ($browselist_item['file'] == $playlist_item['file']) { - $browselist[$key]['in_playlist'] = "1"; - } - } - } + $browse = $_COOKIE['browse']; + } + + $browse = stripslashes($browse); - - $smarty->assign('browselist', $browselist); + /* make the path array */ + + if ($browse == '/') { + $browse = ''; + } + + $browse_list = explode('/', $browse); + + //print_r($browse); + + if ($browse) { + + foreach ($browse_list as $browse_item) { + $path .= $browse_item . '/'; + $dir_list[] = array('path' => trim($path, '/'), 'name' => $browse_item); + } + + } + + $smarty->assign('dir_list', $dir_list); + + if (!$browselist) { + $browselist = $mympd->GetDir($browse); + } + + if ($_CONFIG['sort_by_tracknumber']) { + usort($browselist, "track_sort"); + } + + /* + echo '
'; + print_r($browselist); + echo ''; + //*/ + + foreach ($browselist as $key => $browselist_item) { + + + if ($browselist_item['directory']) { + $lastpos = strrpos($browselist_item['directory'], '/'); + if ($lastpos !== false) { + $browselist[$key]['directory_name'] = substr($browselist_item['directory'], $lastpos + 1); + } + else { + $browselist[$key]['directory_name'] = $browselist_item['directory']; + } + } + + + /* add a token for files currently on the playlist */ + foreach($mympd->playlist as $playlist_item) { + if ($browselist_item['file'] == $playlist_item['file']) { + $browselist[$key]['in_playlist'] = "1"; + } + } + } + + + $smarty->assign('browselist', $browselist); + + break; + } //echo '
'; //print_r($mympd->GetDir($browse)); diff --git a/templates/default/browse.html b/templates/default/browse.html index b4d7041..3d592fa 100644 --- a/templates/default/browse.html +++ b/templates/default/browse.html @@ -1,6 +1,6 @@


{$browselist_item.directory_name|escape:'html'}
{$browselist_item.directory_name|escape:'html'}
{$browselist_item.metaArtist|escape:'html'}
{$browselist_item.metaAlbum|escape:'html'}

{if $browselist_item.Title|escape:'html'}{$browselist_item.Title|escape:'html'}