Продолжаем говорить о моде “Копирование музыки у друзей”. В предыдущей статье я рассказал, как сделать эту возможность, но недавно обнаружена недоработка в этом моде, при удалении музыки владельцем удалялась она и у всех скопировавших эту музыку.
Сейчас я расскажу, как сделать, чтобы при удалении музыки владельцем права и сама музыка копировались одному из его друзей, которые скопировали его музыку.
Здесь все просто, необходимо произвести изменения всего в одном файле.
Открыть: 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:
скачать
Автор: Евтеев Евгений Александрович