1
0
Fork 0
mirror of https://github.com/Yetangitu/ampache synced 2025-10-05 10:49:37 +02:00
ampache/admin/flag.php
Paul Arthur 4aa256cb07 Clean up some PHPDoc crap
Remove misleading, unvetted, or in some cases just plain wrong data.
Packages and categories weren't being used correctly.  They still
aren't.
2011-04-04 17:37:10 -04:00

311 lines
9 KiB
PHP

<?php
/* vim:set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab: */
/**
* Admin Flag
*
*
* 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 '../lib/init.php';
if (!Access::check('interface','100')) {
access_denied();
exit();
}
show_header();
switch ($_REQUEST['action']) {
case 'edit_song':
$catalog = new Catalog();
$song = new Song($_REQUEST['song_id']);
$new_song = new Song();
/* Setup the vars so we can use the update_song function */
$new_song->title = unhtmlentities(scrub_in($_REQUEST['title']));
$new_song->track = unhtmlentities(scrub_in($_REQUEST['track']));
$new_song->year = unhtmlentities(scrub_in($_REQUEST['year']));
$new_song->comment = unhtmlentities(scrub_in($_REQUEST['comment']));
/* If no change in string take Drop down */
if (strcasecmp(stripslashes($_REQUEST['album_string']),$song->get_album_name()) == 0) {
$album = $song->get_album_name($_REQUEST['album']);
}
else {
$album = scrub_in($_REQUEST['album_string']);
}
if (strcasecmp(stripslashes($_REQUEST['artist_string']),$song->get_artist_name()) == 0) {
$artist = $song->get_artist_name($_REQUEST['artist']);
}
else {
$artist = scrub_in($_REQUEST['artist_string']);
}
/* Use the check functions to get / create ids for this info */
$new_song->album = $catalog->check_album(unhtmlentities($album));
$new_song->artist = $catalog->check_artist(unhtmlentities($artist));
/* Update this mofo, store an old copy for cleaning */
$old_song = new Song();
$old_song->artist = $song->artist;
$old_song->album = $song->album;
$song->update_song($song->id,$new_song);
/* Now that it's been updated clean old junk entries */
$catalog = new Catalog();
$cleaned = $catalog->clean_single_song($old_song);
/* Add a tagging record of this so we can fix the file */
if ($_REQUEST['flag']) {
$flag = new Flag();
$flag->add($song->id,'song','retag','Edited Song, auto-tag');
}
if (isset($cleaned['artist']) || isset($cleaned['album'])) { $_SESSION['source'] = Config::get('web_path') . '/index.php'; }
show_confirmation(_('Song Updated'),_('The requested song has been updated'),$_SESSION['source']);
break;
// Show the page for editing a full album
case 'show_edit_album':
$album = new Album($_REQUEST['album_id']);
require_once(conf('prefix') . '/templates/show_edit_album.inc.php');
break;
// Update all songs from this album
case 'edit_album':
// Build the needed album
$album = new Album($_REQUEST['album_id']);
// Create the needed catalog object cause we can't do
// static class methods :(
$catalog = new Catalog();
$flag = new Flag();
/* Check the new Name */
$album_id = $catalog->check_album($_REQUEST['name'],$_REQUEST['year']);
$songs = $album->get_songs();
foreach ($songs as $song) {
// Make that copy and change the album
$new_song = $song;
$new_song->album = $album_id;
$song->update_song($song->id,$new_song);
if ($_REQUEST['flag'] == '1') {
$flag->add($song->id,'song','retag','Edited Song, auto-tag');
}
} // end foreach songs
// Clean out the old album
$catalog->clean_albums();
show_confirmation(_('Album Updated'),'',Config::get('web_path') . '/admin/index.php');
break;
// Show the page for editing a full artist
case 'show_edit_artist':
$artist = new Artist($_REQUEST['artist_id']);
require_once(conf('prefix') . '/templates/show_edit_artist.inc.php');
break;
// Update all songs by this artist
case 'edit_artist':
// Build the needed artist
$artist = new Artist($_REQUEST['artist_id']);
// Create the needed objects, a pox on PHP4
$catalog = new Catalog();
$flag = new Flag();
/* Check the new Name */
$artist_id = $catalog->check_artist($_REQUEST['name']);
$songs = $artist->get_songs();
foreach ($songs as $song) {
// Make that copy and change the artist
$new_song = $song;
$new_song->artist = $artist_id;
$song->update_song($song->id,$new_song);
if ($_REQUEST['flag'] == '1') {
$flag->add($song->id,'song','retag','Edited Song, auto-tag');
}
} // end foreach songs
// Clean out the old artist(s)
$catalog->clean_artists();
show_confirmation(_('Artist Updated'),'',Config::get('web_path') . '/admin/index.php');
break;
/* Done by 'Select' code passes array of song ids */
case 'mass_update':
$songs = $_REQUEST['song'];
$catalog = new Catalog();
$object = $_REQUEST['update_field'];
$flag = new Flag();
/* If this is an album we need to pull the songs */
if ($_REQUEST['type'] == 'album') {
// Define the results array
$results = array();
foreach ($songs as $album_id) {
$album = new Album($album_id);
$results = array_merge($results,$album->get_song_ids());
} // end foreach albums
// Re-assign the variable... HACK ALERT :(
$songs = $results;
} // is album
/* Foreach the songs we need to update */
foreach ($songs as $song_id) {
$new_song = new Song($song_id);
$old_song = new Song();
$old_song->artist = $new_song->artist;
$old_song->album = $new_song->album;
/* Restrict which fields can be updated */
switch ($object) {
case 'album':
$new_song->album = $catalog->check_album(unhtmlentities($_REQUEST['update_value']));
break;
case 'artist':
$new_song->artist = $catalog->check_artist(unhtmlentities($_REQUEST['update_value']));
break;
case 'year':
$new_song->year = intval($_REQUEST['update_value']);
break;
default:
// Rien a faire
break;
} // end switch
/* Update this mofo, store an old copy for cleaning */
$new_song->update_song($song_id,$new_song);
/* Now that it's been updated clean old junk entries */
$cleaned = $catalog->clean_single_song($old_song);
$flag->add($song_id,'song','retag','Edited Song, auto-tag');
} // end foreach songs
// Show a confirmation that this worked
show_confirmation(_('Songs Updated'),'',return_referer());
break;
case 'reject_flag':
$flag_id = scrub_in($_REQUEST['flag_id']);
$flag = new Flag($flag_id);
$flag->delete_flag();
$flag->format_name();
$url = return_referer();
$title = _('Flag Removed');
$body = _('Flag Removed from') . " " . $flag->name;
show_confirmation($title,$body,$url);
break;
case 'reject_flags':
$flags = $_REQUEST['song'];
foreach ($flags as $flag_id) {
$flag = new Flag($flag_id);
if ($_REQUEST['update_action'] == 'reject') {
$flag->delete_flag();
}
else {
$flag->approve();
}
} // end foreach flags
$title = _('Flags Updated');
show_confirmation($title,'',return_referer());
break;
case 'show_edit_song':
$_SESSION['source'] = return_referer();
$song = new Song($_REQUEST['song']);
$song->fill_ext_info();
$song->format_song();
require_once (conf('prefix') . '/templates/show_edit_song.inc.php');
break;
case 'disable':
$song_obj = new Song();
// If we pass just one, make it still work
if (!is_array($_REQUEST['song_ids'])) { $song_obj->update_enabled(0,$_REQUEST['song_ids']); }
else {
foreach ($_REQUEST['song_ids'] as $song_id) {
$song_obj->update_enabled(0,$song_id);
} // end foreach
} // end else
show_confirmation(_('Songs Disabled'),_('The requested song(s) have been disabled'),return_referer());
break;
case 'enabled':
$song_obj = new Song();
// If we pass just one, make it still work
if (!is_array($_REQUEST['song_ids'])) { $song_obj->update_enabled(1,$_REQUEST['song_ids']); }
else {
foreach ($_REQUEST['song_ids'] as $song_id) {
$song_obj->update_enabled(1,$song_id);
} // end foreach
} // end else
show_confirmation(_('Songs Enabled'),_('The requested song(s) have been enabled'),return_referer());
break;
case 'show_disabled':
$disabled = Flag::get_disabled();
$browse = new Browse();
$browse->set_type('song');
$browse->set_static_content(true);
$browse->save_objects($disabled);
$browse->show_objects($disabled);
$browse->store();
break;
default:
case 'show_flagged':
$flagged = Flag::get_all();
Flag::build_cache($flagged);
$browse = new Browse();
$browse->set_type('flagged');
$browse->set_static_content(true);
$browse->save_objects($flagged);
$browse->show_objects($flagged);
$browse->store();
break;
} // end switch
show_footer();
?>