Продолжаем говорить о моде “Копирование музыки у друзей”. В предыдущей статье я рассказал, как сделать эту возможность, но недавно обнаружена недоработка в этом моде, при удалении музыки владельцем удалялась она и у всех скопировавших эту музыку.
Сейчас я расскажу, как сделать, чтобы при удалении музыки владельцем права и сама музыка копировались одному из его друзей, которые скопировали его музыку.
Здесь все просто, необходимо произвести изменения всего в одном файле.
Открыть: class_music.php
Подсказка: Данный файл находится в папке include.
Найти
music_delete($music_id)
Заменить
Подсказка: Полностью заменить функцию music_delete() начиная с function music_delete($music_id) и заканчивая return TRUE; }
function music_delete($music_id)
{
global $database, $url, $user, $admin;
if( $this->user_id )
{
$music = $database->database_fetch_assoc($database->database_query("SELECT * FROM se_music WHERE music_user_id='{$this->user_id}' && music_id='{$music_id}'"));
}
elseif( $admin && $admin->admin_exists )
{
$music = $database->database_fetch_assoc($database->database_query("SELECT * FROM se_music WHERE music_id='{$music_id}'"));
}
if( empty($music) )
return FALSE;
$music_tb = $database->database_fetch_assoc($database->database_query("SELECT owner_user_id FROM se_music WHERE music_id='{$music_id}' LIMIT 1"));
$owner_user_id = $music_tb[owner_user_id];
if( strlen($owner_user_id) > 0 )
{
if(strrchr($owner_user_id, ','))
{
$owner_user_id_text = explode(',', $owner_user_id);
$owner_user_id_db = "";
$new_user_music = "";
foreach($owner_user_id_text as $owner_user_id)
{
if($new_user_music == "")
$new_user_music = $owner_user_id;
if($owner_user_id != $new_user_music)
$owner_user_id_db = $owner_user_id_db . "" . $owner_user_id . ",";
}
$owner_user_id_db = trim(substr_replace($owner_user_id_db, "", strlen($owner_user_id_db) - 1));
}
else
{
$new_user_music = $owner_user_id;
$owner_user_id_db = '';
}
$userdir_old = $url->url_userdir($music['music_user_id']);
$music_file_old = "{$userdir_old}{$music['music_id']}.{$music['music_ext']}";
$userdir_new = $url->url_userdir($new_user_music);
$music_file_new = "{$userdir_new}{$music['music_id']}.{$music['music_ext']}";
if( file_exists($music_file_old) )
{
copy($music_file_old, $music_file_new);
unlink($music_file_old);
}
$database->database_query("UPDATE `se_music` SET `music_user_id` = '{$new_user_music}', `owner_user_id` = '{$owner_user_id_db}' WHERE `music_id` = '{$music_id}' LIMIT 1");
}
else
{
$userdir = $url->url_userdir($music['music_user_id']);
$music_file = "{$userdir}{$music['music_id']}.{$music['music_ext']}";
$database->database_query("DELETE FROM se_music WHERE music_id='{$music_id}' LIMIT 1");
if( file_exists($music_file) )
unlink($music_file);
}
return TRUE;
}
Данную статью Вы также можете скачать в формате doc:
скачать
Автор: Евтеев Евгений Александрович