/** * Recursivly deletes all albums and child albums * * @param int album_id album id to delete * @return int true for success or false for failure * */ function MG_MassdeleteChildAlbums($album_id) { global $_CONF, $_MG_CONF, $_TABLES, $_USER; $sql = "SELECT * FROM {$_TABLES['mg_albums']} WHERE album_parent=" . $album_id; $aResult = DB_query($sql); $rowCount = DB_numRows($aResult); for ($z = 0; $z < $rowCount; $z++) { $row = DB_fetchArray($aResult); MG_MassdeleteChildAlbums($row['album_id']); } $sql = "SELECT ma.media_id, m.media_filename, m.media_mime_ext\n FROM " . $_TABLES['mg_media_albums'] . " as ma LEFT JOIN " . $_TABLES['mg_media'] . " as m ON ma.media_id=m.media_id\n WHERE ma.album_id = " . $album_id; $result = DB_query($sql); $nRows = DB_numRows($result); $mediarow = array(); for ($i = 0; $i < $nRows; $i++) { $row = DB_fetchArray($result); $mediarow[] = $row; } if (count($mediarow) != 0) { for ($i = 0; $i < count($mediarow); $i++) { $sql = "SELECT COUNT(media_id) AS count FROM " . $_TABLES['mg_media_albums'] . " WHERE media_id = '" . $mediarow[$i]['media_id'] . "'"; $result = DB_query($sql); $row = DB_fetchArray($result); if ($row['count'] <= 1) { @unlink($_MG_CONF['path_mediaobjects'] . 'tn/' . $mediarow[$i]['media_filename'][0] . '/' . $mediarow[$i]['media_filename'] . '.jpg'); @unlink($_MG_CONF['path_mediaobjects'] . 'disp/' . $mediarow[$i]['media_filename'][0] . '/' . $mediarow[$i]['media_filename'] . '.jpg'); @unlink($_MG_CONF['path_mediaobjects'] . 'orig/' . $mediarow[$i]['media_filename'][0] . '/' . $mediarow[$i]['media_filename'] . '.' . $mediarow[$i]['media_mime_ext']); $sql = "DELETE FROM " . $_TABLES['mg_media'] . " WHERE media_id = '" . $mediarow[$i]['media_id'] . "'"; DB_query($sql); DB_delete($_TABLES['comments'], 'sid', $mediarow[$i]['media_id']); DB_delete($_TABLES['mg_playback_options'], 'media_id', $mediarow[$i]['media_id']); } } } $sql = "DELETE FROM " . $_TABLES['mg_media_albums'] . " WHERE album_id = " . $album_id; DB_query($sql); $sql = "DELETE FROM " . $_TABLES['mg_albums'] . " WHERE album_id = " . $album_id; DB_query($sql); $feedname = sprintf($_MG_CONF['rss_feed_name'] . "%06d", $album_id); @unlink($_MG_CONF['path_html'] . 'rss/' . $feedname . '.rdf'); }
/** * Recursivly deletes all albums and child albums * * @param int album_id album id to delete * @return int true for success or false for failure * */ function MG_MassdeleteChildAlbums($album_id) { global $_CONF, $_MG_CONF, $_TABLES, $_USER; $sql = "SELECT album_id FROM {$_TABLES['mg_albums']} WHERE album_parent=" . intval($album_id); $aResult = DB_query($sql); while ($row = DB_fetchArray($aResult)) { MG_MassdeleteChildAlbums($row['album_id']); } $sql = MG_buildMediaSql(array('album_id' => $album_id, 'fields' => array('media_id', 'media_filename', 'media_mime_ext'), 'sortorder' => -1)); $result = DB_query($sql); while ($A = DB_fetchArray($result)) { $count = DB_count($_TABLES['mg_media_albums'], 'media_id', addslashes($A['media_id'])); if ($count <= 1) { $fn = $A['media_filename']; @unlink($_MG_CONF['path_mediaobjects'] . 'tn/' . $fn[0] . '/' . $fn . '.*'); @unlink($_MG_CONF['path_mediaobjects'] . 'disp/' . $fn[0] . '/' . $fn . '.*'); @unlink($_MG_CONF['path_mediaobjects'] . 'orig/' . $fn[0] . '/' . $fn . '.' . $A['media_mime_ext']); DB_delete($_TABLES['mg_media'], 'media_id', addslashes($A['media_id'])); DB_delete($_TABLES['comments'], 'sid', addslashes($A['media_id'])); DB_delete($_TABLES['mg_playback_options'], 'media_id', addslashes($A['media_id'])); } } DB_delete($_TABLES['mg_media_albums'], 'album_id', intval($album_id)); DB_delete($_TABLES['mg_albums'], 'album_id', intval($album_id)); $feedname = sprintf($_MG_CONF['rss_feed_name'] . "%06d", $album_id); @unlink($_MG_CONF['path_html'] . 'rss/' . $feedname . '.rdf'); }