Exemple #1
0
/**
* 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');
}