Esempio n. 1
0
function MG_saveEnroll()
{
    global $_CONF, $_MG_CONF, $_MG_USERPREFS, $_TABLES, $_USER, $LANG_MG03;
    if ($_MG_CONF['member_albums'] != 1) {
        echo COM_refresh($_MG_CONF['site_url'] . '/index.php');
        exit;
    }
    if (!isset($_MG_CONF['member_quota'])) {
        $_MG_CONF['member_quota'] = 0;
    }
    $sql = "SELECT album_id FROM {$_TABLES['mg_albums']} WHERE owner_id=" . (int) $_USER['uid'] . " AND album_parent=" . $_MG_CONF['member_album_root'];
    $result = DB_query($sql);
    $nRows = DB_numRows($result);
    if ($nRows > 0) {
        $display = MG_siteHeader();
        $display .= COM_showMessageText($LANG_MG03['existing_member_album'], '', true);
        $display .= MG_siteFooter();
        echo $display;
        exit;
    }
    $uid = (int) $_USER['uid'];
    $aid = plugin_user_create_mediagallery($uid, 1);
    $result = DB_query("UPDATE {$_TABLES['mg_userprefs']} SET member_gallery=1,quota=" . $_MG_CONF['member_quota'] . " WHERE uid=" . $uid, 1);
    $affected = DB_affectedRows($result);
    if (DB_error()) {
        $sql = "INSERT INTO {$_TABLES['mg_userprefs']} (uid, active, display_rows, display_columns, mp3_player, playback_mode, tn_size, quota, member_gallery) VALUES (" . $uid . ",1,0,0,-1,-1,-1," . $_MG_CONF['member_quota'] . ",1)";
        DB_query($sql, 1);
    }
    CACHE_remove_instance('menu');
    echo COM_refresh($_MG_CONF['site_url'] . '/album.php?aid=' . $aid);
    exit;
}
Esempio n. 2
0
function handleSubscribe($album_id)
{
    global $_CONF, $_TABLES, $_USER, $MG_albums, $LANG_MG02;
    $referer = isset($_SERVER['HTTP_REFERER']) ? COM_sanitizeUrl($_SERVER['HTTP_REFERER']) : $_CONF['site_url'];
    if ($referer == '') {
        $referer = $_CONF['site_url'];
    }
    $sLength = strlen($_CONF['site_url']);
    if (substr($referer, 0, $sLength) != $_CONF['site_url']) {
        $referer = $_CONF['site_url'];
    }
    $hasargs = strstr($referer, '?');
    if ($hasargs) {
        $sep = '&';
    } else {
        $sep = '?';
    }
    if (COM_isAnonUser()) {
        echo COM_refresh($referer . $sep . 'msg=518');
        exit;
    }
    $errorMessage = '';
    if (!isset($MG_albums[$album_id]->id)) {
        $errorMessage = $LANG_MG02['albumaccessdeny'];
    } else {
        if ($MG_albums[$album_id]->access == 0 || $MG_albums[$album_id]->hidden == 1 && $MG_albums[$album_id]->access != 3) {
            $errorMessage = $LANG_MG02['albumaccessdeny'];
        }
    }
    if (!empty($errorMessage)) {
        echo MG_siteHeader();
        echo $errorMessage;
        echo MG_siteFooter();
        exit;
    }
    $uid = $_USER['uid'];
    $id_desc = $MG_albums[$album_id]->title;
    $rc = PLG_subscribe('mediagallery', '', $album_id, $uid, '', $id_desc);
    if ($rc === false) {
        echo COM_refresh($referer . $sep . 'msg=519');
        exit;
    }
    echo COM_refresh($referer . $sep . 'msg=520');
    exit;
}
Esempio n. 3
0
        $sort_user = $_USER['uid'];
    }
    $sort_datetime = time();
    $referer = DB_escapeString($referer);
    $keywords = DB_escapeString($keywords);
    $sql = "INSERT INTO {$_TABLES['mg_sort']} (sort_id,sort_user,sort_query,sort_results,sort_datetime,referer,keywords)\n            VALUES ('{$sort_id}',{$sort_user},'{$sqltmp}',{$numresults},{$sort_datetime},'{$referer}','{$keywords}')";
    $result = DB_query($sql);
    if (DB_error()) {
        COM_errorLog("Media Gallery: Error placing sort query into database");
    }
    $sort_purge = time() - 3660;
    // 43200;
    DB_query("DELETE FROM {$_TABLES['mg_sort']} WHERE sort_datetime < " . $sort_purge);
    $pageBody .= MG_search($sort_id, 1);
} elseif ($mode == $LANG_MG01['cancel']) {
    echo COM_refresh($_MG_CONF['site_url'] . '/index.php');
    exit;
} elseif (isset($_GET['id'])) {
    $id = COM_applyFilter($_GET['id']);
    $page = COM_applyFilter($_GET['page'], true);
    if ($page < 1) {
        $page = 1;
    }
    $pageBody .= MG_search($id, $page);
} else {
    $pageBody .= MG_displaySearchBox('');
}
$display = MG_siteHeader($LANG_MG00['results']);
$display .= $pageBody;
$display .= MG_siteFooter();
echo $display;
Esempio n. 4
0
function MG_index()
{
    global $_USER, $_MG_CONF, $_CONF, $_TABLES, $MG_albums, $LANG_MG00, $LANG_MG01, $LANG_MG02, $LANG_MG03, $themeStyle;
    $display = '';
    $media_size = false;
    $page = 0;
    if (isset($_GET['page'])) {
        $page = COM_applyFilter($_GET['page'], true);
    }
    if ($page != 0) {
        $page = $page - 1;
    }
    $themeStyle = MG_getThemeCSS(0);
    if (!isset($_MG_CONF['album_display_columns']) || $_MG_CONF['album_display_columns'] < 1) {
        $_MG_CONF['album_display_columns'] = 1;
    }
    switch ($_MG_CONF['album_display_columns']) {
        case 1:
            $albumListTemplate = 'gallery_page_body_1.thtml';
            $albumColumnWidth = "100%";
            break;
        case 2:
            $albumListTemplate = 'gallery_page_body_2.thtml';
            $albumColumnWidth = "50%";
            break;
        default:
            $albumListTemplate = 'gallery_page_body_3.thtml';
            $albumColumnWidth = @intval(100 / $_MG_CONF['album_display_columns']) . '%';
            if ($albumColumnWidth == 0) {
                $albumColumnWidth = "25%";
            }
            break;
    }
    $T = new Template(MG_getTemplatePath(0));
    $T->set_file(array('page' => 'gallery_page.thtml', 'body' => $albumListTemplate, 'noitems' => 'gallery_page_noitems.thtml'));
    $T->set_var(array('lang_menulabel' => $_MG_CONF['menulabel'], 'lang_search' => $LANG_MG01['search'], 'site_url' => $_MG_CONF['site_url']));
    if ($_MG_CONF['rss_full_enabled']) {
        $feedUrl = MG_getFeedUrl($_MG_CONF['rss_feed_name'] . '.rss');
        $rsslink = '<a href="' . $feedUrl . '"' . ' type="application/rss+xml">';
        $rsslink .= '<img src="' . MG_getImageFile('feed.png') . '" alt="" style="border:none;"/></a>';
        $T->set_var('rsslink', $rsslink);
        $T->set_var('rsslink_url', $feedUrl);
    } else {
        $T->set_var('rsslink', '');
    }
    $nFrame = new mgFrame();
    $nFrame->constructor($_MG_CONF['indexskin']);
    $MG_albums[0]->albumFrameTemplate = $nFrame->getTemplate();
    $MG_albums[0]->afrWidth = $nFrame->frame['wHL'] + $nFrame->frame['wHR'];
    $MG_albums[0]->afrHeight = $nFrame->frame['hVT'] + $nFrame->frame['hVB'];
    // Let's build our admin menu options
    $showAdminBox = 0;
    $admin_box_item = '';
    $admin_box = '<form name="adminbox" id="adminbox" action="' . $_MG_CONF['site_url'] . '/admin.php" method="get" style="margin:0;padding:0;">' . LB;
    $admin_box .= '<div>';
    $admin_box .= '<select onchange="javascript:forms[\'adminbox\'].submit();" name="mode">' . LB;
    $admin_box_item .= '<option label="' . $LANG_MG01['options'] . '" value="">' . $LANG_MG01['options'] . '</option>' . LB;
    if (($MG_albums[0]->member_uploads || $MG_albums[0]->access == 3) && !COM_isAnonUser()) {
        $admin_box_item .= '<option value="upload">' . $LANG_MG01['add_media'] . '</option>' . LB;
        $showAdminBox = 1;
    }
    if ($MG_albums[0]->owner_id) {
        $admin_box_item .= '<option value="albumsort">' . $LANG_MG01['sort_albums'] . '</option>' . LB;
        $admin_box_item .= '<option value="globalattr">' . $LANG_MG01['globalattr'] . '</option>' . LB;
        $admin_box_item .= '<option value="globalperm">' . $LANG_MG01['globalperm'] . '</option>' . LB;
        $queue_count = DB_count($_TABLES['mg_media_album_queue']);
        $admin_box_item .= '<option value="moderate">' . $LANG_MG01['media_queue'] . ' (' . $queue_count . ')</option>' . LB;
        $admin_box_item .= '<option value="wmmanage">' . $LANG_MG01['wm_management'] . '</option>' . LB;
        $admin_box_item .= '<option value="create">' . $LANG_MG01['create_album'] . '</option>' . LB;
        $showAdminBox = 1;
    } elseif ($MG_albums[0]->access == 3) {
        $admin_box_item .= '<option value="create">' . $LANG_MG01['create_album'] . '</option>' . LB;
        $showAdminBox = 1;
    } elseif ($_MG_CONF['member_albums'] == 1 && !COM_isAnonUser() && $_MG_CONF['member_album_root'] == 0 && $_MG_CONF['member_create_new']) {
        $admin_box_item .= '<option value="create">' . $LANG_MG01['create_album'] . '</option>' . LB;
        $showAdminBox = 1;
    }
    $admin_box .= $admin_box_item;
    $admin_box .= '</select>' . LB;
    $admin_box .= '<input type="hidden" name="album_id" value="0"/>' . LB;
    $admin_box .= '&nbsp;<input type="submit" value="' . $LANG_MG03['go'] . '"/>' . LB;
    $admin_box .= '</div>';
    $admin_box .= '</form>';
    // build ul
    $admin_menu = '';
    $showAdminMenu = 0;
    $admin_url = $_MG_CONF['site_url'] . '/admin.php?album_id=0';
    if (($MG_albums[0]->member_uploads || $MG_albums[0]->access == 3) && !COM_isAnonUser()) {
        $admin_menu .= '<li><a href="' . $admin_url . '&amp;mode=upload">' . $LANG_MG01['add_media'] . '</a></li>';
        $showAdminMenu = 1;
    }
    if ($MG_albums[0]->owner_id) {
        $admin_menu .= '<li><a href="' . $admin_url . '&amp;mode=albumsort">' . $LANG_MG01['sort_albums'] . '</a></li>';
        $admin_menu .= '<li><a href="' . $admin_url . '&amp;mode=globalattr">' . $LANG_MG01['globalattr'] . '</a></li>' . LB;
        $admin_menu .= '<li><a href="' . $admin_url . '&amp;mode=globalperm">' . $LANG_MG01['globalperm'] . '</a></li>' . LB;
        $queue_count = DB_count($_TABLES['mg_media_album_queue']);
        $admin_menu .= '<li><a href="' . $admin_url . '&amp;mode=moderate">' . $LANG_MG01['media_queue'] . ' (' . $queue_count . ')</a></li>' . LB;
        $admin_menu .= '<li><a href="' . $admin_url . '&amp;mode=wmmanage">' . $LANG_MG01['wm_management'] . '</a></li>' . LB;
        $admin_menu .= '<li><a href="' . $admin_url . '&amp;mode=create">' . $LANG_MG01['create_album'] . '</a></li>' . LB;
        $showAdminMenu = 1;
    } elseif ($MG_albums[0]->access == 3) {
        $admin_Menu .= '<li><a href="' . $abmin_url . '&amp;mode=create">' . $LANG_MG01['create_album'] . '</a></li>' . LB;
        $showAdminMenu = 1;
    } elseif ($_MG_CONF['member_albums'] == 1 && !COM_isAnonUser() && $_MG_CONF['member_album_root'] == 0 && $_MG_CONF['member_create_new']) {
        $admin_menu .= '<li><a href="' . $admin_url . '&amp;mode=create">' . $LANG_MG01['create_album'] . '</a></li>' . LB;
        $showAdminMenu = 1;
    }
    // end of ul
    if ($showAdminBox == 0) {
        $admin_box = '';
        $admin_box_item = '';
    }
    if ($showAdminMenu == 1) {
        $T->set_var('admin_menu', $admin_menu);
    }
    $T->set_var('select_adminbox', $admin_box);
    $T->set_var('select_box_items', $admin_box_item);
    $album_count = 0;
    $width = intval(100 / $_MG_CONF['album_display_columns']);
    $rowcounter = 0;
    $albumCount = 0;
    $indexCounter = 0;
    if (COM_isAnonUser()) {
        $lastlogin = time();
    } else {
        if (!COM_isAnonUser()) {
            $lastlogin = $_USER['lastlogin'];
        } else {
            $lastlogin = time();
        }
    }
    $children = $MG_albums[0]->getChildren();
    $nrows = count($children);
    $checkCounter = 0;
    $aCount = 0;
    $achild = array();
    for ($i = 0; $i < $nrows; $i++) {
        $access = $MG_albums[$children[$i]]->access;
        if ($access == 0 || $MG_albums[$children[$i]]->hidden == 1 && $access != 3) {
            // no op
        } else {
            $achild[] = $MG_albums[$children[$i]]->id;
            $aCount++;
        }
    }
    if ($_MG_CONF['album_display_rows'] < 1) {
        $_MG_CONF['album_display_rows'] = 9;
    }
    $items_per_page = $_MG_CONF['album_display_columns'] * $_MG_CONF['album_display_rows'];
    $begin = $items_per_page * $page;
    $end = $items_per_page;
    $nrows = count($achild);
    $indexCounter = $begin;
    $noParse = 0;
    $needFinalParse = 0;
    if ($nrows > 0) {
        $k = 0;
        $T->set_block('body', 'AlbumColumn', 'AColumn');
        $T->set_block('body', 'AlbumRow', 'ARow');
        for ($i = $begin; $i < $begin + $items_per_page; $i += $_MG_CONF['album_display_columns']) {
            for ($j = $i; $j < $i + $_MG_CONF['album_display_columns']; $j++) {
                $album_last_image = $_MG_CONF['mediaobjects_url'] . '/placeholder.svg';
                if ($j >= $nrows) {
                    $k = $i + $_MG_CONF['album_display_columns'] - $j;
                    $m = $k % $_MG_CONF['album_display_columns'];
                    for ($z = $m; $z > 0; $z--) {
                        $needFinalParse = 1;
                    }
                    if ($needFinalParse == 1) {
                        $T->parse('ARow', 'AlbumRow', true);
                        $T->set_var('AColumn', '');
                    }
                    $noParse = 1;
                    break;
                }
                $access = $MG_albums[$achild[$indexCounter]]->access;
                if ($access == 0 || $MG_albums[$achild[$indexCounter]]->hidden == 1 && $access != 3) {
                    $j--;
                    $indexCounter++;
                    continue;
                }
                $albumCount++;
                if ($MG_albums[$achild[$indexCounter]]->media_count > 0) {
                    if ($MG_albums[$achild[$indexCounter]]->cover_filename != '' && $MG_albums[$achild[$indexCounter]]->cover_filename != '0') {
                        $album_last_update = MG_getUserDateTimeFormat($MG_albums[$achild[$indexCounter]]->last_update);
                        if (substr($MG_albums[$achild[$indexCounter]]->cover_filename, 0, 3) == 'tn_') {
                            $offset = 3;
                        } else {
                            $offset = 0;
                        }
                        foreach ($_MG_CONF['validExtensions'] as $ext) {
                            if (file_exists($_MG_CONF['path_mediaobjects'] . 'tn/' . $MG_albums[$achild[$indexCounter]]->cover_filename[$offset] . '/' . $MG_albums[$achild[$indexCounter]]->cover_filename . $ext)) {
                                $album_last_image = $_MG_CONF['mediaobjects_url'] . '/tn/' . $MG_albums[$achild[$indexCounter]]->cover_filename[$offset] . '/' . $MG_albums[$achild[$indexCounter]]->cover_filename . $ext;
                                $media_size = @getimagesize($_MG_CONF['path_mediaobjects'] . 'tn/' . $MG_albums[$achild[$indexCounter]]->cover_filename[$offset] . '/' . $MG_albums[$achild[$indexCounter]]->cover_filename . $ext);
                                break;
                            }
                        }
                        $album_media_count = $MG_albums[$achild[$indexCounter]]->media_count;
                        if (!COM_isAnonUser()) {
                            if ($MG_albums[$achild[$indexCounter]]->last_update > $lastlogin) {
                                $album_last_update[0] = '<font color="red">' . $album_last_update[0] . '</font>';
                            }
                        }
                        $T->set_var(array('updated_prompt' => $_MG_CONF['dfid'] == '99' ? '' : $LANG_MG03['updated_prompt']));
                    } else {
                        $album_media_count = $MG_albums[$achild[$indexCounter]]->media_count;
                        $album_last_update = MG_getUserDateTimeFormat($MG_albums[$achild[$indexCounter]]->last_update);
                        $filename = $MG_albums[$achild[$indexCounter]]->findCover();
                        if ($filename == '') {
                            $album_last_image = $_MG_CONF['mediaobjects_url'] . '/placeholder.svg';
                            $media_size = array(200, 200);
                        } else {
                            if (substr($filename, 0, 3) == 'tn_') {
                                $offset = 3;
                            } else {
                                $offset = 0;
                            }
                            foreach ($_MG_CONF['validExtensions'] as $ext) {
                                if (file_exists($_MG_CONF['path_mediaobjects'] . 'tn/' . $filename[$offset] . '/' . $filename . $ext)) {
                                    $album_last_image = $_MG_CONF['mediaobjects_url'] . '/tn/' . $filename[$offset] . '/' . $filename . $ext;
                                    $media_size = @getimagesize($_MG_CONF['path_mediaobjects'] . 'tn/' . $filename[$offset] . '/' . $filename . $ext);
                                    break;
                                }
                            }
                        }
                        $T->set_var(array('updated_prompt' => $_MG_CONF['dfid'] == '99' ? '' : $LANG_MG03['updated_prompt']));
                    }
                } else {
                    // nothing in the album yet...
                    // here we need to search the sub-albums if any and see if we can find a picture....
                    $album_media_count = 0;
                    $album_last_update[0] = "";
                    $filename = $MG_albums[$achild[$indexCounter]]->findCover();
                    if ($filename == '') {
                        $album_last_image = $_MG_CONF['mediaobjects_url'] . '/placeholder.svg';
                        $media_size = array(200, 200);
                    } else {
                        foreach ($_MG_CONF['validExtensions'] as $ext) {
                            if (file_exists($_MG_CONF['path_mediaobjects'] . 'tn/' . $filename[0] . '/' . $filename . $ext)) {
                                $album_last_image = $_MG_CONF['mediaobjects_url'] . '/tn/' . $filename[0] . '/' . $filename . $ext;
                                $media_size = @getimagesize($_MG_CONF['path_mediaobjects'] . 'tn/' . $filename[0] . '/' . $filename . $ext);
                                break;
                            }
                        }
                    }
                    $T->set_var('updated_prompt', '');
                }
                $T->clear_var(array('lang_views', 'views'));
                if ($MG_albums[$achild[$indexCounter]]->enable_album_views) {
                    $T->set_var(array('lang_views' => $LANG_MG03['views'], 'views' => $MG_albums[$achild[$indexCounter]]->views));
                }
                if ($MG_albums[$achild[$indexCounter]]->tn_attached == 1) {
                    $media_size = false;
                    foreach ($_MG_CONF['validExtensions'] as $ext) {
                        if (file_exists($_MG_CONF['path_mediaobjects'] . 'covers/cover_' . $MG_albums[$achild[$indexCounter]]->id . $ext)) {
                            $album_last_image = $_MG_CONF['mediaobjects_url'] . '/covers/cover_' . $MG_albums[$achild[$indexCounter]]->id . $ext;
                            $media_size = @getimagesize($_MG_CONF['path_mediaobjects'] . 'covers/cover_' . $MG_albums[$achild[$indexCounter]]->id . $ext);
                            break;
                        }
                    }
                }
                // a little fail safe here to make sure we don't show empty boxes...
                if ($media_size === false || $media_size[0] == 0 || $media_size[1] == 0) {
                    $album_last_image = $_MG_CONF['mediaobjects_url'] . '/placeholder.svg';
                    $media_size = array(200, 200);
                }
                // set the image size here...
                switch ($_MG_CONF['gallery_tn_size']) {
                    case '0':
                        //small
                        $tn_height = 100;
                        $tn_width = 100;
                        break;
                    case '1':
                        //medium
                        $tn_height = 150;
                        $tn_width = 150;
                        break;
                    case '2':
                        $tn_height = 200;
                        $tn_width = 200;
                        break;
                    case '3':
                        $tn_height = $_MG_CONF['gallery_tn_height'];
                        $tn_width = $_MG_CONF['gallery_tn_width'];
                        break;
                    default:
                        $tn_height = 200;
                        $tn_width = 200;
                        break;
                }
                if ($media_size[0] > $media_size[1]) {
                    $ratio = $media_size[0] / $tn_height;
                    $newwidth = $tn_height;
                    $newheight = @round($media_size[1] / $ratio);
                } else {
                    $ratio = $media_size[1] / $tn_height;
                    $newheight = $tn_height;
                    $newwidth = @round($media_size[0] / $ratio);
                }
                // pull the sub-album info here
                $subAlbumDisplay = '';
                if (isset($_MG_CONF['subalbum_select']) && $_MG_CONF['subalbum_select'] == 1) {
                    $subAlbumDisplay = '<form name="subalbums' . $MG_albums[$achild[$indexCounter]]->id . '" action="' . $_MG_CONF['site_url'] . '/album.php' . '" method="get" style="margin:0;padding:0">';
                    $subAlbumDisplay .= '<select name="aid" onchange="forms[\'subalbums' . $MG_albums[$achild[$indexCounter]]->id . '\'].submit()">';
                    $subAlbumDisplay .= '<optgroup label="' . $LANG_MG01['select_subalbum'] . '">' . LB;
                }
                $saRows = 0;
                $T->clear_var(array('lang_subalbums', 'subalbumcount', 'subalbumlist'));
                if (!empty($MG_albums[$achild[$indexCounter]]->children)) {
                    $SAchildren = $MG_albums[$achild[$indexCounter]]->getChildren();
                    foreach ($SAchildren as $SAchild) {
                        if ($MG_albums[$SAchild]->access > 0) {
                            if ($MG_albums[$SAchild]->hidden) {
                                if ($MG_albums[$SAchild]->access == 3) {
                                    $mediaCount = $MG_albums[$SAchild]->getMediaCount();
                                    if ($_MG_CONF['subalbum_select'] == 1) {
                                        if (strlen($MG_albums[$SAchild]->title) > 50) {
                                            $aTitle = substr($MG_albums[$SAchild]->title, 0, 50) . '...';
                                        } else {
                                            $aTitle = $MG_albums[$SAchild]->title;
                                        }
                                        $subAlbumDisplay .= '<option value="' . $MG_albums[$SAchild]->id . '">' . $aTitle . ' (' . $mediaCount . ')</option>';
                                    } else {
                                        $subAlbumDisplay .= '<li><a href="' . $_MG_CONF['site_url'] . '/album.php?aid=' . $MG_albums[$SAchild]->id . '&amp;page=1' . '">' . $MG_albums[$SAchild]->title . ' (' . $mediaCount . ')</a></li>';
                                    }
                                    $saRows++;
                                }
                            } else {
                                $mediaCount = $MG_albums[$SAchild]->getMediaCount();
                                if ($_MG_CONF['subalbum_select'] == 1) {
                                    if (strlen($MG_albums[$SAchild]->title) > 50) {
                                        $aTitle = substr($MG_albums[$SAchild]->title, 0, 50) . '...';
                                    } else {
                                        $aTitle = $MG_albums[$SAchild]->title;
                                    }
                                    $subAlbumDisplay .= '<option value="' . $MG_albums[$SAchild]->id . '">' . $aTitle . ' (' . $mediaCount . ')</option>';
                                } else {
                                    $subAlbumDisplay .= '<li><a href="' . $_MG_CONF['site_url'] . '/album.php?aid=' . $MG_albums[$SAchild]->id . '&amp;page=1' . '">' . $MG_albums[$SAchild]->title . ' (' . $mediaCount . ')</a></li>';
                                }
                                $saRows++;
                            }
                        }
                    }
                    if ($_MG_CONF['subalbum_select'] == 1) {
                        $subAlbumDisplay .= '</optgroup></select>';
                        $subAlbumDisplay .= '&nbsp;<input type="submit" value="' . $LANG_MG03['go'] . '" />';
                        $subAlbumDisplay .= '<input type="hidden" name="page" value="1"/>';
                        $subAlbumDisplay .= '</form>';
                    }
                    if ($_MG_CONF['album_display_columns'] > 1 && $_MG_CONF['subalbum_select'] != 1) {
                        $T->set_var(array('subalbumlist' => '<span style="font-weight:bold;">' . $LANG_MG01['subalbums'] . '</span> (' . $saRows . ')'));
                    } else {
                        $T->set_var(array('lang_subalbums' => $LANG_MG01['subalbums'], 'subalbumcount' => '(' . $saRows . ')', 'subalbumlist' => $subAlbumDisplay));
                    }
                }
                if ($saRows == 0) {
                    $T->clear_var(array('lang_subalbums', 'subalbumcount', 'subalbumlist'));
                }
                $T->clear_var(array('saulstart', 'saulend'));
                if ($saRows > 0 && $_MG_CONF['subalbum_select'] != 1) {
                    $T->set_var(array('saulstart' => '<ul>', 'saulend' => '</ul>'));
                }
                // now pull the total image count for all sub albums...
                $total_images_subalbums = $MG_albums[$achild[$indexCounter]]->getMediaCount();
                $owner_id = $MG_albums[$achild[$indexCounter]]->owner_id;
                if ($owner_id == '' || !isset($MG_albums[$achild[$indexCounter]]->owner_id)) {
                    $owner_id = 0;
                }
                $ownername = DB_getItem($_TABLES['users'], 'username', "uid=" . intval($owner_id));
                $F = new Template($_MG_CONF['template_path']);
                $F->set_var('media_frame', $MG_albums[0]->albumFrameTemplate);
                $F->set_var(array('border_width' => $newwidth + 20, 'border_height' => $newheight + 20, 'media_link_start' => '<a href="' . $_MG_CONF['site_url'] . '/album.php?aid=' . $MG_albums[$achild[$indexCounter]]->id . '&amp;page=1' . '">', 'media_link_end' => '</a>', 'url_media_item' => $_MG_CONF['site_url'] . '/album.php?aid=' . $MG_albums[$achild[$indexCounter]]->id . '&amp;page=1', 'media_thumbnail' => $album_last_image, 'media_size' => 'width="' . $newwidth . '" height="' . $newheight . '"', 'media_height' => $newheight, 'media_width' => $newwidth, 'media_tag' => strip_tags($MG_albums[$achild[$indexCounter]]->title), 'frWidth' => $newwidth - $MG_albums[0]->afrWidth, 'frHeight' => $newheight - $MG_albums[0]->afrHeight));
                $F->parse('media', 'media_frame');
                $media_item_thumbnail = $F->finish($F->get_var('media'));
                $T->set_var(array('media_item_thumbnail' => $media_item_thumbnail, 'class' => $rowcounter % 2, 'table_column_width' => 'width="' . $width . '%"', 'album_id' => $MG_albums[$achild[$indexCounter]]->id, 'album_title' => PLG_replaceTags($MG_albums[$achild[$indexCounter]]->title, 'mediagallery', 'album_title'), 'album_desc' => $MG_albums[$achild[$indexCounter]]->description == '' ? '' : PLG_replaceTags($MG_albums[$achild[$indexCounter]]->description, 'mediagallery', 'album_description'), 'album_media_count' => $album_media_count, 'subalbum_media_count' => $total_images_subalbums, 'album_owner' => $ownername, 'album_last_update' => $album_last_update[0], 'column_width' => $albumColumnWidth, 'column_width2' => $tn_height + 35 . 'px', 'lang_album' => $LANG_MG00['album'], 'border_width' => $newwidth + 20, 'border_height' => $newheight + 20, 'media_link_start' => '<a href="' . $_MG_CONF['site_url'] . '/album.php?aid=' . $MG_albums[$achild[$indexCounter]]->id . '&amp;page=1' . '">', 'media_link_end' => '</a>', 'url_media_item' => $_MG_CONF['site_url'] . '/album.php?aid=' . $MG_albums[$achild[$indexCounter]]->id . '&amp;page=1', 'media_thumbnail' => $album_last_image, 'media_size' => 'width="' . $newwidth . '" height="' . $newheight . '"', 'media_height' => $newheight, 'media_width' => $newwidth, 'media_tag' => strip_tags($MG_albums[$achild[$indexCounter]]->title), 'frWidth' => $newwidth - $MG_albums[0]->afrWidth, 'frHeight' => $newheight - $MG_albums[0]->afrHeight));
                $T->parse('AColumn', 'AlbumColumn', true);
                $indexCounter++;
            }
            if ($noParse == 1) {
                break;
            } else {
                $T->parse('ARow', 'AlbumRow', true);
                $T->set_var('AColumn', '');
            }
        }
    }
    $T->set_var(array('bottom_pagination' => COM_printPageNavigation($_MG_CONF['site_url'] . '/index.php', $page + 1, ceil($aCount / $items_per_page)), 'table_columns' => $_MG_CONF['album_display_columns']));
    if ($albumCount == 0) {
        $T->set_var(array('noitems' => $LANG_MG03['no_album_objects']));
        $T->parse('gallery_noitems', 'noitems');
    } else {
        $T->parse('gallery_body', 'body');
    }
    $T->parse('output', 'page');
    $nCSS = $nFrame->getCSS();
    if ($nCSS != '') {
        $outputHandle = outputHandler::getInstance();
        $outputHandle->addStyle($nCSS);
    }
    $display .= MG_siteHeader($LANG_MG00['plugin']);
    $display .= $T->finish($T->get_var('output'));
    $display .= MG_siteFooter();
    echo $display;
    exit;
}
Esempio n. 5
0
function MG_indexAll()
{
    global $_USER, $_MG_CONF, $_CONF, $_TABLES, $MG_albums, $LANG_MG00, $LANG_MG01, $LANG_MG02, $LANG_MG03, $themeStyle, $ImageSkin, $sortOrder, $displayColumns, $displayRows, $tnSize, $level, $album_jumpbox;
    $album_id = 0;
    if (isset($_GET['aid'])) {
        $album_id = (int) COM_applyFilter($_GET['aid'], true);
    }
    $page = 0;
    if (isset($_GET['page'])) {
        $page = (int) COM_applyFilter($_GET['page'], true);
    }
    if ($page != 0) {
        $page = $page - 1;
    }
    $lbSlideShow = '';
    $errorMessage = '';
    $columns_per_page = $displayColumns;
    $rows_per_page = $displayRows;
    $media_per_page = $columns_per_page * $rows_per_page;
    // image frame setup
    $nFrame = new mgFrame();
    $nFrame->constructor($ImageSkin);
    $imageFrameTemplate = $nFrame->getTemplate();
    $frWidth = $nFrame->frame['wHL'] + $nFrame->frame['wHR'];
    $frHeight = $nFrame->frame['hVT'] + $nFrame->frame['hVB'];
    $fCSS = $nFrame->getCSS();
    // Let's build our admin menu options
    $showAdminBox = 0;
    $admin_box = '<form name="adminbox" id="adminbox" action="' . $_MG_CONF['site_url'] . '/admin.php" method="get" style="margin:0;padding:0;">' . LB;
    $admin_box .= '<div>';
    $admin_box .= '<select onchange="javascript:forms[\'adminbox\'].submit();" name="mode">' . LB;
    $admin_box .= '<option label="' . $LANG_MG01['options'] . '" value="">' . $LANG_MG01['options'] . '</option>' . LB;
    if (($MG_albums[0]->member_uploads || $MG_albums[0]->access == 3) && (isset($_USER['uid']) && $_USER['uid'] > 1)) {
        $admin_box .= '<option value="upload">' . $LANG_MG01['add_media'] . '</option>' . LB;
        $showAdminBox = 1;
    }
    if ($MG_albums[0]->owner_id) {
        $admin_box .= '<option value="albumsort">' . $LANG_MG01['sort_albums'] . '</option>' . LB;
        $admin_box .= '<option value="globalattr">' . $LANG_MG01['globalattr'] . '</option>' . LB;
        $admin_box .= '<option value="globalperm">' . $LANG_MG01['globalperm'] . '</option>' . LB;
        $queue_count = DB_count($_TABLES['mg_media_album_queue']);
        $admin_box .= '<option value="moderate">' . $LANG_MG01['media_queue'] . ' (' . $queue_count . ')</option>' . LB;
        $admin_box .= '<option value="wmmanage">' . $LANG_MG01['wm_management'] . '</option>' . LB;
        $admin_box .= '<option value="create">' . $LANG_MG01['create_album'] . '</option>' . LB;
        $showAdminBox = 1;
    } elseif ($MG_albums[0]->access == 3) {
        $admin_box .= '<option value="create">' . $LANG_MG01['create_album'] . '</option>' . LB;
        $showAdminBox = 1;
    } elseif ($_MG_CONF['member_albums'] == 1 && (isset($_USER['uid']) && $_USER['uid'] > 1) && $_MG_CONF['member_album_root'] == 0 && $_MG_CONF['member_create_new']) {
        $admin_box .= '<option value="create">' . $LANG_MG01['create_album'] . '</option>' . LB;
        $showAdminBox = 1;
    }
    $admin_box .= '</select>' . LB;
    $admin_box .= '<input type="hidden" name="album_id" value="0"/>' . LB;
    $admin_box .= '&nbsp;<input type="submit" value="' . $LANG_MG03['go'] . '"/>' . LB;
    $admin_box .= '</div>';
    $admin_box .= '</form>';
    if ($showAdminBox == 0) {
        $admin_box = '';
    }
    // construct the album jumpbox...
    $level = 0;
    $album_jumpbox = '<form name="jumpbox" id="jumpbox" action="' . $_MG_CONF['site_url'] . '/album.php' . '" method="get" style="margin:0;padding:0"><div>';
    $album_jumpbox .= $LANG_MG03['jump_to'] . ':&nbsp;<select name="aid" onchange="forms[\'jumpbox\'].submit()">';
    $MG_albums[0]->buildJumpBox(0);
    $album_jumpbox .= '</select>';
    $album_jumpbox .= '&nbsp;<input type="submit" value="' . $LANG_MG03['go'] . '"/>';
    $album_jumpbox .= '<input type="hidden" name="page" value="1"/>';
    $album_jumpbox .= '</div></form>';
    // initialize our variables
    $total_media = 0;
    $arrayCounter = 0;
    $total_object_count = 0;
    $mediaObject = array();
    $begin = $media_per_page * $page;
    $end = $media_per_page;
    $MG_media = array();
    // loop thru all the albums and build a list of valid albums that the user can see
    $first = 0;
    $albumList = getAlbumList($album_id, $first);
    $orderBy = ' ORDER BY m.media_upload_time ' . $sortOrder;
    if ($albumList != '') {
        $sql = "SELECT COUNT(*) AS total FROM {$_TABLES['mg_media_albums']} as ma INNER JOIN " . $_TABLES['mg_media'] . " as m " . " ON ma.media_id=m.media_id WHERE ma.album_id IN (" . $albumList . ") " . $orderBy;
        $result = DB_query($sql);
        $row = DB_fetchArray($result);
        $cCount = $row['total'];
    } else {
        $cCount = 0;
    }
    if ($albumList != '') {
        $sql = "SELECT * FROM {$_TABLES['mg_media_albums']} as ma INNER JOIN " . $_TABLES['mg_media'] . " as m " . " ON ma.media_id=m.media_id WHERE ma.album_id IN (" . $albumList . ") " . $orderBy;
        $sql .= ' LIMIT ' . $begin . ',' . $end;
        $result = DB_query($sql);
        $nRows = DB_numRows($result);
    } else {
        $nRows = 0;
    }
    $mediaRows = 0;
    $lbss_count = 0;
    $posCount = 0;
    if ($nRows > 0) {
        while ($row = DB_fetchArray($result)) {
            $media = new MediaItem();
            $media->constructor($row, $row['album_id']);
            $MG_media[$arrayCounter] = $media;
            $MG_albums[$row['album_id']]->imageFrameTemplate = $imageFrameTemplate;
            $arrayCounter++;
            $mediaRows++;
        }
    }
    $total_media = $total_media + $mediaRows;
    $total_items_in_album = $cCount;
    $total_pages = ceil($total_items_in_album / $media_per_page);
    if ($page >= $total_pages) {
        $page = $total_pages - 1;
    }
    $start = $page * $media_per_page;
    $current_print_page = floor($start / $media_per_page) + 1;
    $total_print_pages = ceil($total_items_in_album / $media_per_page);
    if ($current_print_page == 0) {
        $current_print_page = 1;
    }
    if ($total_print_pages == 0) {
        $total_print_pages = 1;
    }
    // now build the admin select...
    $admin_box = '';
    $admin_box = '<form name="adminbox" id="adminbox" action="' . $_MG_CONF['site_url'] . '/admin.php" method="get" style="margin:0;padding:0">';
    $admin_box .= '<div><input type="hidden" name="album_id" value="' . $album_id . '"/>';
    $admin_box .= '<select name="mode" onchange="forms[\'adminbox\'].submit()">';
    $admin_box .= '<option label="' . $LANG_MG01['options'] . '" value="">' . $LANG_MG01['options'] . '</option>';
    $admin_box .= '<option value="search">' . $LANG_MG01['search'] . '</option>';
    $uploadMenu = 0;
    $adminMenu = 0;
    if ($MG_albums[0]->owner_id) {
        $uploadMenu = 1;
        $adminMenu = 1;
    } else {
        if ($MG_albums[$album_id]->access == 3) {
            $uploadMenu = 1;
            $adminMenu = 1;
            if ($_MG_CONF['member_albums']) {
                if ($_MG_USERPREFS['active'] != 1) {
                    $uploadMenu = 0;
                    $adminMenu = 0;
                } else {
                    $uploadMenu = 1;
                    $adminMenu = 1;
                }
            }
        } else {
            if ($MG_albums[$album_id]->member_uploads == 1 && isset($_USER['uid']) && $_USER['uid'] >= 2) {
                $uploadMenu = 1;
                $adminMenu = 0;
            }
        }
    }
    if ($uploadMenu == 1) {
        $admin_box .= '<option value="upload">' . $LANG_MG01['add_media'] . '</option>';
    }
    if ($adminMenu == 1) {
        $admin_box .= '<option value="create">' . $LANG_MG01['create_album'] . '</option>';
    } elseif ($_MG_CONF['member_albums'] == 1 && !empty($_USER['username']) && $_MG_CONF['member_create_new'] == 1 && $_MG_USERPREFS['active'] == 1 && $album_id == $_MG_CONF['member_album_root']) {
        $admin_box .= '<option value="create">' . $LANG_MG01['create_album'] . '</option>';
        $adminMenu = 1;
    }
    // now check for moderation capabilities....
    if ($MG_albums[$album_id]->member_uploads == 1 && $MG_albums[$album_id]->moderate == 1) {
        // check to see if we are in the album_mod_group
        if (SEC_inGroup($MG_albums[$album_id]->mod_group_id) || $MG_albums[0]->owner_id) {
            $queue_count = DB_count($_TABLES['mg_media_album_queue'], 'album_id', $album_id);
            $admin_box .= '<option value="moderate">' . $LANG_MG01['media_queue'] . ' (' . $queue_count . ')</option>';
            $adminMenu = 1;
        }
    }
    $admin_box .= '</select>';
    $admin_box .= '&nbsp;<input type="submit" value="' . $LANG_MG03['go'] . '" style="padding:0px;margin:0px;"/>';
    $admin_box .= '</div></form>';
    if ($uploadMenu == 0 && $adminMenu == 0) {
        $admin_box = '';
    }
    if ($MG_albums[$album_id]->enable_sort == 1) {
        $sort_box = '<form name="sortbox" id="sortbox" action="' . $_MG_CONF['site_url'] . '/album.php" method="get" style="margin:0;padding:0"><div>';
        $sort_box .= '<input type="hidden" name="aid" value="' . $album_id . '"/>';
        $sort_box .= '<input type="hidden" name="page" value="' . $page . '"/>';
        $sort_box .= $LANG_MG03['sort_by'] . '&nbsp;<select name="sort" onchange="forms[\'sortbox\'].submit()">';
        $sort_box .= '<option value="0" ' . ($sortOrder == 0 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_default'] . '</option>';
        $sort_box .= '<option value="1" ' . ($sortOrder == 1 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_default_asc'] . '</option>';
        $sort_box .= '<option value="2" ' . ($sortOrder == 2 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_upload'] . '</option>';
        $sort_box .= '<option value="3" ' . ($sortOrder == 3 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_upload_asc'] . '</option>';
        $sort_box .= '<option value="4" ' . ($sortOrder == 4 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_capture'] . '</option>';
        $sort_box .= '<option value="5" ' . ($sortOrder == 5 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_capture_asc'] . '</option>';
        $sort_box .= '<option value="6" ' . ($sortOrder == 6 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_rating'] . '</option>';
        $sort_box .= '<option value="7" ' . ($sortOrder == 7 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_rating_asc'] . '</option>';
        $sort_box .= '<option value="8" ' . ($sortOrder == 8 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_views'] . '</option>';
        $sort_box .= '<option value="9" ' . ($sortOrder == 9 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_views_asc'] . '</option>';
        $sort_box .= '<option value="10" ' . ($sortOrder == 10 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_alpha'] . '</option>';
        $sort_box .= '<option value="11" ' . ($sortOrder == 11 ? ' selected="selected" ' : '') . '>' . $LANG_MG03['sort_alpha_asc'] . '</option>';
        $sort_box .= '</select>';
        $sort_box .= '&nbsp;<input type="submit" value="' . $LANG_MG03['go'] . '"/>';
        $sort_box .= '</div></form>';
    } else {
        $sort_box = '';
    }
    $owner_id = $MG_albums[$album_id]->owner_id;
    if ($owner_id == '' || !isset($MG_albums[$album_id]->owner_id)) {
        $owner_id = 0;
    }
    $ownername = DB_getItem($_TABLES['users'], 'username', "uid=" . (int) $owner_id);
    $album_last_update = MG_getUserDateTimeFormat($MG_albums[$album_id]->last_update);
    $T = new Template($_MG_CONF['template_path']);
    $T->set_file(array('page' => 'index-all.thtml'));
    //@TODO fix language tag
    $T->set_var(array('site_url' => $_MG_CONF['site_url'], 'album_title' => "All Photos - Sorted by Post Date", 'table_columns' => $columns_per_page, 'table_column_width' => intval(100 / $columns_per_page) . '%', 'top_pagination' => COM_printPageNavigation($_MG_CONF['site_url'] . '/index.php?aid=' . $album_id, $page + 1, ceil($total_items_in_album / $media_per_page)), 'bottom_pagination' => COM_printPageNavigation($_MG_CONF['site_url'] . '/index.php?aid=' . $album_id, $page + 1, ceil($total_items_in_album / $media_per_page)), 'page_number' => sprintf("%s %d %s %d", $LANG_MG03['page'], $current_print_page, $LANG_MG03['of'], $total_print_pages), 'jumpbox' => $album_jumpbox, 'album_id' => $album_id, 'lbslideshow' => $lbSlideShow, 'album_description' => $MG_albums[$album_id]->display_album_desc ? PLG_replaceTags($MG_albums[$album_id]->description) : '', 'album_id_display' => $MG_albums[0]->owner_id || $_MG_CONF['enable_media_id'] == 1 ? $LANG_MG03['album_id_display'] . $album_id : '', 'select_adminbox' => $admin_box, 'select_sortbox' => $sort_box, 'album_last_update' => $album_last_update[0], 'album_owner' => $ownername, 'media_count' => $MG_albums[$album_id]->getMediaCount(), 'lang_search' => $LANG_MG01['search'], 'table_columns' => $displayColumns));
    $T->set_var('select_adminbox', $admin_box);
    if ($_MG_CONF['rss_full_enabled']) {
        $feedUrl = MG_getFeedUrl($_MG_CONF['rss_feed_name'] . '.rss');
        $rsslink = '<a href="' . $feedUrl . '"' . ' type="application/rss+xml">';
        $rsslink .= '<img src="' . MG_getImageFile('feed.png') . '" alt="" style="border:none;"/></a>';
        $T->set_var('rsslink', $rsslink);
    } else {
        $T->set_var('rsslink', '');
    }
    // completed setting header / footer vars, parse them
    PLG_templateSetVars('mediagallery', $T);
    if ($total_media == 0) {
        $T->set_var(array('lang_no_image' => $LANG_MG03['no_media_objects']));
    }
    //
    // main processing of the album contents.
    //
    $noParse = 0;
    $needFinalParse = 0;
    if ($total_media > 0) {
        $k = 0;
        $T->set_block('page', 'ImageColumn', 'IColumn');
        $T->set_block('page', 'ImageRow', 'IRow');
        for ($i = 0; $i < $media_per_page; $i += $columns_per_page) {
            for ($j = $i; $j < $i + $columns_per_page; $j++) {
                if ($j >= $total_media) {
                    $k = $i + $columns_per_page - $j;
                    $m = $k % $columns_per_page;
                    for ($z = $m; $z > 0; $z--) {
                        $T->set_var(array('CELL_DISPLAY_IMAGE' => ''));
                        $T->parse('IColumn', 'ImageColumn', true);
                        $needFinalParse = 1;
                    }
                    if ($needFinalParse == 1) {
                        $T->parse('IRow', 'ImageRow', true);
                        $T->set_var('IColumn', '');
                    }
                    $noParse = 1;
                    break;
                }
                $previous_image = $i - 1;
                if ($previous_image < 0) {
                    $previous_image = -1;
                }
                $next_image = $i + 1;
                if ($next_image >= $total_media - 1) {
                    $next_image = -1;
                }
                $z = $j + $start;
                $celldisplay = $MG_media[$j]->displayThumb($z, 0, $imageFrameTemplate);
                if ($MG_media[$j]->type == 1) {
                    $PhotoURL = $_MG_CONF['mediaobjects_url'] . '/disp/' . $MG_media[$j]->filename[0] . '/' . $MG_media[$j]->filename . '.jpg';
                    $T->set_var(array('URL' => $PhotoURL));
                }
                $T->set_var(array('CELL_DISPLAY_IMAGE' => $celldisplay));
                $T->parse('IColumn', 'ImageColumn', true);
            }
            if ($noParse == 1) {
                break;
            }
            $T->parse('IRow', 'ImageRow', true);
            $T->set_var('IColumn', '');
        }
    }
    $T->parse('output', 'page');
    $fCSS = $nFrame->getCSS();
    if ($fCSS != '') {
        $outputHandle = outputHandler::getInstance();
        $outputHandle->addStyle($fCSS);
    }
    $display = MG_siteHeader(strip_tags($MG_albums[$album_id]->title));
    $display .= $T->finish($T->get_var('output'));
    $display .= MG_siteFooter();
    echo $display;
}
Esempio n. 6
0
function MG_sendPostCard()
{
    global $MG_albums, $_MG_CONF, $_CONF, $_TABLES, $_USER, $LANG_MG00, $LANG_MG02, $LANG_MG03, $LANG_ACCESS, $_POST;
    global $LANG_DIRECTION, $LANG_CHARSET;
    $mid = COM_sanitizeID(COM_applyFilter($_POST['mid'], true));
    $toname = COM_applyFilter($_POST['toname']);
    $toemail = COM_applyFilter($_POST['toemail']);
    $fromname = COM_applyFilter($_POST['fromname']);
    $fromemail = COM_applyFilter($_POST['fromemail']);
    $subject = strip_tags(COM_checkWords($_POST['subject']));
    $message = htmlspecialchars(strip_tags(COM_checkWords($_POST['message'])));
    $ccself = isset($_POST['ccself']) ? 1 : 0;
    $errCount = 0;
    $msg = '';
    if (!COM_isEmail($toemail)) {
        $errCount++;
    }
    if (!COM_isEmail($fromemail)) {
        $errCount++;
    }
    if (empty($subject)) {
        $errCount++;
    }
    if (empty($message)) {
        $errCount++;
    }
    $captchaString = isset($_POST['captcha']) ? $_POST['captcha'] : '';
    $msg = PLG_itemPreSave('mediagallery', $captchaString);
    if ($msg != '') {
        $errCount++;
    }
    if ($errCount > 0) {
        return MG_editPostCard('edit', $mid, $msg);
    }
    $retval = '';
    $aid = DB_getItem($_TABLES['mg_media_albums'], 'album_id', 'media_id="' . DB_escapeString($mid) . '"');
    if ($MG_albums[$aid]->access == 0 || $MG_albums[$aid]->enable_postcard == 0 || COM_isAnonUser() && $MG_albums[$aid]->enable_postcard != 2) {
        $retval = MG_siteHeader();
        $retval .= COM_showMessageText($LANG_MG00['access_denied_msg'], $LANG_ACCESS['accessdenied'], true);
        $retval .= MG_siteFooter();
        echo $retval;
        exit;
    }
    $sql = "SELECT * FROM {$_TABLES['mg_media_albums']} as ma LEFT JOIN " . $_TABLES['mg_media'] . " as m " . " ON ma.media_id=m.media_id WHERE m.media_id='" . DB_escapeString($mid) . "'";
    $result = DB_query($sql);
    $nRows = DB_numRows($result);
    if ($nRows < 1) {
        $retval = MG_siteHeader();
        $retval .= COM_showMessageText($LANG_MG00['access_denied_msg'], $LANG_ACCESS['accessdenied'], true);
        $retval .= MG_siteFooter();
        echo $retval;
        exit;
    }
    $M = DB_fetchArray($result);
    // trim the database
    $purgeDate = time() - $_MG_CONF['postcard_retention'] * 86400;
    DB_query("DELETE FROM {$_TABLES['mg_postcard']} WHERE pc_time < " . $purgeDate);
    // save this one in the database
    $newsubject = DB_escapeString($subject);
    $newmessage = DB_escapeString($message);
    $pcId = COM_makesid();
    $pc_time = time();
    if (COM_isAnonUser()) {
        $uid = 1;
    } else {
        $uid = (int) $_USER['uid'];
    }
    $sql = "INSERT INTO {$_TABLES['mg_postcard']} (pc_id,mid,to_name,to_email,from_name,from_email,subject,message,pc_time,uid) VALUES ('{$pcId}','" . DB_escapeString($mid) . "','" . DB_escapeString($toname) . "','" . DB_escapeString($toemail) . "','" . DB_escapeString($fromname) . "','" . DB_escapeString($fromemail) . "','{$newsubject}','{$newmessage}',{$pc_time},{$uid})";
    $result = DB_query($sql);
    if (DB_error()) {
        COM_errorLog("Media Gallery: Error saving postcard");
    }
    COM_clearSpeedlimit($_CONF['commentspeedlimit'], 'mgpostcard');
    $last = COM_checkSpeedlimit('mgpostcard');
    if ($last > 0) {
        $msg = sprintf($LANG_MG02['postcard_speedlimit'], $last);
        return MG_errorHandler($msg);
    }
    $alternate_link = $_MG_CONF['site_url'] . '/getcard.php?id=' . $pcId;
    // build the template...
    $T = new Template(MG_getTemplatePath($aid));
    $T->set_file('postcard', 'postcard.thtml');
    $media_size = @getimagesize($_MG_CONF['path_mediaobjects'] . 'tn/' . $M['media_filename'][0] . '/' . $M['media_filename'] . '.jpg');
    if (empty($LANG_DIRECTION)) {
        // default to left-to-right
        $direction = 'ltr';
    } else {
        $direction = $LANG_DIRECTION;
    }
    if (empty($LANG_CHARSET)) {
        $charset = $_CONF['default_charset'];
        if (empty($charset)) {
            $charset = 'iso-8859-1';
        }
    } else {
        $charset = $LANG_CHARSET;
    }
    $T->set_var(array('s_form_action' => $_MG_CONF['site_url'] . '/postcard.php', 'direction' => $direction, 'charset' => $charset, 'mid' => $mid, 'media_title' => $M['media_title'], 'alt_media_title' => htmlspecialchars(strip_tags($M['media_title'])), 'media_description' => isset($M['media_description']) ? $M['media_description'] : '', 'media_url' => $_MG_CONF['site_url'] . '/media.php?s=' . $mid, 'media_image' => $_MG_CONF['mediaobjects_url'] . '/disp/' . $M['media_filename'][0] . '/' . $M['media_filename'] . '.jpg', 'site_url' => $_MG_CONF['site_url'] . '/', 'postcard_subject' => $subject, 'postcard_message' => nl2br($message), 'from_email' => $fromemail, 'site_name' => $_CONF['site_name'], 'site_slogan' => $_CONF['site_slogan'], 'to_name' => $toname, 'from_name' => $fromname, 'pc_id' => $pcId, 'lang_to_name' => $LANG_MG03['to_name'], 'lang_to_email' => $LANG_MG03['to_email'], 'lang_from_name' => $LANG_MG03['from_name'], 'lang_from_email' => $LANG_MG03['from_email'], 'lang_subject' => $LANG_MG03['subject'], 'lang_send' => $LANG_MG03['send'], 'lang_cancel' => $LANG_MG03['cancel'], 'lang_preview' => $LANG_MG03['preview'], 'lang_unable_view' => $LANG_MG03['unable_to_view_postcard'], 'lang_postcard_from' => $LANG_MG03['postcard_from'], 'lang_to' => $LANG_MG03['to'], 'lang_from' => $LANG_MG03['from'], 'lang_visit' => $LANG_MG03['visit']));
    $T->parse('output', 'postcard');
    $retval .= $T->finish($T->get_var('output'));
    $msgData['subject'] = htmlspecialchars($subject);
    $msgData['htmlmessage'] = $retval;
    $msgData['textmessage'] = sprintf($LANG_MG03['text_body_email'], $fromname, $alternate_link);
    $msgData['from']['email'] = $fromemail;
    $msgData['from']['name'] = $fromname;
    $msgData['to'][] = array('email' => $toemail, 'name' => $toname);
    if ($ccself) {
        $msgData['to'][] = array('email' => $fromemail, 'name' => $fromname);
    }
    foreach ($_MG_CONF['validExtensions'] as $tnext) {
        if (file_exists($_MG_CONF['path_mediaobjects'] . 'disp/' . $M['media_filename'][0] . '/' . $M['media_filename'] . $tnext)) {
            $msgData['embeddedImage'][] = array('file' => $_MG_CONF['path_mediaobjects'] . 'disp/' . $M['media_filename'][0] . '/' . $M['media_filename'] . $tnext, 'name' => "pc-image", 'filename' => $M['media_original_filename'], 'encoding' => 'base64', 'mime' => $M['mime_type']);
        }
    }
    $msgData['embeddedImage'][] = array('file' => MG_getImageFilePath('stamp.gif'), 'name' => "stamp", 'filename' => 'stamp.gif', 'encoding' => 'base64', 'mime' => 'image/gif');
    COM_emailNotification($msgData);
    $msgNo = 8;
    // update the sent post card database...Or maybe just log it in an error log?
    $logentry = $fromname . " sent a postcard to " . $toname . " (" . $toemail . ") using media id " . $mid;
    MG_postcardLog($logentry);
    COM_updateSpeedlimit('mgpostcard');
    header("Location: " . $_MG_CONF['site_url'] . '/media.php?msg=' . $msgNo . '&s=' . $mid);
    exit;
}
Esempio n. 7
0
function MG_batchProcess($album_id, $action, $actionURL = '')
{
    global $_CONF, $MG_albums, $_TABLES, $_MG_CONF, $LANG_MG01, $_POST, $_SERVER;
    $numItems = count($_POST['sel']);
    switch ($action) {
        case 'rrt':
            require_once $_CONF['path'] . 'plugins/mediagallery/include/rotate.php';
            if ($numItems > 5) {
                $session_description = sprintf($LANG_MG01['batch_rotate_images'], $MG_albums[$album_id]->title);
                $session_id = MG_beginSession('rotate', $_MG_CONF['site_url'] . '/admin.php?album_id=' . $album_id . '&mode=media', $session_description);
                for ($i = 0; $i < $numItems; $i++) {
                    DB_query("INSERT INTO {$_TABLES['mg_session_items']} (session_id,mid,aid,data) VALUES('{$session_id}','" . DB_escapeString($_POST['sel'][$i]) . "'," . intval($album_id) . ",'right')");
                }
                $display = MG_siteHeader();
                $display .= MG_continueSession($session_id, 0, 30);
                $display .= MG_siteFooter();
                echo $display;
                exit;
            } else {
                for ($i = 0; $i < $numItems; $i++) {
                    MG_rotateMedia($album_id, COM_applyFilter($_POST['sel'][$i]), 'right', -1);
                }
                echo COM_refresh($_MG_CONF['site_url'] . '/admin.php?album_id=' . $album_id . '&mode=media');
                exit;
            }
            break;
        case 'rlt':
            require_once $_CONF['path'] . 'plugins/mediagallery/include/rotate.php';
            if ($numItems > 5) {
                $session_description = sprintf($LANG_MG01['batch_rotate_images'], $MG_albums[$album_id]->title);
                $session_id = MG_beginSession('rotate', $_MG_CONF['site_url'] . '/admin.php?album_id=' . $album_id . '&mode=media', $session_description);
                for ($i = 0; $i < $numItems; $i++) {
                    DB_query("INSERT INTO {$_TABLES['mg_session_items']} (session_id,mid,aid,data) VALUES('{$session_id}','" . DB_escapeString($_POST['sel'][$i]) . "'," . intval($album_id) . ",'left')");
                }
                $display = MG_siteHeader();
                $display .= MG_continueSession($session_id, 0, 30);
                $display .= MG_siteFooter();
                echo $display;
                exit;
            } else {
                for ($i = 0; $i < $numItems; $i++) {
                    MG_rotateMedia($album_id, COM_applyFilter($_POST['sel'][$i]), 'left', -1);
                }
                echo COM_refresh($_MG_CONF['site_url'] . '/admin.php?album_id=' . $album_id . '&mode=media');
                exit;
            }
            break;
        case 'watermark':
            if ($MG_albums[$album_id]->wm_id != 0) {
                $session_description = sprintf($LANG_MG01['batch_watermark_images'], $MG_albums[$album_id]->title);
                $session_id = MG_beginSession('watermark', $_MG_CONF['site_url'] . '/admin.php?album_id=' . $album_id . '&mode=media', $session_description);
                for ($i = 0; $i < $numItems; $i++) {
                    // setup our new batch processor - fingers crossed...
                    DB_query("INSERT INTO {$_TABLES['mg_session_items']} (session_id,mid,aid,data) VALUES('{$session_id}','" . DB_escapeString($_POST['sel'][$i]) . "'," . intval($album_id) . ",'')");
                }
                $display = MG_siteHeader();
                $display .= MG_continueSession($session_id, 0, 30);
                $display .= MG_siteFooter();
                echo $display;
                exit;
            }
            break;
    }
    echo COM_refresh($actionURL . '&t=' . time());
    exit;
}
Esempio n. 8
0
function MG_ftpProcess($album_id)
{
    global $MG_albums, $_FILES, $_USER, $_CONF, $_TABLES, $_MG_CONF, $LANG_MG00, $LANG_MG01, $LANG_MG02, $LANG_MG03, $_POST;
    $session_description = $LANG_MG01['ftp_media'];
    $origin = $album_id == 0 ? '/index.php' : '/album.php?aid=' . $album_id;
    $session_id = MG_beginSession('ftpimport2', $_MG_CONF['site_url'] . $origin, $session_description);
    $purgefiles = COM_applyFilter($_POST['purgefiles'], true);
    $count = count($_POST['pic']);
    if ($count < 1) {
        if ($album_id == 0) {
            echo COM_refresh($_MG_CONF['site_url'] . '/index.php');
        } else {
            echo COM_refresh($_MG_CONF['site_url'] . '/album.php?aid=' . $album_id);
        }
        exit;
    }
    foreach ($_POST['pic'] as $pic_id) {
        $album_lb_id = COM_applyFilter($_POST['album_lb_id_' . $pic_id]);
        $aid = COM_applyFilter($_POST[$album_lb_id], true);
        $filename = COM_applyFilter($_POST['picfile_' . $pic_id]);
        // full path and name
        $file = basename($filename);
        // basefilename
        if (is_dir($filename)) {
            $mid = 1;
        } else {
            $mid = 0;
        }
        DB_query("INSERT INTO {$_TABLES['mg_session_items']} (session_id,mid,aid,data,data2,data3,status)\n                  VALUES('{$session_id}','{$mid}',{$aid},'" . DB_escapeString($filename) . "','" . $purgefiles . "','" . DB_escapeString($file) . "',0)");
    }
    $display = MG_siteHeader();
    $display .= MG_continueSession($session_id, 0, 30);
    $display .= MG_siteFooter();
    echo $display;
    exit;
}
Esempio n. 9
0
function MG_batchCaptionEdit($album_id, $start, $actionURL = '')
{
    global $_CONF, $_TABLES, $_MG_CONF, $LANG_MG00, $LANG_MG01, $_POST, $_DB_dbms;
    $album_id = intval($album_id);
    $start = COM_applyFilter($start, true);
    if ($actionURL == '') {
        $actionURL = $_MG_CONF['site_url'] . '/index.php';
    }
    $rowclass = 0;
    // need to check and see that we have permission to do this!
    // BUG put it here! - don't look just for mediagallery.admin, actually check
    // and see if we have write priviledges to this album...
    $result = DB_query("SELECT * FROM {$_TABLES['mg_albums']} WHERE album_id=" . $album_id);
    $nRows = DB_numRows($result);
    if ($nRows > 0) {
        $A = DB_fetchArray($result);
    } else {
        $display .= COM_startBlock('', '', COM_getBlockTemplate('_admin_block', 'header'));
        $T = new Template($_MG_CONF['template_path']);
        $T->set_file('admin', 'error.thtml');
        $T->set_var('site_url', $_CONF['site_url']);
        $T->set_var('site_admin_url', $_CONF['site_admin_url']);
        $T->set_var('errormessage', $LANG_MG00['access_denied_msg']);
        $T->parse('output', 'admin');
        $display .= $T->finish($T->get_var('output'));
        $display .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
        $display .= MG_siteFooter();
        return $display;
    }
    $access = SEC_hasAccess($A['owner_id'], $A['group_id'], $A['perm_owner'], $A['perm_group'], $A['perm_members'], $A['perm_anon']);
    if ($access != 3) {
        $display .= COM_startBlock('', '', COM_getBlockTemplate('_admin_block', 'header'));
        $T = new Template($_MG_CONF['template_path']);
        $T->set_file('admin', 'error.thtml');
        $T->set_var('site_url', $_CONF['site_url']);
        $T->set_var('site_admin_url', $_CONF['site_admin_url']);
        $T->set_var('errormessage', $LANG_MG00['access_denied_msg']);
        $T->parse('output', 'admin');
        $display .= $T->finish($T->get_var('output'));
        $display .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
        $display .= MG_siteFooter();
        return $display;
    }
    $retval = '';
    $T = new Template(MG_getTemplatePath($album_id));
    $T->set_file(array('admin' => 'batch_caption_edit.thtml', 'empty' => 'album_page_noitems.thtml', 'media' => 'batch_caption_media_items.thtml'));
    $T->set_var('album_id', $album_id);
    if ($_DB_dbms == "mssql") {
        $sql = "SELECT *,CAST(media_desc AS TEXT) as media_desc FROM " . $_TABLES['mg_media_albums'] . " as ma INNER JOIN " . $_TABLES['mg_media'] . " as m ON ma.media_id=m.media_id" . " WHERE ma.album_id=" . $album_id . " ORDER BY ma.media_order DESC LIMIT " . $start . ",9;";
    } else {
        $sql = "SELECT * FROM " . $_TABLES['mg_media_albums'] . " as ma INNER JOIN " . $_TABLES['mg_media'] . " as m ON ma.media_id=m.media_id" . " WHERE ma.album_id=" . $album_id . " ORDER BY ma.media_order DESC LIMIT " . $start . ",9;";
    }
    $result = DB_query($sql);
    $nRows = DB_numRows($result);
    if ($nRows == 0) {
        // we have nothing in the album at this time...
        $T->set_var(array('noitems' => $LANG_MG01['no_media_objects']));
        $T->parse('noitems', 'empty');
    } else {
        $mediaObject = array();
        $T->set_block('media', 'ImageColumn', 'IColumn');
        $T->set_block('media', 'ImageRow', 'IRow');
        for ($x = 0; $x < $nRows; $x += 3) {
            $T->set_var('IColumn', '');
            for ($j = $x; $j < $x + 3; $j++) {
                if ($j >= $nRows) {
                    break;
                }
                $row = DB_fetchArray($result);
                $mediaObject[] = $row;
                switch ($row['media_type']) {
                    case 0:
                        $thumbnail = '';
                        foreach ($_MG_CONF['validExtensions'] as $ext) {
                            if (file_exists($_MG_CONF['path_mediaobjects'] . 'tn/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext)) {
                                $thumbnail = $_MG_CONF['mediaobjects_url'] . '/tn/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext;
                                $pThumbnail = $_MG_CONF['path_mediaobjects'] . 'tn/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext;
                                break;
                            }
                        }
                        if ($thumbnail == '') {
                            $thumbnail = $_MG_CONF['mediaobjects_url'] . '/generic.png';
                            $pThumbnail = $_MG_CONF['path_mediaobjects'] . 'generic.png';
                        }
                        break;
                    case 1:
                        switch ($row['media_mime_ext']) {
                            case 'swf':
                                $thumbnail = $_MG_CONF['mediaobjects_url'] . '/flash.png';
                                $pThumbnail = $_MG_CONF['path_mediaobjects'] . 'flash.png';
                                break;
                            case 'mov':
                            case 'mp4':
                                $thumbnail = $_MG_CONF['mediaobjects_url'] . '/quicktime.png';
                                $pThumbnail = $_MG_CONF['path_mediaobjects'] . 'quicktime.png';
                                break;
                            case 'asf':
                                $thumbnail = $_MG_CONF['mediaobjects_url'] . '/wmp.png';
                                $pThumbnail = $_MG_CONF['path_mediaobjects'] . 'wmp.png';
                                break;
                            default:
                                $thumbnail = $_MG_CONF['mediaobjects_url'] . '/video.png.';
                                $pThumbnail = $_MG_CONF['path_mediaobjects'] . 'video.png';
                                break;
                        }
                        break;
                    case 2:
                        $thumbnail = $_MG_CONF['mediaobjects_url'] . '/audio.png';
                        $pThumbnail = $_MG_CONF['path_mediaobjects'] . 'audio.png';
                        break;
                    case 4:
                        switch ($row['media_mime_ext']) {
                            case 'zip':
                            case 'arj':
                            case 'rar':
                            case 'gz':
                                $thumbnail = $_MG_CONF['mediaobjects_url'] . '/zip.png';
                                $pThumbnail = $_MG_CONF['path_mediaobjects'] . 'zip.png';
                                break;
                            case 'pdf':
                                $thumbnail = $_MG_CONF['mediaobjects_url'] . '/pdf.png';
                                $pThumbnail = $_MG_CONF['path_mediaobjects'] . 'pdf.png';
                                break;
                            default:
                                $thumbnail = $_MG_CONF['mediaobjects_url'] . '/generic.png';
                                $pThumbnail = $_MG_CONF['path_mediaobjects'] . 'generic.png';
                                break;
                        }
                        break;
                    case 5:
                        $thumbnail = $_MG_CONF['mediaobjects_url'] . '/remote.png';
                        $pThumbnail = $_MG_CONF['path_mediaobjects'] . 'remote.png';
                        break;
                }
                $img_size = @getimagesize($pThumbnail);
                if ($img_size != false) {
                    if ($img_size[0] > $img_size[1]) {
                        $ratio = $img_size[0] / 200;
                        $width = 200;
                        $height = round($img_size[1] / $ratio);
                    } else {
                        $ratio = $img_size[1] / 200;
                        $height = 200;
                        $width = round($img_size[0] / $ratio);
                    }
                }
                $T->set_var(array('rowclass' => $rowclass % 2 ? '1' : '2', 'media_id' => $row['media_id'], 'u_thumbnail' => $thumbnail, 'media_title' => $row['media_title'], 'media_desc' => $row['media_desc'], 'height' => $height, 'width' => $width, 'lang_title' => $LANG_MG01['title'], 'lang_description' => $LANG_MG01['description']));
                $start++;
                $rowclass++;
                $T->parse('IColumn', 'ImageColumn', true);
            }
            $T->parse('IRow', 'ImageRow', true);
        }
        $T->parse('mediaitems', 'media');
    }
    $T->set_var(array('album_id' => $album_id, 'url_album' => $_MG_CONF['site_url'] . '/album.php?aid=' . $album_id, 's_form_action' => $_MG_CONF['site_url'] . '/admin.php?album_id=' . $album_id . '&amp;start=' . $start, 'action' => 'batchcaptionsave', 'start' => $start, 'lang_cancel' => $LANG_MG01['cancel'], 'lang_save_exit' => $LANG_MG01['save_exit'], 'input_next' => $start >= $A['media_count'] ? '' : '<input type="submit" name="mode" value="' . $LANG_MG01['save_next_batch'] . '"/>', 'lang_save_next_batch' => $LANG_MG01['save_next_batch'], 'lang_batch_caption_help' => $LANG_MG01['batch_caption_help']));
    $T->parse('output', 'admin');
    $retval .= $T->finish($T->get_var('output'));
    return $retval;
}
Esempio n. 10
0
/**
 * Continues a session - handles timeout, looping, etc.
 *
 * @parm    char    session id to continue
 * @parm    int     number of items to process per run
 *                  0 indicates initial run
 * @return  char    HTML of status screen
 */
function MG_continueSession($session_id, $item_limit, $refresh_rate)
{
    global $MG_albums, $_CONF, $_MG_CONF, $_TABLES, $_USER, $LANG_MG00, $LANG_MG01, $LANG_MG02, $HTTP_SERVER_VARS;
    global $new_media_id, $_GKCONST;
    $retval = '';
    $cycle_start_time = time();
    $temp_time = array();
    $timer_expired = false;
    $num_rows = 0;
    $session_id = COM_applyFilter($session_id);
    // Pull the session status info
    $sql = "SELECT * FROM {$_TABLES['mg_sessions']} WHERE session_id='" . DB_escapeString($session_id) . "'";
    $result = DB_query($sql, 1);
    if (DB_error()) {
        COM_errorLog("MediaGallery:  Error - Unable to retrieve batch session data");
        return '';
    }
    $nRows = DB_numRows($result);
    if ($nRows > 0) {
        $session = DB_fetchArray($result);
    } else {
        COM_errorLog("MediaGallery: Error - Unable to find batch session id");
        return '';
        // no session found
    }
    // security check - make sure we are continuing a session that we own...
    if ($session['session_uid'] != $_USER['uid'] && !$MG_albums[0]->owner_id) {
        $display .= COM_startBlock('', '', COM_getBlockTemplate('_admin_block', 'header'));
        $T = new Template(MG_getTemplatePath(0));
        $T->set_file('admin', 'error.thtml');
        $T->set_var('site_url', $_CONF['site_url']);
        $T->set_var('site_admin_url', $_CONF['site_admin_url']);
        $T->set_var('errormessage', $LANG_MG00['access_denied_msg']);
        $T->parse('output', 'admin');
        $display .= $T->finish($T->get_var('output'));
        $display .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
        $display .= MG_siteFooter();
        return $display;
    }
    // Setup timer information
    $time_limit = $_MG_CONF['def_time_limit'];
    @set_time_limit($time_limit + 20);
    // get execution time
    $max_execution_time = ini_get('max_execution_time');
    if ($time_limit > $max_execution_time) {
        $time_limit = $max_execution_time;
    }
    $label = $session['session_description'];
    // Pull the detail data from the sessions_items table...
    $sql = "SELECT * FROM {$_TABLES['mg_session_items']} WHERE session_id='" . DB_escapeString($session_id) . "' AND status=0 LIMIT " . $item_limit;
    $result = DB_query($sql);
    while (($row = DB_fetchArray($result)) && $timer_expired == false) {
        // used for calculating loop duration and changing the timer condition
        $start_temp_time = time();
        switch ($session['session_action']) {
            case 'watermark':
                require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-upload.php';
                require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-watermark.php';
                MG_watermarkBatchProcess($row['aid'], $row['mid']);
                break;
            case 'rebuildthumb':
                $makeSquare = 0;
                $aid = $row['aid'];
                $srcImage = $row['data'];
                $imageThumb = $row['data2'];
                $mimeExt = $row['data3'];
                $mimeType = $row['mid'];
                if ($MG_albums[$aid]->tn_size == 3 || $MG_albums[$aid]->tn_size == 4) {
                    $tnHeight = $MG_albums[$aid]->tnHeight;
                    $tnWidth = $MG_albums[$aid]->tnWidth;
                    if ($MG_albums[$aid]->tn_size == 4) {
                        $makeSquare = 1;
                    }
                } else {
                    if ($_MG_CONF['thumbnail_actual_size'] == 1) {
                        switch ($MG_albums[$aid]->tn_size) {
                            case 0:
                                $tnHeight = 100;
                                $tnWidth = 100;
                                break;
                            case 1:
                                $tnHeight = 150;
                                $tnWidth = 150;
                                break;
                            default:
                                $tnHeight = 200;
                                $tnWidth = 200;
                                break;
                        }
                    } else {
                        $tnHeight = 200;
                        $tnWidth = 200;
                    }
                }
                $tmpImage = '';
                if ($mimeType == 'image/x-targa' || $mimeType == 'image/tga' || $mimeType == 'image/photoshop' || $mimeType == 'image/x-photoshop' || $mimeType == 'image/psd' || $mimeType == 'application/photoshop' || $mimeType == 'application/psd') {
                    $tmpImage = $_MG_CONF['tmp_path'] . '/wip' . rand() . '.jpg';
                    $rc = IMG_convertImageFormat($srcImage, $tmpImage, 'image/jpeg', 0);
                    if ($rc == false) {
                        COM_errorLog("MG_convertImage: Error converting uploaded image to jpeg format.");
                        @unlink($srcImage);
                        return false;
                    }
                    if ($makeSquare == 1) {
                        $rc = IMG_squareThumbnail($tmpImage, $imageThumb, $tnWidth, $mimeType, 0);
                    } else {
                        $rc = IMG_resizeImage($tmpImage, $imageThumb, $tnHeight, $tnWidth, $mimeType, 0);
                    }
                } else {
                    if ($makeSquare == 1) {
                        $rc = IMG_squareThumbnail($srcImage, $imageThumb, $tnWidth, $mimeType, 0);
                    } else {
                        $rc = IMG_resizeImage($srcImage, $imageThumb, $tnHeight, $tnWidth, $mimeType, 0);
                    }
                }
                if ($rc == false) {
                    COM_errorLog("MG_convertImage: Error resizing uploaded image to thumbnail size.");
                    @unlink($srcImage);
                }
                break;
            case 'rebuilddisplay':
                $srcImage = $row['data'];
                $imageDisplay = $row['data2'];
                $mimeExt = $row['data3'];
                $mimeType = $row['mid'];
                $aid = $row['aid'];
                $imgsize = @getimagesize("{$srcImage}");
                $imgwidth = $imgsize[0];
                $imgheight = $imgsize[1];
                $tmpImage = '';
                if ($mimeType == 'image/x-targa' || $mimeType == 'image/tga' || $mimeType == 'image/photoshop' || $mimeType == 'image/x-photoshop' || $mimeType == 'image/psd' || $mimeType == 'application/photoshop' || $mimeType == 'application/psd' || $mimeType == 'image/tiff') {
                    $tmpImage = $_MG_CONF['tmp_path'] . '/wip' . rand() . '.jpg';
                    list($rc, $msg) = IMG_convertImageFormat($srcImage, $tmpImage, 'image/jpeg', 0);
                    if ($rc == false) {
                        COM_errorLog("MG_libBatch: Error converting uploaded image to jpeg format.");
                    }
                }
                switch ($MG_albums[$aid]->display_image_size) {
                    case 0:
                        $dImageWidth = 500;
                        $dImageHeight = 375;
                        break;
                    case 1:
                        $dImageWidth = 600;
                        $dImageHeight = 450;
                        break;
                    case 2:
                        $dImageWidth = 620;
                        $dImageHeight = 465;
                        break;
                    case 3:
                        $dImageWidth = 720;
                        $dImageHeight = 540;
                        break;
                    case 4:
                        $dImageWidth = 800;
                        $dImageHeight = 600;
                        break;
                    case 5:
                        $dImageWidth = 912;
                        $dImageHeight = 684;
                        break;
                    case 6:
                        $dImageWidth = 1024;
                        $dImageHeight = 768;
                        break;
                    case 7:
                        $dImageWidth = 1152;
                        $dImageHeight = 804;
                        break;
                    case 8:
                        $dImageWidth = 1280;
                        $dImageHeight = 1024;
                        break;
                    case 9:
                        $dImageWidth = $_MG_CONF['custom_image_width'];
                        $dImageHeight = $_MG_CONF['custom_image_height'];
                        break;
                    default:
                        $dImageWidth = 620;
                        $dImageHeight = 465;
                        break;
                }
                if ($imgsize == false || $imgwidth == 0 || $imgheight == 0) {
                    $imgwidth = $dImageWidth;
                    $imgheight = $dImageHeight;
                }
                if ($mimeType == 'image/x-targa' || $mimeType == 'image/tga') {
                    $fp = @fopen($srcImage, 'rb');
                    if ($fp == false) {
                        $imgwidth = 0;
                        $imgheight = 0;
                    } else {
                        $data = fread($fp, filesize($srcImage));
                        fclose($fp);
                        $imgwidth = base_convert(bin2hex(strrev(substr($data, 12, 2))), 16, 10);
                        $imgheight = base_convert(bin2hex(strrev(substr($data, 12, 2))), 16, 10);
                    }
                }
                if ($tmpImage != '') {
                    list($rc, $msg) = IMG_resizeImage($tmpImage, $imageDisplay, $dImageHeight, $dImageWidth, $mimeType, 0);
                } else {
                    list($rc, $msg) = IMG_resizeImage($srcImage, $imageDisplay, $dImageHeight, $dImageWidth, $mimeType, 0);
                }
                if ($tmpImage != '') {
                    @unlink($tmpImage);
                }
                break;
            case 'droporiginal':
                require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-upload.php';
                if ($_MG_CONF['jhead_enabled'] == 1) {
                    UTL_execWrapper('"' . $_MG_CONF['jhead_path'] . "/jhead" . '"' . " -te " . $row['data'] . " " . $row['data2']);
                }
                @unlink($row['data']);
                break;
            case 'rotate':
                require_once $_CONF['path'] . 'plugins/mediagallery/include/rotate.php';
                MG_rotateMedia($row['aid'], $row['mid'], $row['data'], -1);
                break;
            case 'delete':
                break;
            case 'upgrade':
                break;
            case 'import':
                break;
            case 'ftpimport2':
                require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-upload.php';
                require_once $_CONF['path'] . 'plugins/mediagallery/include/sort.php';
                $srcFile = $row['data'];
                // full path
                $album_id = $row['aid'];
                $purgefiles = intval($row['data2']);
                $baseSrcFile = $row['data3'];
                // basefilename
                $directory = $row['mid'];
                if ($directory == 1) {
                    require_once $_CONF['path'] . 'plugins/mediagallery/include/albumedit.php';
                    $new_aid = MG_quickCreate($album_id, $baseSrcFile);
                    $dir = $srcFile;
                    if (!($dh = @opendir($dir))) {
                        COM_errorLog("Media Gallery: Error - unable process FTP import directory " . $dir);
                    } else {
                        while (($file = readdir($dh)) != false) {
                            if ($file == '..' || $file == '.') {
                                continue;
                            }
                            if ($file == 'Thumbs.db' || $file == 'thumbs.db') {
                                continue;
                            }
                            $filetmp = $dir . '/' . $file;
                            if (is_dir($filetmp)) {
                                $mid = 1;
                            } else {
                                $mid = 0;
                            }
                            $filename = basename($file);
                            $file_extension = strtolower(substr(strrchr($filename, "."), 1));
                            DB_query("INSERT INTO {$_TABLES['mg_session_items']} (session_id,mid,aid,data,data2,data3,status)\n                                      VALUES('" . DB_escapeString($session_id) . "','" . DB_escapeString($mid) . "',{$new_aid},'" . DB_escapeString($filetmp) . "','" . DB_escapeString($purgefiles) . "','" . DB_escapeString($filename) . "',0)");
                            if (DB_error()) {
                                COM_errorLog("Media Gallery: Error - SQL error on inserting record into session_items table");
                            }
                        }
                    }
                } else {
                    $file_extension = strtolower(substr(strrchr($baseSrcFile, "."), 1));
                    if ($MG_albums[$album_id]->max_filesize != 0 && filesize($srcFile) > $MG_albums[$album_id]->max_filesize) {
                        COM_errorLog("MediaGallery: File " . $baseSrcFile . " exceeds maximum filesize for this album.");
                        $statusMsg = DB_escapeString(sprintf($LANG_MG02['upload_exceeds_max_filesize'], $baseSrcFile));
                        DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                        continue;
                    }
                    //This will set the Content-Type to the appropriate setting for the file
                    switch ($file_extension) {
                        case "exe":
                            $filetype = "application/octet-stream";
                            break;
                        case "zip":
                            $filetype = "application/zip";
                            break;
                        case "mp3":
                            $filetype = "audio/mpeg";
                            break;
                        case "mpg":
                            $filetype = "video/mpeg";
                            break;
                        case "avi":
                            $filetype = "video/x-msvideo";
                            break;
                        default:
                            $filetype = "application/force-download";
                    }
                    list($rc, $msg) = MG_getFile($srcFile, $baseSrcFile, $album_id, '', '', 0, $purgefiles, $filetype, 0, '', '', 0, 0, 0);
                    $statusMsg = DB_escapeString($baseSrcFile . " " . $msg);
                    DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                    MG_SortMedia($album_id);
                    @set_time_limit($time_limit + 20);
                }
                break;
            case 'galleryimport':
                require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-upload.php';
                require_once $_CONF['path'] . 'plugins/mediagallery/include/sort.php';
                $srcFile = $row['data'];
                // full path
                $album_id = $row['aid'];
                $purgefiles = 0;
                $baseSrcFile = $row['data2'];
                // basefilename
                $views = (int) $row['mid'];
                $caption = $row['data3'];
                $file_extension = strtolower(substr(strrchr($baseSrcFile, "."), 1));
                if ($MG_albums[$album_id]->max_filesize != 0 && filesize($srcFile) > $MG_albums[$album_id]->max_filesize) {
                    COM_errorLog("MediaGallery: File " . $baseSrcFile . " exceeds maximum filesize for this album.");
                    $statusMsg = DB_escapeString(sprintf($LANG_MG02['upload_exceeds_max_filesize'], $baseSrcFile));
                    DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                    continue;
                }
                //This will set the Content-Type to the appropriate setting for the file
                switch ($file_extension) {
                    case "exe":
                        $filetype = "application/octet-stream";
                        break;
                    case "zip":
                        $filetype = "application/zip";
                        break;
                    case "mp3":
                        $filetype = "audio/mpeg";
                        break;
                    case "mpg":
                        $filetype = "video/mpeg";
                        break;
                    case "avi":
                        $filetype = "video/x-msvideo";
                        break;
                    default:
                        $filetype = "application/force-download";
                }
                list($rc, $msg) = MG_getFile($srcFile, $baseSrcFile, $album_id, $caption, '', 0, $purgefiles, $filetype, 0, '', '', 0, 0, 0);
                DB_query("UPDATE {$_TABLES['mg_media']} SET media_views=" . (int) $views . ",media_user_id='" . $MG_albums[$album_id]->owner_id . "' WHERE media_id='" . $new_media_id . "'");
                $sql = "SELECT * FROM {$_TABLES['mg_session_items2']} WHERE id=" . $row['id'];
                $gcmtResult2 = DB_query($sql);
                $cRows = DB_numRows($gcmtResult2);
                for ($z = 0; $z < $cRows; $z++) {
                    $row2 = DB_fetchArray($gcmtResult2);
                    $row2['sid'] = $new_media_id;
                    $row2['type'] = 'mediagallery';
                    $cmtTitle = 'Gallery Comment';
                    $cmtText = $row2['data3'];
                    $cmtDate = (int) $row2['data4'];
                    $cmtIP = $row2['data5'];
                    $cmtUid = 1;
                    if ($row2['data1'] != '' && $row2['data1'] != 'everyone') {
                        $sql = "SELECT uid FROM {$_TABLES['users']} WHERE username='******'data1'])) . "'";
                        $uResult = DB_query($sql);
                        $uRows = DB_numRows($uResult);
                        if ($uRows > 0) {
                            $uRow = DB_fetchArray($uResult);
                            $cmtUid = $uRow['uid'];
                        }
                    }
                    $cmtDate = gmdate("Y-m-d H:i:s", $row2['data4']);
                    MG_saveComment($cmtTitle, $cmtText, $row2['sid'], 0, $row2['type'], 'plain', $cmtUid, $cmtDate, $cmtIP);
                }
                $comments = DB_count($_TABLES['comments'], array('sid', 'type'), array($new_media_id, 'mediagallery'));
                DB_change($_TABLES['mg_media'], 'media_comments', $comments, 'media_id', $new_media_id);
                DB_query("DELETE FROM {$_TABLES['mg_session_items2']} WHERE id=" . $row['id']);
                $statusMsg = DB_escapeString($baseSrcFile . " " . $msg);
                DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                MG_SortMedia($album_id);
                @set_time_limit($time_limit + 20);
                break;
            case 'coppermineimport':
                require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-upload.php';
                require_once $_CONF['path'] . 'plugins/mediagallery/include/sort.php';
                $srcFile = $row['data'];
                // full path
                $album_id = $row['aid'];
                $sdata = unserialize($row['mid']);
                $views = (int) $sdata[0];
                $uid = (int) $sdata[1];
                $purgefiles = 0;
                $file = basename($row['data']);
                $baseSrcFile = $file;
                $baseSrcFile = MG_replace_accents($baseSrcFile);
                $baseSrcFile = preg_replace("#[ ]#", "_", $baseSrcFile);
                // change spaces to underscore
                $baseSrcFile = preg_replace('#[^()\\.\\-,\\w]#', '_', $baseSrcFile);
                //only parenthesis, underscore, letters, numbers, comma, hyphen, period - others to underscore
                $baseSrcFile = preg_replace('#(_)+#', '_', $baseSrcFile);
                //eliminate duplicate underscore
                $caption = $row['data3'];
                $description = $row['data2'];
                $file_extension = strtolower(substr(strrchr($baseSrcFile, "."), 1));
                if ($MG_albums[$album_id]->max_filesize != 0 && filesize($srcFile) > $MG_albums[$album_id]->max_filesize) {
                    COM_errorLog("MediaGallery: File " . $baseSrcFile . " exceeds maximum filesize for this album.");
                    $statusMsg = DB_escapeString(sprintf($LANG_MG02['upload_exceeds_max_filesize'], $baseSrcFile));
                    DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('{$session_id}','{$statusMsg}')");
                    continue;
                }
                //This will set the Content-Type to the appropriate setting for the file
                switch ($file_extension) {
                    case "exe":
                        $filetype = "application/octet-stream";
                        break;
                    case "zip":
                        $filetype = "application/zip";
                        break;
                    case "mp3":
                        $filetype = "audio/mpeg";
                        break;
                    case "mpg":
                        $filetype = "video/mpeg";
                        break;
                    case "avi":
                        $filetype = "video/x-msvideo";
                        break;
                    default:
                        $filetype = "application/force-download";
                }
                list($rc, $msg) = MG_getFile($srcFile, $baseSrcFile, $album_id, $caption, $description, 0, $purgefiles, $filetype, 0, '', '', 0, 0, 0);
                if ($rc == true) {
                    $sql = "SELECT uid FROM {$_TABLES['users']} WHERE username='******'";
                    $userResult = DB_query($sql);
                    $userRows = DB_numRows($userResult);
                    if ($userRows > 0) {
                        $userRow = DB_fetchArray($userResult);
                        $glUid = $userRow['uid'];
                    } else {
                        $glUid = 1;
                    }
                    DB_query("UPDATE {$_TABLES['mg_media']} SET media_views=" . (int) $views . ",media_user_id='" . $glUid . "' WHERE media_id='" . $new_media_id . "'");
                    $sql = "SELECT * FROM {$_TABLES['mg_session_items2']} WHERE id=" . $row['id'];
                    $gcmtResult2 = DB_query($sql);
                    $cRows = DB_numRows($gcmtResult2);
                    for ($z = 0; $z < $cRows; $z++) {
                        $row2 = DB_fetchArray($gcmtResult2);
                        $row2['sid'] = $new_media_id;
                        $row2['type'] = 'mediagallery';
                        $cmtTitle = 'Coppermine Comment';
                        $cmtText = $row2['data3'];
                        $cmtDate = (int) $row2['data4'];
                        $cmtIP = $row2['data5'];
                        $cmtUid = 1;
                        if ($row2['data1'] != '' && $row2['data1'] != 'everyone') {
                            $sql = "SELECT uid FROM {$_TABLES['users']} WHERE username='******'data1']))) . "'";
                            $uResult = DB_query($sql);
                            $uRows = DB_numRows($uResult);
                            if ($uRows > 0) {
                                $uRow = DB_fetchArray($uResult);
                                $cmtUid = $uRow['uid'];
                            }
                        }
                        $cmtDate = $row2['data4'];
                        // gmdate("Y-m-d H:i:s", $row2['data4']);
                        MG_saveComment($cmtTitle, $cmtText, $row2['sid'], 0, $row2['type'], 'plain', $cmtUid, $cmtDate, $cmtIP);
                    }
                    $comments = DB_count($_TABLES['comments'], array('sid', 'type'), array($new_media_id, 'mediagallery'));
                    DB_change($_TABLES['mg_media'], 'media_comments', $comments, 'media_id', $new_media_id);
                }
                DB_query("DELETE FROM {$_TABLES['mg_session_items2']} WHERE id=" . $row['id']);
                $statusMsg = DB_escapeString($baseSrcFile . " " . $msg);
                DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                MG_SortMedia($album_id);
                @set_time_limit($time_limit + 20);
                break;
            case 'gallery2import':
                require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-upload.php';
                require_once $_CONF['path'] . 'plugins/mediagallery/include/sort.php';
                $srcFile = $row['data'];
                // full path
                $album_id = $row['aid'];
                $purgefiles = 0;
                $baseSrcFile = $row['data2'];
                // basefilename
                $views = 0;
                // $row['mid'];
                $caption = $row['data3'];
                $file_extension = strtolower(substr(strrchr($baseSrcFile, "."), 1));
                if ($MG_albums[$album_id]->max_filesize != 0 && filesize($srcFile) > $MG_albums[$album_id]->max_filesize) {
                    COM_errorLog("MediaGallery: File " . $baseSrcFile . " exceeds maximum filesize for this album.");
                    $statusMsg = DB_escapeString(sprintf($LANG_MG02['upload_exceeds_max_filesize'], $baseSrcFile));
                    DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('{$session_id}','{$statusMsg}')");
                    continue;
                }
                //This will set the Content-Type to the appropriate setting for the file
                switch ($file_extension) {
                    case "exe":
                        $filetype = "application/octet-stream";
                        break;
                    case "zip":
                        $filetype = "application/zip";
                        break;
                    case "mp3":
                        $filetype = "audio/mpeg";
                        break;
                    case "mpg":
                        $filetype = "video/mpeg";
                        break;
                    case "avi":
                        $filetype = "video/x-msvideo";
                        break;
                    default:
                        $filetype = "application/force-download";
                }
                list($rc, $msg) = MG_getFile($srcFile, $baseSrcFile, $album_id, $caption, '', 0, $purgefiles, $filetype, 0, '', '', 0, 0, 0);
                DB_query("UPDATE {$_TABLES['mg_media']} SET media_views=" . (int) $views . " WHERE media_id='" . $new_media_id . "'");
                $statusMsg = DB_escapeString($baseSrcFile . " " . $msg);
                DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                MG_SortMedia($album_id);
                @set_time_limit($time_limit + 20);
                break;
            case '4imagesimport':
                require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-upload.php';
                require_once $_CONF['path'] . 'plugins/mediagallery/include/sort.php';
                $srcFile = $row['data'];
                // full path
                $album_id = $row['aid'];
                $purgefiles = 0;
                $title = $row['data2'];
                $baseSrcFile = basename($row['data']);
                $views = (int) $row['mid'];
                $caption = $row['data3'];
                $file_extension = strtolower(substr(strrchr($baseSrcFile, "."), 1));
                if ($MG_albums[$album_id]->max_filesize != 0 && filesize($srcFile) > $MG_albums[$album_id]->max_filesize) {
                    COM_errorLog("MediaGallery: File " . $baseSrcFile . " exceeds maximum filesize for this album.");
                    $statusMsg = DB_escapeString(sprintf($LANG_MG02['upload_exceeds_max_filesize'], $baseSrcFile));
                    DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                    continue;
                }
                //This will set the Content-Type to the appropriate setting for the file
                switch ($file_extension) {
                    case "exe":
                        $filetype = "application/octet-stream";
                        break;
                    case "zip":
                        $filetype = "application/zip";
                        break;
                    case "mp3":
                        $filetype = "audio/mpeg";
                        break;
                    case "mpg":
                        $filetype = "video/mpeg";
                        break;
                    case "avi":
                        $filetype = "video/x-msvideo";
                        break;
                    default:
                        $filetype = "application/force-download";
                }
                list($rc, $msg) = MG_getFile($srcFile, $baseSrcFile, $album_id, $title, $caption, 0, $purgefiles, $filetype, 0, '', '', 0, 0, 0);
                DB_query("UPDATE {$_TABLES['mg_media']} SET media_views=" . (int) $views . " WHERE media_id='" . DB_escapeString($new_media_id) . "'");
                $statusMsg = DB_escapeString($baseSrcFile . " " . $msg);
                DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                MG_SortMedia($album_id);
                @set_time_limit($time_limit + 20);
                break;
            case 'inmemoriamimport':
                require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-upload.php';
                require_once $_CONF['path'] . 'plugins/mediagallery/include/sort.php';
                global $INM_TABLES;
                $album_id = $row['aid'];
                $inm_mid = $row['mid'];
                $album_path = $row['data'];
                $inmResult = DB_query("SELECT * FROM {$INM_TABLES['media']} WHERE mid='" . DB_escapeString($inm_mid) . "'");
                $inmNumRows = DB_numRows($inmResult);
                if ($inmNumRows > 0) {
                    $M = DB_fetchArray($inmResult);
                    $srcFile = $album_path . $M['filename'];
                    $baseSrcFile = $M['filename'];
                    $views = (int) $M['hits'];
                    $caption = $M['caption'];
                    $keywords = $M['keywords'];
                    $date = $M['date'];
                    $title = $M['title'];
                    $purgefiles = 0;
                    $file_extension = strtolower(substr(strrchr($baseSrcFile, "."), 1));
                    if ($MG_albums[$album_id]->max_filesize != 0 && filesize($srcFile) > $MG_albums[$album_id]->max_filesize) {
                        COM_errorLog("MediaGallery: File " . $baseSrcFile . " exceeds maximum filesize for this album.");
                        $statusMsg = DB_escapeString(sprintf($LANG_MG02['upload_exceeds_max_filesize'], $baseSrcFile));
                        DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                        continue;
                    }
                    //This will set the Content-Type to the appropriate setting for the file
                    switch ($file_extension) {
                        case "exe":
                            $filetype = "application/octet-stream";
                            break;
                        case "zip":
                            $filetype = "application/zip";
                            break;
                        case "mp3":
                            $filetype = "audio/mpeg";
                            break;
                        case "mpg":
                            $filetype = "video/mpeg";
                            break;
                        case "avi":
                            $filetype = "video/x-msvideo";
                            break;
                        default:
                            $filetype = "application/force-download";
                    }
                    list($rc, $msg) = MG_getFile($srcFile, $baseSrcFile, $album_id, $title, $caption, 0, $purgefiles, $filetype, 0, '', $keywords, 0, 0, 0);
                    DB_query("UPDATE {$_TABLES['mg_media']} SET media_views=" . (int) $views . " WHERE media_id='" . DB_escapeString($new_media_id) . "'");
                    $statusMsg = DB_escapeString($baseSrcFile . " " . $msg);
                    DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                    MG_SortMedia($album_id);
                    @set_time_limit($time_limit + 20);
                    $sql = "SELECT * FROM {$_TABLES['comments']} WHERE sid='" . $row['mid'] . "' AND type='inmemoriam'";
                    $inmResult2 = DB_query($sql);
                    $cRows = DB_numRows($inmResult2);
                    for ($z = 0; $z < $cRows; $z++) {
                        $row2 = DB_fetchArray($inmResult2);
                        $row2['sid'] = $new_media_id;
                        $row2['type'] = 'mediagallery';
                        MG_saveComment($row2['title'], $row2['comment'], $row2['sid'], 0, $row2['type'], 'plain', $row2['uid'], $row2['date']);
                        $comments = DB_count($_TABLES['comments'], array('sid', 'type'), array($new_media_id, 'mediagallery'));
                        DB_change($_TABLES['mg_media'], 'media_comments', $comments, 'media_id', $new_media_id);
                    }
                    // now do the rating...
                    if ($row['totalrating'] > 0) {
                        $rating = $row['totalrating'] / $row['numvotes'];
                        $new_rating = sprintf("%.2f", $rating);
                        $votes = $row['numvotes'];
                        $sql = "UPDATE {$_TABLES['mg_media']} SET media_votes = {$votes}, media_rating = '{$rating}'\n                                        WHERE media_id='" . DB_escapeString($new_media_id) . "'";
                        DB_query($sql);
                    }
                }
                break;
            case 'geekaryimport':
                require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-upload.php';
                require_once $_CONF['path'] . 'plugins/mediagallery/include/sort.php';
                $album_id = $row['aid'];
                $inm_mid = $row['mid'];
                $gk_album_id = $row['data2'];
                $album_path = $_GKCONST['full_geekage'];
                $inmResult = DB_query("SELECT * FROM {$_TABLES['geekary_images']} WHERE id='" . DB_escapeString($inm_mid) . "'");
                $inmNumRows = DB_numRows($inmResult);
                if ($inmNumRows > 0) {
                    $M = DB_fetchArray($inmResult);
                    $srcFile = $album_path . '/' . $gk_album_id . '/' . $M['file_name'];
                    $baseSrcFile = $M['file_name'];
                    $views = (int) $M['hits'];
                    $caption = $M['description'];
                    $title = $M['name'];
                    $purgefiles = 0;
                    $file_extension = strtolower(substr(strrchr($baseSrcFile, "."), 1));
                    if ($MG_albums[$album_id]->max_filesize != 0 && filesize($srcFile) > $MG_albums[$album_id]->max_filesize) {
                        COM_errorLog("MediaGallery: File " . $baseSrcFile . " exceeds maximum filesize for this album.");
                        $statusMsg = DB_escapeString(sprintf($LANG_MG02['upload_exceeds_max_filesize'], $baseSrcFile));
                        DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                        continue;
                    }
                    //This will set the Content-Type to the appropriate setting for the file
                    switch ($file_extension) {
                        case "exe":
                            $filetype = "application/octet-stream";
                            break;
                        case "zip":
                            $filetype = "application/zip";
                            break;
                        case "mp3":
                            $filetype = "audio/mpeg";
                            break;
                        case "mpg":
                            $filetype = "video/mpeg";
                            break;
                        case "avi":
                            $filetype = "video/x-msvideo";
                            break;
                        default:
                            $filetype = "application/force-download";
                    }
                    list($rc, $msg) = MG_getFile($srcFile, $baseSrcFile, $album_id, $title, $caption, 0, $purgefiles, $filetype, 0, '', $keywords, 0, 0, 0);
                    DB_query("UPDATE {$_TABLES['mg_media']} SET media_views=" . (int) $views . " WHERE media_id='" . DB_escapeString($new_media_id) . "'");
                    $statusMsg = DB_escapeString($baseSrcFile . " " . $msg);
                    DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                    MG_SortMedia($album_id);
                    @set_time_limit($time_limit + 20);
                }
                break;
            case 'gl_storyimport':
                require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-upload.php';
                require_once $_CONF['path'] . 'plugins/mediagallery/include/sort.php';
                require_once $_CONF['path_system'] . 'lib-story.php';
                require_once $_CONF['path_system'] . 'classes/story.class.php';
                $album_id = $row['aid'];
                $srcFile = $row['data'];
                $baseSrcFile = basename($row['data']);
                $sid = $row['data3'];
                $purgefiles = 0;
                $caption = '';
                $imageNumber = $row['data2'];
                $file_extension = strtolower(substr(strrchr($baseSrcFile, "."), 1));
                if ($MG_albums[$album_id]->max_filesize != 0 && filesize($srcFile) > $MG_albums[$album_id]->max_filesize) {
                    COM_errorLog("MediaGallery: File " . $baseSrcFile . " exceeds maximum filesize for this album.");
                    $statusMsg = DB_escapeString(sprintf($LANG_MG02['upload_exceeds_max_filesize'], $baseSrcFile));
                    DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                    continue;
                }
                //This will set the Content-Type to the appropriate setting for the file
                switch ($file_extension) {
                    case "exe":
                        $filetype = "application/octet-stream";
                        break;
                    case "zip":
                        $filetype = "application/zip";
                        break;
                    case "mp3":
                        $filetype = "audio/mpeg";
                        break;
                    case "mpg":
                        $filetype = "video/mpeg";
                        break;
                    case "avi":
                        $filetype = "video/x-msvideo";
                        break;
                    default:
                        $filetype = "application/force-download";
                }
                list($rc, $msg) = MG_getFile($srcFile, $baseSrcFile, $album_id, $caption, '', 0, $purgefiles, $filetype, 0, '', $mid, 0, 0, 0);
                $mid = $new_media_id;
                $statusMsg = DB_escapeString($baseSrcFile . " " . $msg);
                DB_query("INSERT INTO {$_TABLES['mg_session_log']} (session_id,session_log) VALUES ('" . DB_escapeString($session_id) . "','{$statusMsg}')");
                MG_SortMedia($album_id);
                // now update the tag in the article...
                $sResult = DB_query("SELECT * FROM {$_TABLES['stories']} WHERE sid='" . DB_escapeString($sid) . "'");
                $howmany = DB_numRows($sResult);
                $S = DB_fetchArray($sResult);
                $story = new Story();
                $story->loadFromArray($S);
                $intro = $story->replaceImages($S['introtext']);
                $body = $story->replaceImages($S['bodytext']);
                $atag = $session['session_var0'];
                $align = $session['session_var1'];
                $delete = $session['session_var2'];
                $norm = '[image' . $imageNumber . ']';
                $left = '[image' . $imageNumber . '_left]';
                $right = '[image' . $imageNumber . '_right]';
                $mg_norm = '[' . $atag . ':' . $mid . ' align:' . $align . ']';
                $mg_left = '[' . $atag . ':' . $mid . ' align:left]';
                $mg_right = '[' . $atag . ':' . $mid . ' align:right]';
                $intro = str_replace($norm, $mg_norm, $intro);
                $body = str_replace($norm, $mg_norm, $body);
                $intro = str_replace($left, $mg_left, $intro);
                $body = str_replace($left, $mg_left, $body);
                $intro = str_replace($right, $mg_right, $intro);
                $body = str_replace($right, $mg_right, $body);
                $norm = '[unscaled' . $imageNumber . ']';
                $left = '[unscaled' . $imageNumber . '_left]';
                $right = '[unscaled' . $imageNumber . '_right]';
                $mg_norm = '[oimage:' . $mid . ' align:' . $align . ']';
                $mg_left = '[oimage:' . $mid . ' align:left]';
                $mg_right = '[oimage:' . $mid . ' align:right]';
                $intro = str_replace($norm, $mg_norm, $intro);
                $body = str_replace($norm, $mg_norm, $body);
                $intro = str_replace($left, $mg_left, $intro);
                $body = str_replace($left, $mg_left, $body);
                $intro = str_replace($right, $mg_right, $intro);
                $body = str_replace($right, $mg_right, $body);
                DB_query("UPDATE {$_TABLES['stories']} SET introtext='" . DB_escapeString($intro) . "', bodytext='" . DB_escapeString($body) . "' WHERE sid='" . $sid . "'");
                if ($delete == 1) {
                    $sql = "DELETE FROM {$_TABLES['article_images']} WHERE ai_sid='" . DB_escapeString($sid) . "'";
                    DB_query($sql);
                }
                @set_time_limit($time_limit + 20);
                break;
            default:
                // no valid action defined...
                break;
        }
        DB_query("UPDATE {$_TABLES['mg_session_items']} SET status=1 WHERE id=" . $row['id']);
        // calculate time for each loop iteration
        $temp_time[$num_rows] = time() - $start_temp_time;
        // get the max
        $timer_time = max($temp_time);
        $num_rows++;
        // check if timer is about to expire
        if (time() - $cycle_start_time >= $time_limit - $timer_time) {
            $timer_expired_secs = time() - $cycle_start_time;
            $timer_expired = true;
        }
    }
    // end the timer
    $cycle_end_time = time();
    // find how much time the last cycle took
    $last_cycle_time = $cycle_end_time - $cycle_start_time;
    $T = new Template(MG_getTemplatePath(0));
    $T->set_file('batch', 'batch_progress.thtml');
    $processing_messages = '<span style="font-weight:bold;">';
    $processing_messages .= $timer_expired ? sprintf($LANG_MG01['timer_expired'], $timer_expired_secs) : '';
    $processing_messages .= '</span>';
    $sql = "SELECT COUNT(*) as processed FROM {$_TABLES['mg_session_items']} WHERE session_id='" . $session_id . "' AND status=1";
    $result = DB_query($sql);
    $row = DB_fetchArray($result);
    $session_items_processed = $row['processed'];
    $sql = "SELECT COUNT(*) as processing FROM {$_TABLES['mg_session_items']} WHERE session_id='" . $session_id . "'";
    $result = DB_query($sql);
    $row = DB_fetchArray($result);
    $session_items_processing = $row['processing'];
    $items_remaining = $session_items_processing - $session_items_processed;
    if ($items_remaining > 0) {
        if ($item_limit == 0) {
            $processing_messages .= '<b>' . $LANG_MG01['begin_processing'] . '</b>';
            $item_limit = $_MG_CONF['def_item_limit'];
        } else {
            $processing_messages .= sprintf('<b>' . $LANG_MG01['processing_next_items'] . '</b>', $item_limit);
        }
        $form_action = $_MG_CONF['site_url'] . '/batch.php?mode=continue&amp;sid=' . $session_id . '&amp;refresh=' . $refresh_rate . '&amp;limit=' . $item_limit;
        $next_button = $LANG_MG01['next'];
        // create the meta tag for refresh
        $T->set_var(array("META" => '<meta http-equiv="refresh" content="' . $refresh_rate . ';url=' . $form_action . '"/>'));
    } else {
        if ($item_limit == 0) {
            echo COM_refresh($session['session_origin']);
            exit;
        }
        $next_button = $LANG_MG01['finished'];
        $processing_messages .= '<b>' . $LANG_MG01['all_done'] . '</b><br /><br />';
        $T->set_var(array("META" => ''));
        $refresh_rate = -1;
        $form_action = $session['session_origin'];
        $result = DB_query("SELECT * FROM {$_TABLES['mg_session_log']} WHERE session_id='" . $session_id . "'");
        $nRows = DB_numRows($result);
        for ($i = 0; $i < $nRows; $i++) {
            $row = DB_fetchArray($result);
            $processing_messages .= $row['session_log'] . '<br />';
        }
        MG_endSession($session_id);
    }
    $session_percent = $session_items_processed / $session_items_processing * 100;
    $session_time = $cycle_end_time - $session['session_start_time'];
    // create the percent boxes
    $pct_box = _mg_create_percent_box('session', _mg_create_percent_color($session_percent), $session_percent);
    $T->set_var(array('L_BATCH_PROCESS' => $label, 'L_BATCH' => $LANG_MG01['batch_processor'], 'L_NEXT' => $next_button, 'L_PROCESSING' => $LANG_MG01['processing'], 'L_CANCEL' => $LANG_MG01['cancel'], 'L_PROCESSING_DETAILS' => $LANG_MG01['processing_details'], 'L_STATUS' => $LANG_MG01['status'], 'L_TOTAL_ITEMS' => $LANG_MG01['total_items'], 'L_ITEMS_PROCESSED' => $LANG_MG01['processed_items'], 'L_ITEMS_REMAINING' => $LANG_MG01['items_remaining'], 'L_POSTS_LAST_CYCLE' => $LANG_MG01['items_last_cycle'], 'L_TIME_LIMIT' => $LANG_MG01['time_limit'], 'L_REFRESH_RATE' => $LANG_MG01['refresh_rate'], 'L_ITEM_RATE' => $LANG_MG01['item_rate'], 'L_ACTIVE_PARAMETERS' => $LANG_MG01['batch_parameters'], 'L_ITEMS_PER_CYCLE' => $LANG_MG01['items_per_cycle'], 'TOTAL_ITEMS' => $session_items_processing, 'ITEMS_PROCESSED' => $session_items_processed, 'ITEMS_REMAINING' => $session_items_processing - $session_items_processed, 'ITEM_RATE' => sprintf($LANG_MG01['seconds_per_item'], round(@($last_cycle_time / $num_rows))), 'PROCESSING_MESSAGES' => $processing_messages, 'SESSION_PERCENT_BOX' => $pct_box, 'SESSION_PERCENT' => sprintf($LANG_MG01['percent_completed'], round($session_percent, 2)), 'POST_LIMIT' => $num_rows, 'ITEM_LIMIT' => $item_limit, 'TIME_LIMIT' => $time_limit, 'REFRESH_RATE' => $refresh_rate, 'PERCENT_COMPLETE' => $session_percent, 'S_BATCH_ACTION' => $form_action));
    $T->parse('output', 'batch');
    $retval .= $T->finish($T->get_var('output'));
    return $retval;
}
Esempio n. 11
0
function MG_albumRebuildThumbs($aid, $actionURL)
{
    global $MG_albums, $_CONF, $_TABLES, $_MG_CONF, $LANG_MG01;
    if ($MG_albums[$aid]->access != 3) {
        echo COM_refresh($_MG_CONF['site_url'] . '/album.php?aid=' . $aid);
    }
    require_once $_CONF['path'] . 'plugins/mediagallery/include/lib-upload.php';
    $sql = "SELECT * FROM {$_TABLES['mg_media_albums']} as ma INNER JOIN " . $_TABLES['mg_media'] . " as m " . " ON ma.media_id=m.media_id WHERE ma.album_id=" . intval($aid) . " AND m.media_type=0";
    $result = DB_query($sql);
    $nRows = DB_numRows($result);
    $session_description = sprintf($LANG_MG01['batch_rebuild_thumbs'], $MG_albums[$aid]->title);
    $session_id = MG_beginSession('rebuildthumb', $_MG_CONF['site_url'] . '/album.php?aid=' . $aid, $session_description);
    for ($x = 0; $x < $nRows; $x++) {
        $row = DB_fetchArray($result);
        $srcImage = '';
        $imageDisplay = '';
        if ($_MG_CONF['discard_original'] == 1) {
            foreach ($_MG_CONF['validExtensions'] as $ext) {
                if (file_exists($_MG_CONF['path_mediaobjects'] . 'disp/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext)) {
                    $srcImage = $_MG_CONF['path_mediaobjects'] . 'disp/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext;
                    $imageDisplay = $_MG_CONF['path_mediaobjects'] . 'tn/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext;
                    $row['mime_type'] = '';
                    break;
                }
            }
        } else {
            foreach ($_MG_CONF['validExtensions'] as $ext) {
                if (file_exists($_MG_CONF['path_mediaobjects'] . 'orig/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext)) {
                    $srcImage = $_MG_CONF['path_mediaobjects'] . 'orig/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext;
                    $imageDisplay = $_MG_CONF['path_mediaobjects'] . 'tn/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext;
                    break;
                }
            }
        }
        if ($srcImage == '' || !file_exists($srcImage)) {
            foreach ($_MG_CONF['validExtensions'] as $ext) {
                if (file_exists($_MG_CONF['path_mediaobjects'] . 'disp/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext)) {
                    $srcImage = $_MG_CONF['path_mediaobjects'] . 'disp/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext;
                    $imageDisplay = $_MG_CONF['path_mediaobjects'] . 'tn/' . $row['media_filename'][0] . '/' . $row['media_filename'] . $ext;
                    $row['mime_type'] = '';
                    $row['media_mime_ext'] = $ext;
                    break;
                }
            }
            if (!file_exists($srcImage)) {
                continue;
            }
        }
        $mimeExt = $row['media_mime_ext'];
        $mimeType = $row['mime_type'];
        DB_query("INSERT INTO {$_TABLES['mg_session_items']} (session_id,mid,aid,data,data2,data3,status) VALUES('{$session_id}','{$mimeType}',{$aid},'" . $srcImage . "','" . $imageDisplay . "','" . $mimeExt . "',0)");
    }
    $display = MG_siteHeader('album_rebuild_thumbs');
    $display .= MG_continueSession($session_id, 0, 30);
    $display .= MG_siteFooter();
    echo $display;
    exit;
}
Esempio n. 12
0
function MG_processDir($dir, $album_id, $purgefiles, $recurse)
{
    global $MG_albums, $_FILES, $_CONF, $_MG_CONF, $LANG_MG02, $_POST;
    if (!@is_dir($dir)) {
        $display = MG_siteHeader();
        $display .= MG_errorHandler($LANG_MG02['invalid_directory']);
        $display .= MG_siteFooter();
        echo $display;
        exit;
    }
    if (!($dh = @opendir($dir))) {
        $display = MG_siteHeader();
        $display .= MG_errorHandler($LANG_MG02['directory_error']);
        $display .= MG_siteFooter();
        echo $display;
        exit;
    }
    while (($file = readdir($dh)) != false) {
        if ($file == '..' || $file == '.') {
            continue;
        }
        set_time_limit(60);
        $filename = $file;
        if (PHP_OS == "WINNT") {
            $filetmp = $dir . "\\" . $file;
        } else {
            $filetmp = $dir . '/' . $file;
        }
        if (is_dir($filetmp)) {
            if ($recurse) {
                $statusMsg .= MG_processDir($filetmp, $album_id, $purgefiles, $recurse);
            }
        } else {
            $filename = basename($file);
            $file_extension = strtolower(substr(strrchr($filename, "."), 1));
            if ($MG_albums[$album_id]->max_filesize != 0 && filesize($filetmp) > $MG_albums[$album_id]->max_filesize) {
                COM_errorLog("MG Upload: File " . $file . " exceeds maximum filesize for this album.");
                $statusMsg = sprintf($LANG_MG02['upload_exceeds_max_filesize'] . '<br/>', $file);
                continue;
            }
            //This will set the Content-Type to the appropriate setting for the file
            switch ($file_extension) {
                case "exe":
                    $filetype = "application/octet-stream";
                    break;
                case "zip":
                    $filetype = "application/zip";
                    break;
                case "mp3":
                    $filetype = "audio/mpeg";
                    break;
                case "mpg":
                    $filetype = "video/mpeg";
                    break;
                case "avi":
                    $filetype = "video/x-msvideo";
                    break;
                default:
                    $filetype = "application/force-download";
            }
            list($rc, $msg) = MG_getFile($filetmp, $file, $album_id, '', '', 0, $purgefiles, $filetype, 0, '', '', 0, 0, 0);
            $statusMsg .= $file . " " . $msg . "<br/>";
        }
    }
    closedir($dh);
    return $statusMsg;
}
Esempio n. 13
0
/**
* Global album attribute editor
*
* @return   string              HTML
*
**/
function MG_globalAlbumAttributeEditor($adminMenu = 0)
{
    global $_CONF, $_TABLES, $_MG_CONF, $LANG_MG00, $LANG_MG01, $REMOTE_ADDR;
    global $MG_albums, $album_jumpbox;
    $retval = '';
    $valid_albums = 0;
    if (!SEC_hasRights('mediagallery.admin')) {
        $display .= COM_startBlock('', '', COM_getBlockTemplate('_admin_block', 'header'));
        $T = new Template($_MG_CONF['template_path']);
        $T->set_file('admin', 'error.thtml');
        $T->set_var('site_url', $_CONF['site_url']);
        $T->set_var('site_admin_url', $_CONF['site_admin_url']);
        $T->set_var('errormessage', $LANG_MG00['access_denied_msg']);
        $T->parse('output', 'admin');
        $display .= $T->finish($T->get_var('output'));
        $display .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
        $display .= MG_siteFooter();
        return $display;
    }
    $T = new Template(MG_getTemplatePath(0));
    $T->set_var('site_url', $_CONF['site_url']);
    $T->set_var('site_admin_url', $_CONF['site_admin_url']);
    $A['enable_slideshow'] = 0;
    $A['enable_random'] = 0;
    $A['enable_shutterfly'] = 0;
    $A['enable_views'] = 0;
    $A['enable_keywords'] = 0;
    $A['enable_sort'] = 0;
    $A['enable_rating'] = 0;
    $A['albums_first'] = 0;
    $A['tn_size'] = 1;
    $A['display_rows'] = 3;
    $A['display_columns'] = 3;
    $A['full_display'] = 0;
    $A['enable_album_views'] = 0;
    $A['allow_download'] = 0;
    $A['display_album_desc'] = 0;
    $A['filename_title'] = 0;
    $A['podcast'] = 0;
    $A['mp3ribbon'] = 0;
    $A['rsschildren'] = 1;
    $A['skin'] = '';
    $retval .= COM_startBlock($LANG_MG01['global_attr_editor'], '', COM_getBlockTemplate('_admin_block', 'header'));
    $T->set_file(array('admin' => 'global_album_attr.thtml'));
    // build exif select box...
    $exif_select = '<select name="enable_exif">';
    $exif_select .= '<option value="0">' . $LANG_MG01['disable_exif'] . '</option>';
    $exif_select .= '<option value="1">' . $LANG_MG01['display_below_media'] . '</option>';
    $exif_select .= '<option value="2">' . $LANG_MG01['display_in_popup'] . '</option>';
    $exif_select .= '<option value="3">' . $LANG_MG01['both'] . '</option>';
    $exif_select .= '</select>';
    $full_select = '<select name="full_display">';
    $full_select .= '<option value="0"' . ($A['full_display'] == 0 ? 'selected="selected"' : '') . '>' . $LANG_MG01['always'] . '</option>';
    $full_select .= '<option value="1"' . ($A['full_display'] == 1 ? 'selected="selected"' : '') . '>' . $LANG_MG01['members_only'] . '</option>';
    $full_select .= '<option value="2"' . ($A['full_display'] == 2 ? 'selected="selected"' : '') . '>' . $LANG_MG01['disabled'] . '</option>';
    $full_select .= '</select>';
    $ranking_select = '<select name="enable_rating">';
    $ranking_select .= '<option value="0"' . ($A['enable_rating'] == 0 ? 'selected="selected"' : '') . '>' . $LANG_MG01['disabled'] . '</option>';
    $ranking_select .= '<option value="1"' . ($A['enable_rating'] == 1 ? 'selected="selected"' : '') . '>' . $LANG_MG01['members_only'] . '</option>';
    $ranking_select .= '<option value="2"' . ($A['enable_rating'] == 2 ? 'selected="selected"' : '') . '>' . $LANG_MG01['always'] . '</option>';
    $ranking_select .= '</select>';
    $podcast_select = '<input type="checkbox" name="podcast" value="1" ' . ($A['podcast'] ? ' checked="checked"' : '') . '/>';
    $mp3ribbon_select = '<input type="checkbox" name="mp3ribbon" value="1" ' . ($A['mp3ribbon'] ? ' checked="checked"' : '') . '/>';
    $rsschildren_select = '<input type="checkbox" name="rsschildren" value="1" ' . ($A['rsschildren'] ? ' checked="checked"' : '') . '/>';
    $filename_title_select = '<input type="checkbox" name="filename_title" value="1" />';
    $comment_select = '<input type="checkbox" name="enable_comments" value="1" />';
    $ss_select = '<select name="enable_slideshow">';
    $ss_select .= '<option value="0">' . $LANG_MG01['disabled'] . '</option>';
    $ss_select .= '<option value="1">' . $LANG_MG01['js_slideshow'] . '</option>';
    $ss_select .= '<option value="2">' . $LANG_MG01['lightbox'] . '</option>';
    $ss_select .= '</select>';
    $ri_select = '<input type="checkbox" name="enable_random" value="1" />';
    $sf_select = '<input type="checkbox" name="enable_shutterfly" value="1" />';
    $views_select = '<input type="checkbox" name="enable_views" value="1" />';
    $keywords_select = '<input type="checkbox" name="enable_keywords" value="1" />';
    $sort_select = '<input type="checkbox" name="enable_sort" value="1" />';
    $afirst_select = '<input type="checkbox" name="albums_first" value="1" />';
    $album_views_select = '<input type="checkbox" name="enable_album_views" value="1" />';
    $tn_size_select = '<select name="tn_size">';
    $tn_size_select .= '<option value="0">' . $LANG_MG01['small'] . '</option>';
    $tn_size_select .= '<option value="1">' . $LANG_MG01['medium'] . '</option>';
    $tn_size_select .= '<option value="2">' . $LANG_MG01['large'] . '</option>';
    $tn_size_select .= '<option value="3">' . $LANG_MG01['custom'] . '</option>';
    $tn_size_select .= '<option value="4">' . $LANG_MG01['square'] . '</option>';
    $tn_size_select .= '</select>';
    $tnheight_input = '<input type="text" size="3" name="tnheight" value="" />';
    $tnwidth_input = '<input type="text" size="3" name="tnwidth" value="" />';
    $display_image_size_select = '<select name="display_image_size">';
    $display_image_size_select .= '<option value="0">' . $LANG_MG01['size_500x375'] . '</option>';
    $display_image_size_select .= '<option value="1">' . $LANG_MG01['size_600x450'] . '</option>';
    $display_image_size_select .= '<option value="2">' . $LANG_MG01['size_620x465'] . '</option>';
    $display_image_size_select .= '<option value="3">' . $LANG_MG01['size_720x540'] . '</option>';
    $display_image_size_select .= '<option value="4">' . $LANG_MG01['size_800x600'] . '</option>';
    $display_image_size_select .= '<option value="5">' . $LANG_MG01['size_912x684'] . '</option>';
    $display_image_size_select .= '<option value="6">' . $LANG_MG01['size_1024x768'] . '</option>';
    $display_image_size_select .= '<option value="7">' . $LANG_MG01['size_1152x864'] . '</option>';
    $display_image_size_select .= '<option value="8">' . $LANG_MG01['size_1280x1024'] . '</option>';
    $display_image_size_select .= '<option value="9">' . $LANG_MG01['size_custom'] . $_MG_CONF['custom_image_width'] . 'x' . $_MG_CONF['custom_image_height'] . '</option>';
    $display_image_size_select .= '</select>';
    $max_image_height_input = '<input type="text" size="4" name="max_image_height" value="0"' . '/>';
    $max_image_width_input = '<input type="text" size="4" name="max_image_width" value="0" />';
    $max_filesize_input = '<input type="text" size="10" name="max_filesize" value="0" />';
    $rows_input = '<input type="text" size="3" name="display_rows" value="' . $_MG_CONF['display_rows'] . '" />';
    $columns_input = '<input type="text" size="3" name="display_columns" value="' . $_MG_CONF['display_columns'] . '" />';
    $playback_type = '<select name="playback_type">';
    $playback_type .= '<option value="0">' . $LANG_MG01['play_in_popup'] . '</option>';
    $playback_type .= '<option value="1">' . $LANG_MG01['download_to_local'] . '</option>';
    $playback_type .= '<option value="2">' . $LANG_MG01['play_inline'] . '</option>';
    $playback_type .= '<option value="3">' . $LANG_MG01['use_mms'] . '</option>';
    $playback_type .= '</select>';
    $rss_select = '<input type="checkbox" name="enable_rss" value="1" />';
    $display_album_desc_select = '<input type="checkbox" name="display_album_desc" value="1" />';
    $postcard_select = '<select name="enable_postcard">';
    $postcard_select .= '<option value="0">' . $LANG_MG01['disabled'] . '</option>';
    $postcard_select .= '<option value="1">' . $LANG_MG01['members_only'] . '</option>';
    $postcard_select .= '<option value="2">' . $LANG_MG01['all_users'] . '</option>';
    $postcard_select .= '</select>';
    $allow_download_select = '<input type="checkbox" name="allow_download" value="1" />';
    // build album list for starting point...
    $album_jumpbox = '<select name="startaid">';
    $album_jumpbox .= '<option value="0">------</option>';
    $valid_albums += $MG_albums[0]->buildJumpBox(0, 3);
    $album_jumpbox .= '</select>';
    $frames = new mgFrame();
    $skins = array();
    $skins = $frames->getFrames();
    $skin_select = '<select name="skin">';
    $askin_select = '<select name="askin">';
    $dskin_select = '<select name="dskin">';
    for ($i = 0; $i < count($skins); $i++) {
        $skin_select .= '<option value="' . $skins[$i]['dir'] . '"' . ($_MG_CONF['ad_image_skin'] == $skins[$i]['dir'] ? ' selected="selected" ' : '') . '>' . $skins[$i]['name'] . '</option>';
        $askin_select .= '<option value="' . $skins[$i]['dir'] . '"' . ($_MG_CONF['ad_album_skin'] == $skins[$i]['dir'] ? ' selected="selected" ' : '') . '>' . $skins[$i]['name'] . '</option>';
        $dskin_select .= '<option value="' . $skins[$i]['dir'] . '"' . ($_MG_CONF['ad_display_skin'] == $skins[$i]['dir'] ? ' selected="selected" ' : '') . '>' . $skins[$i]['name'] . '</option>';
    }
    $skin_select .= '</select>';
    $askin_select .= '</select>';
    $dskin_select .= '</select>';
    $themes = MG_getThemes();
    $album_theme_select = '<select name="album_theme">';
    for ($i = 0; $i < count($themes); $i++) {
        $album_theme_select .= '<option value="' . $themes[$i] . '"' . ($A['skin'] == $themes[$i] ? 'selected="selected"' : '') . '>' . $themes[$i] . '</option>';
    }
    $album_theme_select .= '</select>';
    $T->set_var(array('action' => 'globalattr', 'album_list' => $album_jumpbox, 'display_image_size_select' => $display_image_size_select, 'max_image_height_input' => $max_image_height_input, 'max_image_width_input' => $max_image_width_input, 'max_filesize_input' => $max_filesize_input, 'comment_select' => $comment_select, 'exif_select' => $exif_select, 'ranking_select' => $ranking_select, 'podcast_select' => $podcast_select, 'mp3ribbon_select' => $mp3ribbon_select, 'rsschildren_select' => $rsschildren_select, 'ss_select' => $ss_select, 'full_select' => $full_select, 'ri_select' => $ri_select, 'sf_select' => $sf_select, 'rss_select' => $rss_select, 'postcard_select' => $postcard_select, 'views_select' => $views_select, 'keywords_select' => $keywords_select, 'album_theme_select' => $album_theme_select, 'display_album_desc_select' => $display_album_desc_select, 'album_views_select' => $album_views_select, 'sort_select' => $sort_select, 'afirst_select' => $afirst_select, 'tn_size_select' => $tn_size_select, 'tnheight_input' => $tnheight_input, 'tnwidth_input' => $tnwidth_input, 'rows_input' => $rows_input, 'height_input' => $max_image_height_input, 'width_input' => $max_image_width_input, 'max_size_input' => $max_filesize_input, 'columns_input' => $columns_input, 'playback_type' => $playback_type, 'admin_menu' => $adminMenu, 'allow_download_select' => $allow_download_select, 'filename_title_select' => $filename_title_select, 'skin_select' => $skin_select, 'askin_select' => $askin_select, 'dskin_select' => $dskin_select, 'lang_image_skin' => $LANG_MG01['image_skin'], 'lang_album_skin' => $LANG_MG01['album_skin'], 'lang_display_skin' => $LANG_MG01['display_skin'], 'lang_jpg' => $LANG_MG01['jpg'], 'lang_png' => $LANG_MG01['png'], 'lang_tif' => $LANG_MG01['tif'], 'lang_gif' => $LANG_MG01['gif'], 'lang_bmp' => $LANG_MG01['bmp'], 'lang_tga' => $LANG_MG01['tga'], 'lang_psd' => $LANG_MG01['psd'], 'lang_mp3' => $LANG_MG01['mp3'], 'lang_ogg' => $LANG_MG01['ogg'], 'lang_asf' => $LANG_MG01['asf'], 'lang_swf' => $LANG_MG01['swf'], 'lang_mov' => $LANG_MG01['mov'], 'lang_mp4' => $LANG_MG01['mp4'], 'lang_mpg' => $LANG_MG01['mpg'], 'lang_zip' => $LANG_MG01['zip'], 'lang_flv' => $LANG_MG01['flv'], 'lang_rflv' => $LANG_MG01['rflv'], 'lang_emb' => $LANG_MG01['emb'], 'lang_other' => $LANG_MG01['other'], 'lang_allowed_formats' => $LANG_MG01['allowed_media_formats'], 'lang_image' => $LANG_MG01['image'], 'lang_audio' => $LANG_MG01['audio'], 'lang_video' => $LANG_MG01['video'], 'lang_save' => $LANG_MG01['save'], 'lang_edit_title' => $LANG_MG01['edit_album'], 's_form_action' => $_MG_CONF['site_url'] . '/admin.php', 'lang_album_edit_help' => $LANG_MG01['album_edit_help'], 'lang_cancel' => $LANG_MG01['cancel'], 'lang_comments' => $LANG_MG01['comments_prompt'], 'lang_enable_exif' => $LANG_MG01['enable_exif'], 'lang_enable_ratings' => $LANG_MG01['enable_ratings'], 'lang_ss_enable' => $LANG_MG01['ss_enable'], 'lang_ri_enable' => $LANG_MG01['ri_enable'], 'lang_sf_enable' => $LANG_MG01['sf_enable'], 'lang_tn_size' => $LANG_MG01['tn_size'], 'lang_rows' => $LANG_MG01['rows'], 'lang_columns' => $LANG_MG01['columns'], 'lang_av_play_album' => $LANG_MG01['av_play_album'], 'lang_av_play_options' => $LANG_MG01['av_play_options'], 'lang_album_attributes' => $LANG_MG01['album_attributes'], 'lang_global_attr_help' => $LANG_MG01['global_attr_help'], 'lang_value' => $LANG_MG01['value'], 'lang_attribute' => $LANG_MG01['attribute'], 'lang_update' => $LANG_MG01['update'], 'lang_enable_views' => $LANG_MG01['enable_views'], 'lang_enable_keywords' => $LANG_MG01['enable_keywords'], 'lang_enable_album_views' => $LANG_MG01['enable_album_views'], 'lang_enable_sort' => $LANG_MG01['enable_sort'], 'lang_albums_first' => $LANG_MG01['albums_first'], 'lang_full_display' => $LANG_MG01['full_display'], 'lang_max_image_height' => $LANG_MG01['max_image_height'], 'lang_max_image_width' => $LANG_MG01['max_image_width'], 'lang_max_filesize' => $LANG_MG01['max_filesize'], 'lang_display_image_size' => $LANG_MG01['display_image_size'], 'lang_starting_album' => $LANG_MG01['starting_album'], 'lang_enable_rss' => $LANG_MG01['enable_rss'], 'lang_enable_postcard' => $LANG_MG01['enable_postcard'], 'lang_allow_download' => $LANG_MG01['allow_download'], 'lang_display_album_desc' => $LANG_MG01['display_album_desc'], 'lang_filename_title' => $LANG_MG01['filename_title'], 'lang_theme_select' => $LANG_MG01['album_theme'], 'lang_podcast' => $LANG_MG01['podcast'], 'lang_mp3ribbon' => $LANG_MG01['mp3ribbon'], 'lang_rsschildren' => $LANG_MG01['rsschildren'], 'lang_tnheight' => $LANG_MG01['tn_height'], 'lang_tnwidth' => $LANG_MG01['tn_width']));
    $T->parse('output', 'admin');
    $retval .= $T->finish($T->get_var('output'));
    $retval .= COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
    return $retval;
}