1
0
Fork 0
mirror of https://github.com/Yetangitu/ampache synced 2025-10-04 18:29:40 +02:00
ampache/artists.php
Paul Arthur f65076b93d Switch from _() to T_()
Even if we move away from php-gettext in the future, it's easy to
write a quick T_() as a simple wrapper; it's not so easy to rewrite
PHP to allow redeclaration of a function.
2012-04-12 21:13:29 -04:00

217 lines
7.1 KiB
PHP

<?php
/* vim:set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab: */
/**
* Artists
*
*
* LICENSE: GNU General Public License, version 2 (GPLv2)
* Copyright (c) 2001 - 2011 Ampache.org All Rights Reserved
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License v2
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* @package Ampache
* @copyright 2001 - 2011 Ampache.org
* @license http://opensource.org/licenses/gpl-2.0 GPLv2
* @link http://www.ampache.org/
*/
require_once 'lib/init.php';
show_header();
/**
* Display Switch
*/
switch($_REQUEST['action']) {
case 'show':
$artist = new Artist($_REQUEST['artist']);
$artist->format();
$object_ids = $artist->get_albums($_REQUEST['catalog']);
$object_type = 'album';
require_once Config::get('prefix') . '/templates/show_artist.inc.php';
if (Config::get('show_similar')) {
if ($object_ids = Recommendation::get_artists_like($artist->id)) {
// Ugly code to grab the relevant entries.
// Almost looks like Perl.
$object_ids = array_map(create_function('$i', 'return $i[\'id\'];'), $object_ids);
require_once Config::get('prefix') . '/templates/show_recommended_artists.inc.php';
}
}
break;
case 'show_all_songs':
$artist = new Artist($_REQUEST['artist']);
$artist->format();
$object_type = 'song';
$object_ids = $artist->get_songs();
require_once Config::get('prefix') . '/templates/show_artist.inc.php';
break;
case 'update_from_tags':
$type = 'artist';
$object_id = intval($_REQUEST['artist']);
$target_url = Config::get('web_path') . "/artists.php?action=show&amp;artist=" . $object_id;
require_once Config::get('prefix') . '/templates/show_update_items.inc.php';
break;
case 'rename_similar':
if (!$user->has_access('100')) { access_denied(); }
$count = 0;
if (isset($_REQUEST['artist']) && is_numeric($_REQUEST['artist']) && isset($_REQUEST['artists']) && is_array($_REQUEST['artists'])) {
$artist = new Artist($_REQUEST['artist']);
if ($artist->id)
foreach ($_REQUEST['artists'] as $artist_id) {
if (is_numeric($artist_id)) {
$that_artist = new Artist($artist_id);
if ($that_artist->id) {
$that_artist->merge($artist->id);
$count++;
} else
$GLOBALS['error']->add_error('general', sprintf(T_('Error: No such artist \'%s\''), $artist_id));
} else {
$GLOBALS['error']->add_error('general', sprintf(T_('Error: \'%s\' is not a valid ID'), $artist_id));
}
}
else
$GLOBALS['error']->add_error('general', sprintf(T_('Error: No such artist \'%s\''), $_REQUEST['artist']));
} else {
$GLOBALS['error']->add_error('general', T_("Error: Errenous request"));
}
if ($count > 0) {
show_confirmation (
T_('Renamed artist(s)'),
sprintf(T_('%1$s artists have been merged with %2$s'), $count, $artist->name),
conf('web_path') . "/artists.php?action=show&artist=" . $artist->id
);
} else {
$GLOBALS['error']->print_error('general');
}
break;
case 'show_similar':
if (!$GLOBALS['user']->has_access('75')) {
access_denied();
exit;
}
$artist = new Artist($_REQUEST['artist']);
//options
$similar_artists = $artist->get_similar_artists(
make_bool($_POST['n_rep_uml']),
$_POST['n_filter'],
$_POST['n_ignore'],
$_POST['c_mode'],
$_POST['c_count_w'],
$_POST['c_percent_w'],
$_POST['c_distance_l'],
make_bool($_POST['c_ignins_l']));
$artist_id = $artist->id;
$artist_name = $artist->name;
require Config::get('prefix') . '/templates/show_similar_artists.inc.php';
break;
case 'rename':
//die if not enough permissions
if (!$user->has_access('100')) { access_denied(); }
/* Get the artist */
$artist = new Artist($_REQUEST['artist']);
$catalog = new Catalog();
//check if we've been given a target
if ((isset($_POST['artist_id']) && $_POST['artist_id'] != $artist->id ) || (isset($_POST['artist_name']) && $_POST['artist_name'] != "")) {
//if we want to update id3 tags, then get the array of ids now, it's too late afterwards
if (make_bool($_POST['update_id3']))
$songs = $artist->get_songs();
$ret = 0;
//the manual rename takes priority, but if they tested out the insert thing ignore
if ($_POST['artist_name'] != "" && $_POST['artist_name'] != $artist->name) {
//then just change the name of the artist in the db
$ret = $artist->rename($_POST['artist_name']);
$newid = $ret;
$newname = $_POST['artist_name'];
}
//new id?
elseif ($_POST['artist_id'] != $artist->id) {
//merge with other artist
$ret = $artist->merge($_POST['artist_id']);
$newid = $_POST['artist_id'];
$newname = $ret;
} // elseif different artist and id
//if no changes, no changes
//now flag for id3tag update if selected, and something actually happaned
if ($ret && make_bool($_POST['update_id3'])) {
/* Set the rename information in the db */
foreach ($songs as $song) {
$flag = new Flag();
$flag->add($song->id,"song","retag","Renamed artist, retag");
$flag_qstring = "REPLACE INTO flagged " .
"SET type = 'setid3', song = '" . $song->id . "', date = '" . time() . "', user = '" . $GLOBALS['user']->username . "'";
Dba::write($flag_qstring);
}
} // end if they wanted to update
// show something other than a blank screen after this
if ($ret) {
show_confirmation (
T_('Renamed artist'),
sprintf(T_('%1$s is now known as %2$s'), $artist->name, $newname),
conf('web_path') . "/artists.php?action=show&artist=" . $newid
);
}
} // if we've got the needed variables
/* Else we've got an error! But be lenient, and just show the form again */
else {
require (conf('prefix') . '/templates/show_rename_artist.inc.php');
}
break;
case 'show_rename':
$artist = new Artist($_REQUEST['artist']);
require (conf('prefix') . '/templates/show_rename_artist.inc.php');
break;
case 'match':
case 'Match':
$match = scrub_in($_REQUEST['match']);
if ($match == "Browse" || $match == "Show_all") { $chr = ""; }
else { $chr = $match; }
/* Enclose this in the purty box! */
require (conf('prefix') . '/templates/show_box_top.inc.php');
show_alphabet_list('artists','artists.php',$match);
show_alphabet_form($chr, T_('Show Artists starting with'),"artists.php?action=match");
require (conf('prefix') . '/templates/show_box_bottom.inc.php');
if ($match === "Browse") {
show_artists();
}
elseif ($match === "Show_all") {
$offset_limit = 999999;
show_artists();
}
else {
if ($chr == '') {
show_artists('A');
}
else {
show_artists($chr);
}
}
break;
} // end switch
show_footer();
?>