0
order by 1 desc');
break;
case 'CATEGORY':
$data = db_toarray('select count(p.file_id) NUMBER_OF_PHOTOS, c.cat_name CATEGORY
from categories c, media_locations ml, photos p
where c.cat_id = ml.cat_id and p.location_id = ml.location_id group by c.cat_name
order by 1 desc');
break;
case 'TOP20':
$data = db_toarray('select p.filename TITLE, pa.title PHOTO_ALBUM, TOTAL_VIEWINGS
from photos p, photo_albums pa, viewings v
where v.media_type = '.MEDIA_TYPE_PHOTO.' and p.file_id = v.media_id and pa.dirname = p.dirname and v.user_id = '.get_current_user_id().'
order by total_viewings desc limit 20');
break;
}
return $data;
}
function stats_lastfm( $type )
{
$user = get_user_pref('LASTFM_USERNAME');
$data = array();
switch ($type)
{
case 'RECENT_TRACKS':
$recent = lastfm_user_getRecentTracks($user, 1, 10);
foreach ($recent["recenttracks"]["track"] as $track)
{
$image = $track["image"][0]["#text"];
$title = utf8_decode($track["name"]);
$artist = utf8_decode($track["artist"]["#text"]);
$album = utf8_decode($track["album"]["#text"]);
$data[] = array(img_gen($image,30,30), $title, $artist, $album);
}
break;
case 'TOP_ALBUMS':
$top = lastfm_user_getTopAlbums($user, $overall);
foreach ($top["topalbums"]["album"] as $album)
{
$image = $album["image"][0]["#text"];
$title = utf8_decode($album["name"]);
$artist = utf8_decode($album["artist"]["name"]);
$count = $album["playcount"];
$data[] = array($count, img_gen($image,30,30), $title, $artist);
}
break;
case 'TOP_ARTISTS':
$top = lastfm_user_getTopArtists($user, $overall);
echo '
';
foreach ($top["topartists"]["artist"] as $artist)
{
$image = $artist["image"][0]["#text"];
$title = utf8_decode($artist["name"]);
$count = $artist["playcount"];
$data[] = array($count, img_gen($image,30,30), $title);
}
echo '
';
break;
case 'TOP_TRACKS':
$top = lastfm_user_getTopTracks($user, $overall);
foreach ($top["toptracks"]["track"] as $id=>$track)
{
$image = $track["image"][0]["#text"];
$title = utf8_decode($track["name"]);
$artist = utf8_decode($track["artist"]["name"]);
$count = $track["playcount"];
$data[] = array($count, img_gen($image,30,30), $title, $artist);
}
break;
}
return $data;
}
//*************************************************************************************************
// Build page elements
//*************************************************************************************************
$page = isset($_REQUEST["page"]) ? $_REQUEST["page"] : 1;
$current = isset($_REQUEST["tab"]) ? $_REQUEST["tab"] : 'VIDEO';
$tabs = array('VIDEO', 'TVSERIES', 'MUSIC', 'PHOTOS', 'LASTFM');
$tab_strip = '';
foreach ($tabs as $key=>$tab)
$tab_strip .= ($key > 0 ? ' | ' : '').''.
($tab == $current ? font_tags(30, style_value("PAGE_TITLE_COLOUR",'#FFFFFF')).str($tab) : font_tags(30).str($tab)).'';
// Output Title
page_header( str('STATISTICS') );
echo ''.font_tags(28).$tab_strip.'';
$info = new infotab();
$menu = new menu();
$menu->set_menu_type(MENU_TYPE_LIST);
switch ($current)
{
case 'VIDEO':
$tab2 = isset($_REQUEST["tab2"]) ? $_REQUEST["tab2"] : 'GENRE';
$tabs = array('GENRE', 'CATEGORY', 'TOP20');
$num_videos = db_value("select count(filename) from movies");
$num_titles = db_value("select count(distinct title) from movies");
$info->add_item( str('NUMBER_OF_VIDEOS'), $num_videos );
$info->add_item( str('NUMBER_OF_TITLES'), $num_titles );
$tab_strip = '';
foreach ($tabs as $key=>$tab)
$tab_strip .= ($key > 0 ? ' | ' : '').''.
($tab == $tab2 ? font_tags(30, style_value("PAGE_TITLE_COLOUR",'#FFFFFF')).str($tab) : font_tags(30).str($tab)).'';
echo ''.font_tags(28).$tab_strip.'';
$data = stats_video($tab2);
break;
case 'TVSERIES':
$tab2 = isset($_REQUEST["tab2"]) ? $_REQUEST["tab2"] : 'PROGRAMME';
$tabs = array('PROGRAMME', 'GENRE', 'CATEGORY', 'TOP20');
$num_programme = db_value('select count(distinct programme) from tv');
$num_epsiode = db_value('select count(distinct series,filename) from tv');
$info->add_item( str('NUMBER_OF_TV_SHOWS'), $num_programme );
$info->add_item( str('NUMBER_OF_TV_EPISODES'), $num_epsiode );
$tab_strip = '';
foreach ($tabs as $key=>$tab)
$tab_strip .= ($key > 0 ? ' | ' : '').''.
($tab == $tab2 ? font_tags(30, style_value("PAGE_TITLE_COLOUR",'#FFFFFF')).str($tab) : font_tags(30).str($tab)).'';
echo ''.font_tags(28).$tab_strip.'';
$data = stats_tv($tab2);
break;
case 'MUSIC':
$tab2 = isset($_REQUEST["tab2"]) ? $_REQUEST["tab2"] : 'ARTIST';
$tabs = array('ARTIST', 'GENRE', 'CATEGORY', 'TOP20');
$num_tracks = db_value("select count(file_id) from mp3s");
$num_artist = db_value("select count(distinct artist) from mp3s");
$num_albums = db_value("select count(distinct album) from mp3s");
$info->add_item( str('NUMBER_OF_TRACKS'), $num_tracks );
$info->add_item( str('NUMBER_OF_ARTISTS'), $num_artist );
$info->add_item( str('NUMBER_OF_ALBUMS'), $num_albums );
$tab_strip = '';
foreach ($tabs as $key=>$tab)
$tab_strip .= ($key > 0 ? ' | ' : '').''.
($tab == $tab2 ? font_tags(30, style_value("PAGE_TITLE_COLOUR",'#FFFFFF')).str($tab) : font_tags(30).str($tab)).'';
echo ''.font_tags(28).$tab_strip.'';
$data = stats_music($tab2);
break;
case 'PHOTOS':
$tab2 = isset($_REQUEST["tab2"]) ? $_REQUEST["tab2"] : 'PHOTO_ALBUM';
$tabs = array('PHOTO_ALBUM', 'CATEGORY', 'TOP20');
$num_albums = db_value("select count(distinct dirname) from photos");
$num_photos = db_value("select count(file_id) from photos");
$info->add_item( str('NUMBER_OF_PHOTO_ALBUMS'), $num_albums );
$info->add_item( str('NUMBER_OF_PHOTOS'), $num_photos );
$tab_strip = '';
foreach ($tabs as $key=>$tab)
$tab_strip .= ($key > 0 ? ' | ' : '').''.
($tab == $tab2 ? font_tags(30, style_value("PAGE_TITLE_COLOUR",'#FFFFFF')).str($tab) : font_tags(30).str($tab)).'';
echo ''.font_tags(28).$tab_strip.'';
$data = stats_photos($tab2);
break;
case 'LASTFM':
$tab2 = isset($_REQUEST["tab2"]) ? $_REQUEST["tab2"] : 'RECENT_TRACKS';
$tabs = array('RECENT_TRACKS', 'TOP_ALBUMS', 'TOP_ARTISTS', 'TOP_TRACKS');
$tab_strip = '';
foreach ($tabs as $key=>$tab)
$tab_strip .= ($key > 0 ? ' | ' : '').''.
($tab == $tab2 ? font_tags(30, style_value("PAGE_TITLE_COLOUR",'#FFFFFF')).str($tab) : font_tags(30).str($tab)).'';
echo ''.font_tags(28).$tab_strip.'';
$data = stats_lastfm($tab2);
break;
}
//*************************************************************************************************
// Display the page
//*************************************************************************************************
$info->display();
foreach ($data as $item)
$menu->add_table_item( $item );
$menu->display_page($page);
page_footer( 'config.php' );
/**************************************************************************************************
End of file
**************************************************************************************************/
?>