Gazelle/sections/artist/artist_rearrange.php

692 lines
24 KiB
PHP
Raw Normal View History

2011-03-28 14:21:28 +00:00
<?
//~~~~~~~~~~~ Main artist page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//For sorting tags
function compare($X, $Y){
return($Y['count'] - $X['count']);
}
include(SERVER_ROOT.'/sections/bookmarks/functions.php'); // has_bookmarked()
include(SERVER_ROOT.'/sections/requests/functions.php');
include(SERVER_ROOT.'/classes/class_text.php'); // Text formatting class
$Text = new TEXT;
// Similar artist map
include(SERVER_ROOT.'/classes/class_artists_similar.php');
$ArtistID = $_GET['id'];
if(!is_number($ArtistID)) { error(0); }
if(!empty($_GET['revisionid'])) { // if they're viewing an old revision
$RevisionID=$_GET['revisionid'];
if(!is_number($RevisionID)){ error(0); }
$Data = $Cache->get_value("artist_$ArtistID"."_revision_$RevisionID");
} else { // viewing the live version
$Data = $Cache->get_value('artist_'.$ArtistID);
$RevisionID = false;
}
if($Data) {
$Data = unserialize($Data);
list($K, list($Name, $Image, $Body, $NumSimilar, $SimilarArray, $TorrentList, $GroupMeta)) = each($Data);
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
} else {
$sql = "SELECT
a.Name,
wiki.Image,
wiki.body,
a.VanityHouse
FROM artists_group AS a
LEFT JOIN wiki_artists AS wiki ON wiki.RevisionID=a.RevisionID
WHERE ";
if($RevisionID){
$sql.=" wiki.RevisionID='$RevisionID' ";
} else {
$sql.=" a.ArtistID='$ArtistID' ";
}
$sql .= " GROUP BY a.ArtistID";
$DB->query($sql, MYSQLI_NUM, true);
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
if($DB->record_count()==0) { error(404); }
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
list($Name, $Image, $Body, $VanityHouseArtist) = $DB->next_record();
}
//----------------- Build list and get stats
ob_start();
// Requests
$Requests = $Cache->get_value('artists_requests_'.$ArtistID);
if(!is_array($Requests)) {
$DB->query("SELECT
r.ID,
r.CategoryID,
r.Title,
r.Year,
r.TimeAdded,
COUNT(rv.UserID) AS Votes,
SUM(rv.Bounty) AS Bounty
FROM requests AS r
LEFT JOIN requests_votes AS rv ON rv.RequestID=r.ID
2012-10-11 08:00:15 +00:00
LEFT JOIN requests_artists AS ra ON r.ID=ra.RequestID
2011-03-28 14:21:28 +00:00
WHERE ra.ArtistID = ".$ArtistID."
AND r.TorrentID = 0
GROUP BY r.ID
ORDER BY Votes DESC");
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
if($DB->record_count() > 0) {
$Requests = $DB->to_array();
} else {
$Requests = array();
}
$Cache->cache_value('artists_requests_'.$ArtistID, $Requests);
}
$NumRequests = count($Requests);
$LastReleaseType = 0;
if(empty($GroupMeta) || empty($TorrentList)) {
2012-10-11 08:00:15 +00:00
$DB->query("SELECT
2011-03-28 14:21:28 +00:00
DISTINCT ta.GroupID, ta.Importance, tg.VanityHouse
FROM torrents_artists AS ta
JOIN torrents_group AS tg ON tg.ID=ta.GroupID
WHERE ta.ArtistID='$ArtistID'
ORDER BY ta.Importance, tg.ReleaseType ASC, tg.Year DESC");
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
$GroupIDs = $DB->collect('GroupID');
$GroupMeta = $DB->to_array('GroupID', MYSQLI_BOTH, false);
if(count($GroupIDs)>0) {
2012-10-11 08:00:15 +00:00
$TorrentList = Torrents::get_groups($GroupIDs, true, true);
2011-03-28 14:21:28 +00:00
$TorrentList = $TorrentList['matches'];
} else {
$TorrentList = array();
}
}
$NumGroups = count($TorrentList);
if(!empty($TorrentList)) {
?>
<div id="discog_table">
<?
}
// Get list of used release types
$UsedReleases = array();
$TorrentListByReleaseType = array();
// Check if user has preferences for ordering/showing
if (isset($LoggedUser['ArtistOptions']) && is_array($LoggedUser['ArtistOptions'])) {
$ReleaseTypesOrder = $LoggedUser['ArtistOptions'];
$HasShown = in_array(1, $ReleaseTypesOrder);
// Add releasetypes from default order, useful when new types are added
foreach($ReleaseTypesDefaultOrder as $Key => $ReleaseType) {
if(!array_key_exists($ReleaseType, $ReleaseTypesOrder)) {
$ReleaseTypesOrder[$ReleaseType] = $HasShown ? 1 : 0; // If no releasetype is open by default assume (s)he wants them all closed
}
}
} else {
// Load defaults
$ReleaseTypesOrder = array_flip($ReleaseTypesDefaultOrder);
}
foreach($ReleaseTypesOrder as $ReleaseType => $ReleaseTypeName) {
$TorrentListByReleaseType[$ReleaseType] = array();
}
//Names for releasetypes that are not uploadable but exist in the defaultordering
$ReleaseTypes[1023] = "Remixed By";
$ReleaseTypes[1024] = "Guest Appearance";
foreach($TorrentList as $GroupID=>$Group) {
if($GroupMeta[$GroupID]['Importance'] == '2') {
$TorrentList[$GroupID]['ReleaseType'] = 1024;
}
if($GroupMeta[$GroupID]['Importance'] == '3') {
$TorrentList[$GroupID]['ReleaseType'] = 1023;
}
if(!in_array($TorrentList[$GroupID]['ReleaseType'], $UsedReleases)) {
$UsedReleases[] = $TorrentList[$GroupID]['ReleaseType'];
}
$TorrentListByReleaseType[$TorrentList[$GroupID]['ReleaseType']][$GroupID] = $Group;
}
reset($TorrentList);
if(!empty($UsedReleases)) { ?>
<div id="releasetypes"class="box center">
<span id="releasetype_links">
<?
foreach($ReleaseTypesOrder as $ReleaseID => $Torrents) {
if(!in_array($ReleaseID, $UsedReleases)) {
continue;
}
switch($ReleaseTypes[$ReleaseID]) {
case "Remix" :
$DisplayName = "Remixes";
break;
case "Anthology" :
$DisplayName = "Anthologies";
break;
default :
$DisplayName = $ReleaseTypes[$ReleaseID]."s";
break;
}
?>
2013-02-09 08:01:01 +00:00
<a href="#torrents_<?=str_replace(" ", "_", strtolower($ReleaseTypes[$ReleaseID]))?>" id="torrents_<?=$ReleaseID?>_anchorlink" class="brackets"><?=$DisplayName?></a>
2011-03-28 14:21:28 +00:00
<?
}
if ($NumRequests > 0) {
?>
2013-02-09 08:01:01 +00:00
<a href="#requests" id="requests_anchorlink" class="brackets">Requests</a>
2011-03-28 14:21:28 +00:00
</span>
<span style="position:right" id="torrents_allopenclose" class="hidden">
2013-02-09 08:01:01 +00:00
<a href="#" class="brackets" onclick="setDefaultShow('all', true);return false;">All default open</a>
<a href="#" class="brackets" onclick="setDefaultShow('all', false);return false;">All default closed</a>
2011-03-28 14:21:28 +00:00
</span>
<? } ?>
</div>
<? }
$NumTorrents = 0;
$NumSeeders = 0;
$NumLeechers = 0;
$NumSnatches = 0;
function display_name($ReleaseType) {
global $ReleaseTypes;
return $DisplayName;
}
?>
<div id="torrents_tables">
<?
$OpenTable = false;
foreach ($TorrentListByReleaseType as $ReleaseType => $TorrentListForReleaseType) {
$NumTorrentsReleaseType = count($TorrentListForReleaseType);
2012-10-11 08:00:15 +00:00
if($OpenTable) {
2011-03-28 14:21:28 +00:00
?></table><?
$OpenTable = false;
}
switch($ReleaseTypes[$ReleaseType]) {
case "Remix" :
$DisplayName = "Remixes";
break;
case "Anthology" :
$DisplayName = "Anthologies";
break;
default :
$DisplayName = $ReleaseTypes[$ReleaseType]."s";
break;
}
$ReleaseTypeLabel = strtolower(str_replace(' ','_',$ReleaseTypes[$ReleaseType]));
if ((isset($LoggedUser['ArtistOptions']) && array_key_exists($ReleaseType, $LoggedUser['ArtistOptions'])) && $LoggedUser['ArtistOptions'][$ReleaseType] == 0) {
$HideDiscog = " hidden";
2012-10-11 08:00:15 +00:00
$HideDiscogDefault = true;
2011-03-28 14:21:28 +00:00
}
else {
$HideDiscog = "";
2012-10-11 08:00:15 +00:00
$HideDiscogDefault = false;
}
2011-03-28 14:21:28 +00:00
?>
2012-09-01 08:00:24 +00:00
<table class="torrent_table grouped release_table releases_<?=$ReleaseType?>_table<?=$NumTorrentsReleaseType==0?" empty hidden":""?>" id="torrents_<?=$ReleaseTypeLabel?>">
2011-03-28 14:21:28 +00:00
<tr class="colhead_dark">
<td class="small" style="width: 28px;"></td>
<td width="70%">
<span class="artist_normalcol">
<? if($NumTorrentsReleaseType > 0) { ?>
<a href="#">&uarr;</a>
<? } ?>
</span>&nbsp;
<strong><?=$DisplayName?></strong>&nbsp;
<span class="artist_normalcol">
<? if($NumTorrentsReleaseType > 0) { ?>
(<a href="#"<?=!$HideDiscogDefault?'class="hidden"':''?> id="releases_<?=$ReleaseType?>_viewlink" onclick="setShow('<?=$ReleaseType?>',true);return false;">View</a><a href="#"<?=$HideDiscogDefault?'class="hidden"':''?> id="releases_<?=$ReleaseType?>_hidelink" onclick="setShow('<?=$ReleaseType?>',false);return false;">Hide</a>)
<? } ?>
</span>
</td>
<td class="artist_normalcol">Size</td>
<td class="artist_normalcol sign"><img src="static/styles/<?=$LoggedUser['StyleName'] ?>/images/snatched.png" alt="Snatches" title="Snatches" /></td>
<td class="artist_normalcol sign"><img src="static/styles/<?=$LoggedUser['StyleName'] ?>/images/seeders.png" alt="Seeders" title="Seeders" /></td>
<td class="artist_normalcol sign"><img src="static/styles/<?=$LoggedUser['StyleName'] ?>/images/leechers.png" alt="Leechers" title="Leechers" /></td>
<td class="artist_editcol hidden" align="right">
2013-02-09 08:01:01 +00:00
<a href="#"<?=!$HideDiscogDefault?' class="hidden"':''?> id="releases_<?=$ReleaseType?>_openlink" onclick="setDefaultShow('<?=$ReleaseType?>',true);return false;" class="brackets">default closed</a>
<a href="#"<?=$HideDiscogDefault?' class="hidden"':''?> id="releases_<?=$ReleaseType?>_closedlink" onclick="setDefaultShow('<?=$ReleaseType?>',false);return false;" class="brackets">default open</a>
2011-03-28 14:21:28 +00:00
<input class="hidden" id="releases_<?=$ReleaseType?>_defaultopen"<?=!$HideDiscogDefault?' checked="checked"':''?> type="checkbox" title="Show" />
&nbsp;
<span style="cursor:move;" id="torrents_<?=$ReleaseTypeLabel?>_handle">&#9776;</span>
</td>
</tr>
<?
$OpenTable = true;
foreach($TorrentListForReleaseType as $GroupID => $Group) {
list($GroupID, $GroupName, $GroupYear, $GroupRecordLabel, $GroupCatalogueNumber, $TagList, $NewReleaseType, $GroupVanityHouse, $Torrents, $GroupArtists) = array_values($Group);
$GroupVanityHouse = $GroupMeta[$GroupID]['VanityHouse'];
$TagList = explode(' ',str_replace('_','.',$TagList));
$TorrentTags = array();
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
// $Tags array is for the sidebar on the right
foreach($TagList as $Tag) {
if(!isset($Tags[$Tag])) {
$Tags[$Tag] = array('name'=>$Tag, 'count'=>1);
} else {
$Tags[$Tag]['count']++;
}
$TorrentTags[]='<a href="torrents.php?taglist='.$Tag.'">'.$Tag.'</a>';
}
$TorrentTags = implode(', ', $TorrentTags);
$TorrentTags = '<br /><div class="tags">'.$TorrentTags.'</div>';
if (($ReleaseType == 1023) || ($ReleaseType == 1024)) {
2012-10-11 08:00:15 +00:00
$ArtistPrefix = Artists::display_artists(array(1 => $GroupArtists));
2011-03-28 14:21:28 +00:00
} else {
$ArtistPrefix = '';
}
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
$DisplayName = $ArtistPrefix . '<a href="torrents.php?id='.$GroupID.'" title="View Torrent">'.$GroupName.'</a>';
if($GroupYear>0) { $DisplayName = $GroupYear. ' - '.$DisplayName; }
if($GroupVanityHouse) { $DisplayName .= ' [<abbr title="This is a vanity house release">VH</abbr>]'; }
?>
<tr class="releases_<?=$ReleaseType?> group discog<?=$HideDiscog?>">
<td class="center">
<div class="show_torrents"><a href="#" class="show_torrents_link" onclick="toggle_group(<?=$GroupID?>, this, event)" title="Collapse this group"></a></div>
</td>
<td class="artist_normalcol" colspan="6">
<strong><?=$DisplayName?></strong>
<?=$TorrentTags?>
</td>
</tr>
<?
$LastRemasterYear = '-';
$LastRemasterTitle = '';
$LastRemasterRecordLabel = '';
$LastRemasterCatalogueNumber = '';
$LastMedia = '';
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
$EditionID = 0;
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
foreach ($Torrents as $TorrentID => $Torrent) {
$NumTorrents++;
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
$Torrent['Seeders'] = (int)$Torrent['Seeders'];
$Torrent['Leechers'] = (int)$Torrent['Leechers'];
$Torrent['Snatched'] = (int)$Torrent['Snatched'];
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
$NumSeeders+=$Torrent['Seeders'];
$NumLeechers+=$Torrent['Leechers'];
$NumSnatches+=$Torrent['Snatched'];
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
if($Torrent['RemasterTitle'] != $LastRemasterTitle || $Torrent['RemasterYear'] != $LastRemasterYear ||
$Torrent['RemasterRecordLabel'] != $LastRemasterRecordLabel || $Torrent['RemasterCatalogueNumber'] != $LastRemasterCatalogueNumber || $Torrent['Media'] != $LastMedia) {
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
$EditionID++;
2012-10-11 08:00:15 +00:00
if($Torrent['RemasterTitle'] || $Torrent['RemasterYear'] || $Torrent['RemasterRecordLabel'] || $Torrent['RemasterCatalogueNumber']) {
2011-03-28 14:21:28 +00:00
$RemasterName = $Torrent['RemasterYear'];
$AddExtra = " - ";
if($Torrent['RemasterRecordLabel']) { $RemasterName .= $AddExtra.display_str($Torrent['RemasterRecordLabel']); $AddExtra=' / '; }
if($Torrent['RemasterCatalogueNumber']) { $RemasterName .= $AddExtra.display_str($Torrent['RemasterCatalogueNumber']); $AddExtra=' / '; }
if($Torrent['RemasterTitle']) { $RemasterName .= $AddExtra.display_str($Torrent['RemasterTitle']); $AddExtra=' / '; }
$RemasterName .= $AddExtra.display_str($Torrent['Media']);
2012-10-11 08:00:15 +00:00
2011-03-28 14:21:28 +00:00
?>
<tr class="releases_<?=$ReleaseType?> groupid_<?=$GroupID?> edition group_torrent discog <?=$HideDiscog?>">
2012-10-06 08:00:19 +00:00
<td colspan="7" class="artist_normalcol edition_info"><strong><a href="#" onclick="toggle_edition(<?=$GroupID?>, <?=$EditionID?>, this, event)" title="Collapse this edition. Hold &quot;Ctrl&quot; while clicking to collapse all editions in this torrent group.">&minus;</a> <?=$RemasterName?></strong></a></td>
2011-03-28 14:21:28 +00:00
</tr>
<?
} else {
$MasterName = "Original Release";
$AddExtra = " / ";
if($GroupRecordLabel) { $MasterName .= $AddExtra.$GroupRecordLabel; $AddExtra=' / '; }
if($GroupCatalogueNumber) { $MasterName .= $AddExtra.$GroupCatalogueNumber; $AddExtra=' / '; }
$MasterName .= $AddExtra.display_str($Torrent['Media']);
?>
<tr class="releases_<?=$ReleaseType?> groupid_<?=$GroupID?> edition group_torrent <?=$HideDiscog?>">
2012-10-06 08:00:19 +00:00
<td colspan="7" class="artist_normalcol edition_info"><strong><a href="#" onclick="toggle_edition(<?=$GroupID?>, <?=$EditionID?>, this, event)" title="Collapse this edition. Hold &quot;Ctrl&quot; while clicking to collapse all editions in this torrent group.">&minus;</a> <?=$MasterName?></strong></a></td>
2011-03-28 14:21:28 +00:00
</tr>
<?
}
}
$LastRemasterTitle = $Torrent['RemasterTitle'];
$LastRemasterYear = $Torrent['RemasterYear'];
$LastRemasterRecordLabel = $Torrent['RemasterRecordLabel'];
$LastRemasterCatalogueNumber = $Torrent['RemasterCatalogueNumber'];
$LastMedia = $Torrent['Media'];
?>
<tr class="releases_<?=$ReleaseType?> groupid_<?=$GroupID?> edition_<?=$EditionID?> group_torrent discog <?=$HideDiscog?>">
<td class="artist_normalcol" colspan="2">
<span>
2013-02-15 08:00:35 +00:00
<a href="torrents.php?action=download&amp;id=<?=$TorrentID?>&amp;authkey=<?=$LoggedUser['AuthKey']?>&amp;torrent_pass=<?=$LoggedUser['torrent_pass']?>" title="Download" class="brackets">DL</a>
2011-03-28 14:21:28 +00:00
</span>
2012-10-11 08:00:15 +00:00
&nbsp;&nbsp;&raquo;&nbsp; <a href="torrents.php?id=<?=$GroupID?>&amp;torrentid=<?=$TorrentID?>"><?=Torrents::torrent_info($Torrent)?></a>
2011-03-28 14:21:28 +00:00
</td>
2012-10-11 08:00:15 +00:00
<td class="artist_normalcol nobr"><?=Format::get_size($Torrent['Size'])?></td>
2011-03-28 14:21:28 +00:00
<td class="artist_normalcol"><?=number_format($Torrent['Snatched'])?></td>
<td class="artist_normalcol<?=($Torrent['Seeders']==0)?' r00':''?>"><?=number_format($Torrent['Seeders'])?></td>
<td class="artist_normalcol"><?=number_format($Torrent['Leechers'])?></td>
<td class="artist_editcol hidden"></td>
</tr>
<?
}
}
}
if(!empty($TorrentList)) { ?>
</table>
</div>
<?}
?>
</div>
<?
$TorrentDisplayList = ob_get_clean();
//----------------- End building list and getting stats
2012-10-11 08:00:15 +00:00
View::show_header($Name, 'browse,requests,artists,bbcode');
2011-03-28 14:21:28 +00:00
?>
<div class="thin">
2012-08-19 08:00:19 +00:00
<div class="header">
<h2><?=$Name?><? if ($RevisionID) { ?> (Revision #<?=$RevisionID?>)<? } if ($VanityHouseArtist) { ?> [Vanity House] <? } ?></h2>
<span style="font-size: 0.7em;float:right;">
2013-02-09 08:01:01 +00:00
<a href="#" onclick="editOrdering();return false;" class="brackets" id="editlayout">Edit ordering</a>
2012-08-19 08:00:19 +00:00
<span class="hidden" id="savinglayout">Saving ordering...</span>
2013-02-09 08:01:01 +00:00
<a href="#" onclick="saveOrdering();return false;" class="brackets hidden" id="savelayout">Save ordering</a>
2012-08-19 08:00:19 +00:00
</span>
</h2>
<div id="emptylinkbox" class="linkbox hidden"></div>
<div id="linkbox" class="linkbox">
2011-03-28 14:21:28 +00:00
<? if (check_perms('site_submit_requests')) { ?>
2013-02-09 08:01:01 +00:00
<a href="requests.php?action=new&amp;artistid=<?=$ArtistID?>" class="brackets">Add request</a>
2011-03-28 14:21:28 +00:00
<? }
if (check_perms('site_torrents_notify')) {
if (($Notify = $Cache->get_value('notify_artists_'.$LoggedUser['ID'])) === FALSE) {
$DB->query("SELECT ID, Artists FROM users_notify_filters WHERE UserID='$LoggedUser[ID]' AND Label='Artist notifications' LIMIT 1");
$Notify = $DB->next_record(MYSQLI_ASSOC);
$Cache->cache_value('notify_artists_'.$LoggedUser['ID'], $Notify, 0);
}
if (stripos($Notify['Artists'], '|'.$Name.'|') === FALSE) {
?>
2013-02-09 08:01:01 +00:00
<a href="artist.php?action=notify&amp;artistid=<?=$ArtistID?>&amp;auth=<?=$LoggedUser['AuthKey']?>" class="brackets">Notify of new uploads</a>
2011-03-28 14:21:28 +00:00
<?
} else {
?>
2013-02-09 08:01:01 +00:00
<a href="artist.php?action=notifyremove&amp;artistid=<?=$ArtistID?>&amp;auth=<?=$LoggedUser['AuthKey']?>" class="brackets">Do not notify of new uploads</a>
2011-03-28 14:21:28 +00:00
<?
}
}
if (has_bookmarked('artist', $ArtistID)) {
?>
2013-02-09 08:01:01 +00:00
<a href="#" id="bookmarklink_artist_<?=$ArtistID?>" class="brackets" onclick="Unbookmark('artist', <?=$ArtistID?>,'Bookmark');return false;">Remove bookmark</a>
2011-03-28 14:21:28 +00:00
<?
2012-10-11 08:00:15 +00:00
} else {
2011-03-28 14:21:28 +00:00
?>
2013-02-09 08:01:01 +00:00
<a href="#" id="bookmarklink_artist_<?=$ArtistID?>" class="brackets" onclick="Bookmark('artist', <?=$ArtistID?>,'Remove bookmark');return false;">Bookmark</a>
2011-03-28 14:21:28 +00:00
<?
}
if (check_perms('site_edit_wiki')) {
?>
2013-02-09 08:01:01 +00:00
<a href="artist.php?action=edit&amp;artistid=<?=$ArtistID?>" class="brackets">Edit</a>
2011-03-28 14:21:28 +00:00
<? } ?>
2013-02-09 08:01:01 +00:00
<a href="artist.php?action=history&amp;artistid=<?=$ArtistID?>" class="brackets">View history</a>
2011-03-28 14:21:28 +00:00
<? if (check_perms('site_delete_artist') && check_perms('torrents_delete')) { ?>
2013-02-09 08:01:01 +00:00
<a href="artist.php?action=delete&amp;artistid=<?=$ArtistID?>&amp;auth=<?=$LoggedUser['AuthKey']?>" class="brackets">Delete</a>
2011-03-28 14:21:28 +00:00
<? }
if ($RevisionID && check_perms('site_edit_wiki')) {
?>
2013-02-09 08:01:01 +00:00
<a href="artist.php?action=revert&amp;artistid=<?=$ArtistID?>&amp;revisionid=<?=$RevisionID?>&amp;auth=<?=$LoggedUser['AuthKey']?>" class="brackets">
2013-01-16 08:00:31 +00:00
Revert to this revision
2013-02-09 08:01:01 +00:00
</a>
2011-03-28 14:21:28 +00:00
<? } ?>
2012-08-19 08:00:19 +00:00
</div>
2011-03-28 14:21:28 +00:00
</div>
<div class="sidebar">
<? if($Image) { ?>
2012-08-17 08:00:13 +00:00
<div class="box box_image">
2011-03-28 14:21:28 +00:00
<div class="head"><strong><?=$Name?></strong></div>
<div style="text-align:center;padding:10px 0px;">
<img style="max-width: 220px;" src="<?=$Image?>" alt="<?=$Name?>" onclick="lightbox.init(this,220);" />
</div>
</div>
<? }
?>
<div class="box">
<div class="head"><strong>Tags</strong></div>
<ul class="stats nobullet">
<?
uasort($Tags, 'compare');
foreach ($Tags as $TagName => $Tag) {
?>
<li><a href="torrents.php?taglist=<?=$TagName?>"><?=$TagName?></a> (<?=$Tag['count']?>)</li>
<?
}
?>
</ul>
</div>
<?
// Stats
?>
2012-08-17 08:00:13 +00:00
<div class="box box_info box_statistics_artist">
2011-03-28 14:21:28 +00:00
<div class="head"><strong>Statistics</strong></div>
<ul class="stats nobullet">
2013-01-16 08:00:31 +00:00
<li>Number of groups: <?=number_format($NumGroups)?></li>
<li>Number of torrents: <?=number_format($NumTorrents)?></li>
<li>Number of seeders: <?=number_format($NumSeeders)?></li>
<li>Number of leechers: <?=number_format($NumLeechers)?></li>
<li>Number of snatches: <?=number_format($NumSnatches)?></li>
2011-03-28 14:21:28 +00:00
</ul>
</div>
<?
if(empty($SimilarArray)) {
$DB->query("
SELECT
s2.ArtistID,
a.Name,
ass.Score,
ass.SimilarID
FROM artists_similar AS s1
JOIN artists_similar AS s2 ON s1.SimilarID=s2.SimilarID AND s1.ArtistID!=s2.ArtistID
JOIN artists_similar_scores AS ass ON ass.SimilarID=s1.SimilarID
JOIN artists_group AS a ON a.ArtistID=s2.ArtistID
WHERE s1.ArtistID='$ArtistID'
ORDER BY ass.Score DESC
LIMIT 30
");
$SimilarArray = $DB->to_array();
$NumSimilar = count($SimilarArray);
}
?>
2012-08-17 08:00:13 +00:00
<div class="box box_artists box_artists_similar">
2011-03-28 14:21:28 +00:00
<div class="head"><strong>Similar artists</strong></div>
<ul class="stats nobullet">
<?
if($NumSimilar == 0) { ?>
2012-09-23 08:00:25 +00:00
<li><span style="font-style: italic;">None found</span></li>
2011-03-28 14:21:28 +00:00
<? }
$First = true;
2012-09-23 08:00:25 +00:00
foreach ($SimilarArray as $SimilarArtist) {
2011-03-28 14:21:28 +00:00
list($Artist2ID, $Artist2Name, $Score, $SimilarID) = $SimilarArtist;
$Score = $Score/100;
if($First) {
2012-09-23 08:00:25 +00:00
$Max = $Score + 1;
2011-03-28 14:21:28 +00:00
$First = false;
}
2012-09-23 08:00:25 +00:00
2011-03-28 14:21:28 +00:00
$FontSize = (ceil((((($Score - 2)/$Max - 2) * 4)))) + 8;
2012-09-23 08:00:25 +00:00
2011-03-28 14:21:28 +00:00
?>
<li>
<span title=<?=$Score?>><a href="artist.php?id=<?=$Artist2ID?>" style="float:left; display:block;"><?=$Artist2Name?></a></span> <div style="float:right; display:block; letter-spacing: -1px;">
2013-02-09 08:01:01 +00:00
<a href="artist.php?action=vote_similar&amp;artistid=<?=$ArtistID?>&amp;similarid=<?=$SimilarID?>&amp;way=down" style="font-family: monospace;" class="brackets">&minus;</a>
<a href="artist.php?action=vote_similar&amp;artistid=<?=$ArtistID?>&amp;similarid=<?=$SimilarID?>&amp;way=up" style="font-family: monospace;" class="brackets">+</a>
2012-09-23 08:00:25 +00:00
<? if(check_perms('site_delete_tag')) { ?>
2013-02-09 08:01:01 +00:00
<a href="artist.php?action=delete_similar&amp;similarid=<?=$SimilarID?>&amp;auth=<?=$LoggedUser['AuthKey']?>" class="brackets">X</a>
2012-09-23 08:00:25 +00:00
<? } ?>
2011-03-28 14:21:28 +00:00
</div>
<br style="clear:both" />
</li>
<? } ?>
</ul>
</div>
2012-08-17 08:00:13 +00:00
<div class="box box_addartists box_addartists_similar">
2011-03-28 14:21:28 +00:00
<div class="head"><strong>Add similar artist</strong></div>
<ul class="nobullet">
<li>
2012-09-15 08:00:25 +00:00
<form class="add_form" name="similar_artists" action="artist.php" method="post">
2011-03-28 14:21:28 +00:00
<input type="hidden" name="action" value="add_similar" />
<input type="hidden" name="auth" value="<?=$LoggedUser['AuthKey']?>" />
<input type="hidden" name="artistid" value="<?=$ArtistID?>" />
<input type="text" autocomplete="off" id="artistsimilar" name="artistname" size="20" />
<input type="submit" value="+" />
</form>
</li>
</ul>
</div>
</div>
<div class="main_column">
<?
echo $TorrentDisplayList;
if($NumRequests > 0) {
2012-09-23 08:00:25 +00:00
2011-03-28 14:21:28 +00:00
?>
2012-09-01 08:00:24 +00:00
<table cellpadding="6" cellspacing="1" border="0" class="requests_table border" width="100%" id="requests">
2011-03-28 14:21:28 +00:00
<tr class="colhead_dark">
<td style="width:48%;">
<a href="#">&uarr;</a>&nbsp;
2013-01-16 08:00:31 +00:00
<strong>Request name</strong>
2011-03-28 14:21:28 +00:00
</td>
<td>
<strong>Vote</strong>
</td>
<td>
<strong>Bounty</strong>
</td>
<td>
<strong>Added</strong>
</td>
</tr>
<?
foreach($Requests as $Request) {
list($RequestID, $CategoryID, $Title, $Year, $TimeAdded, $Votes, $Bounty) = $Request;
2012-09-23 08:00:25 +00:00
2011-03-28 14:21:28 +00:00
$CategoryName = $Categories[$CategoryID - 1];
2012-09-23 08:00:25 +00:00
2011-03-28 14:21:28 +00:00
if($CategoryName == "Music") {
$ArtistForm = get_request_artists($RequestID);
2012-10-11 08:00:15 +00:00
$ArtistLink = Artists::display_artists($ArtistForm, true, true);
2011-03-28 14:21:28 +00:00
$FullName = $ArtistLink."<a href='requests.php?action=view&amp;id=".$RequestID."'>".$Title." [".$Year."]</a>";
} else if($CategoryName == "Audiobooks" || $CategoryName == "Comedy") {
$FullName = "<a href='requests.php?action=view&amp;id=".$RequestID."'>".$Title." [".$Year."]</a>";
} else {
$FullName ="<a href='requests.php?action=view&amp;id=".$RequestID."'>".$Title."</a>";
}
2012-09-23 08:00:25 +00:00
2011-03-28 14:21:28 +00:00
$Row = ($Row == 'a') ? 'b' : 'a';
2012-09-23 08:00:25 +00:00
2011-03-28 14:21:28 +00:00
$Tags = get_request_tags($RequestID);
?>
<tr class="row<?=$Row?>">
<td>
<?=$FullName?>
<div class="tags">
2012-09-23 08:00:25 +00:00
<?
2011-03-28 14:21:28 +00:00
$TagList = array();
foreach($Tags as $TagID => $TagName) {
$TagList[] = "<a href='requests.php?tags=".$TagName."'>".display_str($TagName)."</a>";
2011-03-28 14:21:28 +00:00
}
$TagList = implode(', ', $TagList);
?>
<?=$TagList?>
</div>
</td>
<td>
2012-09-23 08:00:25 +00:00
<?=$Votes?>
2011-03-28 14:21:28 +00:00
<? if(check_perms('site_vote')){ ?>
<input type="hidden" id="auth" name="auth" value="<?=$LoggedUser['AuthKey']?>" />
&nbsp;&nbsp; <a href="javascript:Vote(0)"><strong>(+)</strong></a>
2012-10-11 08:00:15 +00:00
<? } ?>
2011-03-28 14:21:28 +00:00
</td>
<td>
2012-10-11 08:00:15 +00:00
<?=Format::get_size($Bounty)?>
2011-03-28 14:21:28 +00:00
</td>
<td>
<?=time_diff($TimeAdded)?>
</td>
</tr>
<? } ?>
</table>
<?
}
// Similar artist map
if($NumSimilar>0) {
$SimilarData = $Cache->get_value('similar_positions_'.$ArtistID);
2012-09-23 08:00:25 +00:00
2011-03-28 14:21:28 +00:00
if(!$Data) {
include(SERVER_ROOT.'/classes/class_image.php');
$Img = new IMAGE;
$Img->create(WIDTH, HEIGHT);
$Img->color(255,255,255, 127);
2012-09-23 08:00:25 +00:00
2011-03-28 14:21:28 +00:00
$Similar = new ARTISTS_SIMILAR($ArtistID, $Name);
$Similar->set_up();
$Similar->set_positions();
$Similar->background_image();
2012-09-23 08:00:25 +00:00
2011-03-28 14:21:28 +00:00
$SimilarData = $Similar->dump_data();
2012-09-23 08:00:25 +00:00
2011-03-28 14:21:28 +00:00
$Cache->cache_value('similar_positions_'.$ArtistID, $SimilarData, 3600*24);
} else {
$Similar = new ARTISTS_SIMILAR($ArtistID);
$Similar->load_data($SimilarData);
}
?>
<div id="similar_artist_map" class="box">
<div class="head"><strong>Similar artist map</strong></div>
<div style="width:<?=WIDTH?>px;height:<?=HEIGHT?>px;position:relative;background-image:url(static/similar/<?=$ArtistID?>.png?t=<?=time()?>)">
<?
$Similar->write_artists();
?>
</div>
</div>
2012-09-23 08:00:25 +00:00
<? } // if $NumSimilar>0 ?>
2011-03-28 14:21:28 +00:00
<div class="box">
<div class="head"><strong>Artist info</strong></div>
<div class="body"><?=$Text->full_format($Body)?></div>
</div>
</div>
</div>
<?
2012-10-11 08:00:15 +00:00
View::show_footer();
2011-03-28 14:21:28 +00:00
// Cache page for later use
2012-09-23 08:00:25 +00:00
if($RevisionID) {
2011-03-28 14:21:28 +00:00
$Key = "artist_$ArtistID"."_revision_$RevisionID";
2012-09-23 08:00:25 +00:00
} else {
2011-03-28 14:21:28 +00:00
$Key = 'artist_'.$ArtistID;
}
$Data = serialize(array(array($Name, $Image, $Body, $NumSimilar, $SimilarArray, $TorrentList, $GroupMeta)));
$Cache->cache_value($Key, $Data, 3600);
?>