Example #1
0
function xfd_head()
{
    global $CONFIG, $thisplugin, $XFDSET, $album, $cat;
    $xfd_feed = "index.php?file=xfeed/xfeed";
    $superCage = Inspekt::makeSuperCage();
    switch ($XFDSET['xfd_theme']) {
        case 0:
            $color = "orange";
            break;
        case 1:
            $color = "azure";
            break;
        case 2:
            $color = "red";
            break;
        case 3:
            $color = "blue";
            break;
        case 4:
            $color = "trans_dark";
            break;
        case 5:
            $color = "trans_light";
            break;
    }
    $header = "\r\n    <!-- Begin CPG XFeed Headcode -->\r\n    ";
    if ($XFDSET['xfd_feedroute'] == 1) {
        $xfeed_loc = "feeds.feedburner.com/" . $XFDSET['xfd_feedburnuname'];
        $header .= "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"" . $CONFIG['gallery_name'] . " - Feedburner\" href=\"http://" . $xfeed_loc . "\" />\n";
    }
    $extra_header = $header_str = '';
    if ($superCage->get->keyExists('album')) {
        $album = $superCage->get->getRaw('album');
        $header_str .= "&album={$album}";
    }
    if ($superCage->get->keyExists('cat')) {
        $cat = $superCage->get->getRaw('cat');
        $header_str .= "&cat={$cat}";
    }
    // Code to show the proper title for various RSS and ATOM
    $extraTitle = '';
    if ($album) {
        if ((int) $album) {
            $albumDetails = get_album_name((int) $album);
            $album = $albumDetails['title'];
        } else {
            $album = ucwords($album);
        }
        $extraTitle .= " | {$album}";
    }
    if (!is_null($cat) && (int) $cat !== FALSE) {
        if ($cat < 0) {
            $album = -$cat;
            $query = "SELECT category FROM {$CONFIG['TABLE_ALBUMS']} WHERE aid = '{$album}'";
            $result = cpg_db_query($query);
            $row = cpg_db_fetch_rowset($result);
            $cat = $row[0]['category'];
        }
        $cat_name = populate_category_name($cat);
        $extraTitle .= " | {$cat_name}";
    }
    if ($header_str) {
        $extra_header = "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"{$CONFIG['gallery_name']}{$extraTitle} - RSS\" href=\"{$CONFIG['ecards_more_pic_target']}{$xfd_feed}{$header_str}\" />\r\n        <link rel=\"alternate\" type=\"application/atom+xml\" title=\"" . $CONFIG['gallery_name'] . "{$extraTitle} - Atom\" href=\"{$CONFIG['ecards_more_pic_target']}{$xfd_feed}&type=atom{$header_str}\" />";
    }
    $header .= "    <link rel=\"alternate\" type=\"application/rss+xml\" title=\"" . $CONFIG['gallery_name'] . " - RSS\" href=\"" . $CONFIG['ecards_more_pic_target'] . $xfd_feed . "\" />\r\n    <link rel=\"alternate\" type=\"application/atom+xml\" title=\"" . $CONFIG['gallery_name'] . " - Atom\" href=\"" . $CONFIG['ecards_more_pic_target'] . $xfd_feed . "&amp;type=atom\" />\r\n    {$extra_header}\r\n    <style type=\"text/css\">\r\n        .xfeeds{background-image: url(./plugins/xfeed/images/xfeeds_" . $color . ".png);}\r\n    </style>\r\n    <link rel=\"stylesheet\" href=\"plugins/xfeed/css/xfeeds.css\" type=\"text/css\" />\r\n    <!-- END CPG XFeed Headcode -->\r\n    ";
    return $header;
}
Example #2
0
/**
 * get_pic_data()
 *
 * @param $album
 * @param $count
 * @param $album_name
 * @param integer $limit1
 * @param integer $limit2
 * @param boolean $set_caption
 * @return
 **/
function get_pic_data($album, &$count, &$album_name, $limit1 = -1, $limit2 = -1, $set_caption = true)
{
    global $USER, $CONFIG, $ALBUM_SET, $META_ALBUM_SET, $CURRENT_CAT_NAME, $CURRENT_ALBUM_KEYWORD, $HTML_SUBST, $THEME_DIR, $FAVPICS, $FORBIDDEN_SET_DATA, $USER_DATA, $lang_common;
    global $album_date_fmt, $lastcom_date_fmt, $lastup_date_fmt, $lasthit_date_fmt, $cat;
    global $lang_get_pic_data, $lang_meta_album_names, $lang_errors;
    $sort_array = array('na' => 'filename ASC', 'nd' => 'filename DESC', 'ta' => 'title ASC', 'td' => 'title DESC', 'da' => 'pid ASC', 'dd' => 'pid DESC', 'pa' => 'position ASC', 'pd' => 'position DESC');
    $sort_code = isset($USER['sort']) ? $USER['sort'] : $CONFIG['default_sort_order'];
    $sort_order = isset($sort_array[$sort_code]) ? $sort_array[$sort_code] : $sort_array[$CONFIG['default_sort_order']];
    $limit = $limit1 != -1 ? ' LIMIT ' . $limit1 : '';
    $limit .= $limit2 != -1 ? ' ,' . $limit2 : '';
    if ($limit2 == 1) {
        $select_columns = '*';
    } else {
        $select_columns = 'pid, filepath, filename, url_prefix, filesize, pwidth, pheight, ctime, aid, keywords, title';
    }
    if (count($FORBIDDEN_SET_DATA) > 0) {
        $forbidden_set_string = " AND aid NOT IN (" . implode(",", $FORBIDDEN_SET_DATA) . ")";
    } else {
        $forbidden_set_string = '';
    }
    // Keyword
    if (!empty($CURRENT_ALBUM_KEYWORD)) {
        $keyword = "OR (keywords like '%{$CURRENT_ALBUM_KEYWORD}%' {$forbidden_set_string} )";
    } else {
        $keyword = '';
    }
    // Regular albums
    if (is_numeric($album)) {
        $album_name_keyword = get_album_name($album);
        $album_name = $album_name_keyword['title'];
        $album_keyword = addslashes($album_name_keyword['keyword']);
        if (!empty($album_keyword)) {
            $keyword = "OR (keywords like '%{$album_keyword}%' {$forbidden_set_string} )";
        } else {
            $keyword = '';
        }
        if (is_array($USER_DATA['allowed_albums']) && in_array($album, $USER_DATA['allowed_albums'])) {
            $approved = '';
        } else {
            $approved = GALLERY_ADMIN_MODE ? '' : 'AND approved=\'YES\'';
        }
        $approved = GALLERY_ADMIN_MODE ? '' : 'AND approved=\'YES\'';
        $query = "SELECT COUNT(pid) from {$CONFIG['TABLE_PICTURES']} WHERE ((aid='{$album}' {$forbidden_set_string} ) {$keyword}) {$approved} {$ALBUM_SET}";
        $result = cpg_db_query($query);
        $nbEnr = mysql_fetch_array($result);
        $count = $nbEnr[0];
        mysql_free_result($result);
        if ($select_columns != '*') {
            $select_columns .= ', title, caption,hits,owner_id,owner_name,pic_rating,votes';
        }
        $query = "SELECT {$select_columns} from {$CONFIG['TABLE_PICTURES']} WHERE ((aid='{$album}' {$forbidden_set_string} ) {$keyword}) {$approved} {$ALBUM_SET} ORDER BY {$sort_order} {$limit}";
        $result = cpg_db_query($query);
        $rowset = cpg_db_fetch_rowset($result);
        mysql_free_result($result);
        // Set picture caption
        if ($CONFIG['display_thumbnail_rating'] == 1) {
            if ($set_caption) {
                build_caption($rowset, array('pic_rating'));
            }
        } else {
            if ($set_caption) {
                build_caption($rowset);
            }
        }
        $rowset = CPGPluginAPI::filter('thumb_caption_regular', $rowset);
        return $rowset;
    }
    // Meta albums
    switch ($album) {
        case 'lastcom':
            // Last comments
            if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $album_name = $lang_meta_album_names['lastcom'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['lastcom'];
            }
            // Replacing the AND in ALBUM_SET with AND (
            if ($META_ALBUM_SET) {
                $TMP_SET = "AND (" . substr($META_ALBUM_SET, 3);
            } else {
                $TMP_SET = "AND (1";
            }
            $query = "SELECT COUNT({$CONFIG['TABLE_PICTURES']}.pid) from {$CONFIG['TABLE_COMMENTS']}, {$CONFIG['TABLE_PICTURES']}  WHERE {$CONFIG['TABLE_PICTURES']}.approved = 'YES' AND {$CONFIG['TABLE_COMMENTS']}.pid = {$CONFIG['TABLE_PICTURES']}.pid AND {$CONFIG['TABLE_COMMENTS']}.approval = 'YES' {$TMP_SET} {$keyword})";
            $result = cpg_db_query($query);
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            $select_columns = '*';
            //allows building any data into any thumbnail caption
            if ($select_columns == '*') {
                $select_columns = 'p.*, msg_id, author_id, msg_author, UNIX_TIMESTAMP(msg_date) as msg_date, msg_body, aid';
            } else {
                $select_columns = str_replace('pid', 'c.pid', $select_columns) . ', msg_id, author_id, msg_author, UNIX_TIMESTAMP(msg_date) as msg_date, msg_body, aid';
            }
            $TMP_SET = str_replace($CONFIG['TABLE_PICTURES'], 'p', $TMP_SET);
            $query = "SELECT {$select_columns} FROM {$CONFIG['TABLE_COMMENTS']} as c, {$CONFIG['TABLE_PICTURES']} as p WHERE approved = 'YES' AND c.pid = p.pid AND c.approval = 'YES' {$TMP_SET} {$keyword}) ORDER by msg_id DESC {$limit}";
            $result = cpg_db_query($query);
            $rowset = cpg_db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                build_caption($rowset, array('msg_body', 'msg_date'));
            }
            $rowset = CPGPluginAPI::filter('thumb_caption_lastcom', $rowset);
            return $rowset;
            break;
        case 'lastcomby':
            // Last comments by a specific user
            if (isset($USER['uid'])) {
                $uid = (int) $USER['uid'];
            } else {
                $uid = -1;
            }
            $user_name = get_username($uid);
            if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $album_name = $lang_meta_album_names['lastcom'] . ' - ' . $CURRENT_CAT_NAME . ' - ' . $user_name;
            } else {
                $album_name = $lang_meta_album_names['lastcom'] . ' - ' . $user_name;
            }
            $query = "SELECT COUNT({$CONFIG['TABLE_PICTURES']}.pid) from {$CONFIG['TABLE_COMMENTS']}, {$CONFIG['TABLE_PICTURES']}  WHERE approved = 'YES' AND author_id = '{$uid}' AND {$CONFIG['TABLE_COMMENTS']}.pid = {$CONFIG['TABLE_PICTURES']}.pid {$META_ALBUM_SET}";
            $result = cpg_db_query($query);
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            $select_columns = '*, UNIX_TIMESTAMP(msg_date) AS msg_date';
            //allows building any data into any thumbnail caption
            $query = "SELECT {$select_columns} FROM {$CONFIG['TABLE_COMMENTS']} as c, {$CONFIG['TABLE_PICTURES']} as p WHERE approved = 'YES' AND author_id = '{$uid}' AND c.pid = p.pid {$META_ALBUM_SET} ORDER by msg_id DESC {$limit}";
            $result = cpg_db_query($query);
            $rowset = cpg_db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                build_caption($rowset, array('msg_body', 'msg_date'));
            }
            $rowset = CPGPluginAPI::filter('thumb_caption_lastcomby', $rowset);
            return $rowset;
            break;
        case 'lastup':
            // Last uploads
            if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['lastup'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['lastup'];
            }
            $query = "SELECT COUNT(pid) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' {$META_ALBUM_SET}";
            $result = cpg_db_query($query);
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            //if($select_columns != '*' ) $select_columns .= ',title, caption, owner_id, owner_name, aid';
            $select_columns = '*';
            //allows building any data into any thumbnail caption
            $query = "SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' {$META_ALBUM_SET} ORDER BY pid DESC {$limit}";
            $result = cpg_db_query($query);
            $rowset = cpg_db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                build_caption($rowset, array('ctime'));
            }
            $rowset = CPGPluginAPI::filter('thumb_caption_lastup', $rowset);
            return $rowset;
            break;
        case 'lastupby':
            // Last uploads by a specific user
            if (isset($USER['uid'])) {
                $uid = (int) $USER['uid'];
            } else {
                $uid = -1;
            }
            $user_name = get_username($uid);
            if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['lastup'] . ' - ' . $CURRENT_CAT_NAME . ' - ' . $user_name;
            } else {
                $album_name = $lang_meta_album_names['lastup'] . ' - ' . $user_name;
            }
            $query = "SELECT COUNT(pid) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND owner_id = '{$uid}' {$META_ALBUM_SET}";
            $result = cpg_db_query($query);
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            //if($select_columns != '*' ) $select_columns .= ', owner_id, owner_name, aid';
            $select_columns = '*';
            //allows building any data into any thumbnail caption
            $query = "SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND owner_id = '{$uid}' {$META_ALBUM_SET} ORDER BY pid DESC {$limit}";
            $result = cpg_db_query($query);
            $rowset = cpg_db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                build_caption($rowset, array('ctime'));
            }
            $rowset = CPGPluginAPI::filter('thumb_caption_lastupby', $rowset);
            return $rowset;
            break;
        case 'topn':
            // Most viewed pictures
            if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['topn'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['topn'];
            }
            $query = "SELECT COUNT(pid) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND hits > 0  {$META_ALBUM_SET} {$keyword}";
            $result = cpg_db_query($query);
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            //if($select_columns != '*') $select_columns .= ', hits, aid, filename, owner_id, owner_name';
            $select_columns = '*';
            //allows building any data into any thumbnail caption
            $query = "SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES'AND hits > 0 {$META_ALBUM_SET} {$keyword} ORDER BY hits DESC, filename  {$limit}";
            $result = cpg_db_query($query);
            $rowset = cpg_db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                build_caption($rowset, array('hits'));
            }
            $rowset = CPGPluginAPI::filter('thumb_caption_topn', $rowset);
            return $rowset;
            break;
        case 'toprated':
            // Top rated pictures
            if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['toprated'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['toprated'];
            }
            $query = "SELECT COUNT(pid) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND votes >= '{$CONFIG['min_votes_for_rating']}' {$META_ALBUM_SET}";
            $result = cpg_db_query($query);
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            //if($select_columns != '*') $select_columns .= ', pic_rating, votes, aid, owner_id, owner_name';
            $select_columns = '*';
            //allows building any data into any thumbnail caption
            $query = "SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND votes >= '{$CONFIG['min_votes_for_rating']}' {$META_ALBUM_SET} ORDER BY pic_rating DESC, votes DESC, pid DESC {$limit}";
            $result = cpg_db_query($query);
            $rowset = cpg_db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                build_caption($rowset, array('pic_rating'));
            }
            $rowset = CPGPluginAPI::filter('thumb_caption_toprated', $rowset);
            return $rowset;
            break;
        case 'lasthits':
            // Last viewed pictures
            if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['lasthits'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['lasthits'];
            }
            $query = "SELECT COUNT(pid) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' and hits > 0 {$META_ALBUM_SET}";
            $result = cpg_db_query($query);
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            //if($select_columns != '*') $select_columns .= ', UNIX_TIMESTAMP(mtime) as mtime, aid, hits, lasthit_ip, owner_id, owner_name';
            $select_columns = '*, UNIX_TIMESTAMP(mtime) as mtime';
            //allows building any data into any thumbnail caption
            $query = "SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' and hits > 0 {$META_ALBUM_SET} ORDER BY mtime DESC {$limit}";
            $result = cpg_db_query($query);
            $rowset = cpg_db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                build_caption($rowset, array('mtime', 'hits'));
            }
            $rowset = CPGPluginAPI::filter('thumb_caption_lasthits', $rowset);
            return $rowset;
            break;
        case 'random':
            // Random pictures
            if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['random'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['random'];
            }
            $query = "SELECT COUNT(pid) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' {$META_ALBUM_SET}";
            $result = cpg_db_query($query);
            $nbEnr = mysql_fetch_array($result);
            $pic_count = $nbEnr[0];
            mysql_free_result($result);
            //if($select_columns != '*') $select_columns .= ', aid, owner_id, owner_name';
            $select_columns = '*';
            //allows building any data into any thumbnail caption
            // if we have more than 1000 pictures, we limit the number of picture returned
            // by the SELECT statement as ORDER BY RAND() is time consuming
            /* Commented out due to image not found bug
                            if ($pic_count > 1000) {
                                $result = cpg_db_query("SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES'");
                                    $nbEnr = mysql_fetch_array($result);
                                    $total_count = $nbEnr[0];
                                    mysql_free_result($result);
            
                                    $granularity = floor($total_count / RANDPOS_MAX_PIC);
                                    $cor_gran = ceil($total_count / $pic_count);
                                    srand(time());
                                    for ($i=1; $i<= $cor_gran; $i++) $random_num_set =rand(0, $granularity).', ';
                                    $random_num_set = substr($random_num_set,0, -2);
                                    $result = cpg_db_query("SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE  randpos IN ($random_num_set) AND approved = 'YES' $ALBUM_SET ORDER BY RAND() LIMIT $limit2");
                            } else {
                                            */
            $query = "SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' {$META_ALBUM_SET} ORDER BY RAND() LIMIT {$limit2}";
            $result = cpg_db_query($query);
            $rowset = array();
            while ($row = mysql_fetch_array($result)) {
                $rowset[-$row['pid']] = $row;
            }
            mysql_free_result($result);
            if ($set_caption) {
                build_caption($rowset);
            }
            $rowset = CPGPluginAPI::filter('thumb_caption_random', $rowset);
            return $rowset;
            break;
        case 'search':
            // Search results
            if (isset($USER['search']['search'])) {
                $search_string = $USER['search']['search'];
            } else {
                $search_string = '';
            }
            if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['search'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['search'] . ' - "' . strtr($search_string, $HTML_SUBST) . '"';
            }
            include 'include/search.inc.php';
            $rowset = CPGPluginAPI::filter('thumb_caption_search', $rowset);
            return $rowset;
            break;
        case 'lastalb':
            // Last albums to which uploads
            if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['lastalb'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['lastalb'];
            }
            $META_ALBUM_SET = str_replace("aid", $CONFIG['TABLE_PICTURES'] . ".aid", $META_ALBUM_SET);
            $query = "SELECT count({$CONFIG['TABLE_ALBUMS']}.aid) FROM {$CONFIG['TABLE_PICTURES']},{$CONFIG['TABLE_ALBUMS']} WHERE {$CONFIG['TABLE_PICTURES']}.aid = {$CONFIG['TABLE_ALBUMS']}.aid AND approved = 'YES' {$META_ALBUM_SET} GROUP  BY {$CONFIG['TABLE_PICTURES']}.aid";
            $result = cpg_db_query($query);
            $count = mysql_num_rows($result);
            mysql_free_result($result);
            $query = "SELECT *,{$CONFIG['TABLE_ALBUMS']}.title AS title,{$CONFIG['TABLE_ALBUMS']}.aid AS aid FROM {$CONFIG['TABLE_PICTURES']},{$CONFIG['TABLE_ALBUMS']} WHERE {$CONFIG['TABLE_PICTURES']}.aid = {$CONFIG['TABLE_ALBUMS']}.aid AND approved = 'YES' {$META_ALBUM_SET} GROUP BY {$CONFIG['TABLE_PICTURES']}.aid ORDER BY {$CONFIG['TABLE_PICTURES']}.ctime DESC {$limit}";
            $result = cpg_db_query($query);
            $rowset = cpg_db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                build_caption($rowset, array('ctime'));
            }
            $rowset = CPGPluginAPI::filter('thumb_caption_lastalb', $rowset);
            return $rowset;
            break;
        case 'favpics':
            // Favourite Pictures
            $album_name = $lang_meta_album_names['favpics'];
            $rowset = array();
            if (count($FAVPICS) > 0) {
                $favs = implode(",", $FAVPICS);
                $query = "SELECT COUNT(pid) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND pid IN ({$favs}) {$META_ALBUM_SET}";
                $result = cpg_db_query($query);
                $nbEnr = mysql_fetch_array($result);
                $count = $nbEnr[0];
                mysql_free_result($result);
                $select_columns = '*';
                $query = "SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND pid IN ({$favs}) {$META_ALBUM_SET} {$limit}";
                $result = cpg_db_query($query);
                $rowset = cpg_db_fetch_rowset($result);
                mysql_free_result($result);
                if ($set_caption) {
                    build_caption($rowset, array('ctime'));
                }
            }
            $rowset = CPGPluginAPI::filter('thumb_caption_favpics', $rowset);
            return $rowset;
            break;
        case 'datebrowse':
            // Browsing by uploading date
            $date = isset($_GET['date']) ? cpgValidateDate($_GET['date']) : null;
            $album_name = $lang_common['date'] . ': ' . $date;
            $rowset = array();
            $query = "SELECT COUNT(pid) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND substring(from_unixtime(ctime),1,10) = '" . substr($date, 0, 10) . "' {$META_ALBUM_SET}";
            $result = cpg_db_query($query);
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            $select_columns = '*';
            $query = "SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND substring(from_unixtime(ctime),1,10) = '" . substr($date, 0, 10) . "'  {$META_ALBUM_SET} {$limit}";
            $result = cpg_db_query($query);
            $rowset = cpg_db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                build_caption($rowset, array('ctime'));
            }
            return $rowset;
            break;
        default:
            // Invalid meta album
            cpg_die(ERROR, $lang_errors['non_exist_ap'], __FILE__, __LINE__);
    }
}
function get_pic_data($album, &$count, &$album_name, $limit1 = -1, $limit2 = -1, $set_caption = true)
{
    global $USER, $CONFIG, $ALBUM_SET, $CURRENT_CAT_NAME, $CURRENT_ALBUM_KEYWORD, $HTTP_GET_VARS, $HTML_SUBST, $THEME_DIR, $FAVPICS;
    global $album_date_fmt, $lastcom_date_fmt, $lastup_date_fmt, $lasthit_date_fmt;
    global $lang_get_pic_data, $lang_meta_album_names, $lang_errors;
    $sort_array = array('na' => 'filename ASC', 'nd' => 'filename DESC', 'ta' => 'title ASC', 'td' => 'title DESC', 'da' => 'pid ASC', 'dd' => 'pid DESC');
    $sort_code = isset($USER['sort']) ? $USER['sort'] : $CONFIG['default_sort_order'];
    $sort_order = isset($sort_array[$sort_code]) ? $sort_array[$sort_code] : $sort_array[$CONFIG['default_sort_order']];
    $limit = $limit1 != -1 ? ' LIMIT ' . $limit1 : '';
    $limit .= $limit2 != -1 ? ' ,' . $limit2 : '';
    if ($limit2 == 1) {
        $select_columns = '*';
    } else {
        $select_columns = 'pid, filepath, filename, url_prefix, filesize, pwidth, pheight, ctime, aid';
    }
    // Keyword
    if (!empty($CURRENT_ALBUM_KEYWORD)) {
        $keyword = "OR keywords like '%{$CURRENT_ALBUM_KEYWORD}%'";
    } else {
        $keyword = '';
    }
    // Regular albums
    if (is_numeric($album)) {
        $album_name_keyword = get_album_name($album);
        $album_name = $album_name_keyword['title'];
        $album_keyword = $album_name_keyword['keyword'];
        if (!empty($album_keyword)) {
            $keyword = "OR keywords like '%{$album_keyword}%'";
        }
        $approved = GALLERY_ADMIN_MODE ? '' : 'AND approved=\'YES\'';
        $result = db_query("SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE aid='{$album}' {$keyword} {$approved} {$ALBUM_SET}");
        $nbEnr = mysql_fetch_array($result);
        $count = $nbEnr[0];
        mysql_free_result($result);
        if ($select_columns != '*') {
            $select_columns .= ', title, caption,hits,owner_id,owner_name';
        }
        $result = db_query("SELECT {$select_columns} from {$CONFIG['TABLE_PICTURES']} WHERE aid='{$album}' {$keyword} {$approved} {$ALBUM_SET} ORDER BY {$sort_order} {$limit}");
        $rowset = db_fetch_rowset($result);
        mysql_free_result($result);
        // Set picture caption
        if ($set_caption) {
            foreach ($rowset as $key => $row) {
                $caption = "<span class=\"thumb_title\">";
                $caption .= $rowset[$key]['title'] || $rowset[$key]['hits'] ? $rowset[$key]['title'] : '';
                if ($CONFIG['views_in_thumbview']) {
                    if ($rowset[$key]['title']) {
                        $caption .= "&nbsp;&ndash;&nbsp;";
                    }
                    $caption .= sprintf($lang_get_pic_data['n_views'], $rowset[$key]['hits']);
                }
                $caption .= "</span>";
                if ($CONFIG['caption_in_thumbview']) {
                    $caption .= $rowset[$key]['caption'] ? "<span class=\"thumb_caption\">" . bb_decode($rowset[$key]['caption']) . "</span>" : '';
                }
                if ($CONFIG['display_comment_count']) {
                    $comments_nr = count_pic_comments($row['pid']);
                    if ($comments_nr > 0) {
                        $caption .= "<span class=\"thumb_num_comments\">" . sprintf($lang_get_pic_data['n_comments'], $comments_nr) . "</span>";
                    }
                }
                if ($CONFIG['display_uploader']) {
                    $caption .= '<span class="thumb_title"><a href ="profile.php?uid=' . $rowset[$key]['owner_id'] . '">' . $rowset[$key]['owner_name'] . '</a></span>';
                }
                $rowset[$key]['caption_text'] = $caption;
            }
        }
        return $rowset;
    }
    // Meta albums
    switch ($album) {
        case 'lastcom':
            // Last comments
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $album_name = $lang_meta_album_names['lastcom'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['lastcom'];
            }
            $query = "SELECT COUNT(*) from {$CONFIG['TABLE_COMMENTS']}, {$CONFIG['TABLE_PICTURES']}  WHERE approved = 'YES' AND {$CONFIG['TABLE_COMMENTS']}.pid = {$CONFIG['TABLE_PICTURES']}.pid {$keyword} {$ALBUM_SET}";
            $result = db_query($query);
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            if ($select_columns == '*') {
                $select_columns = 'p.*';
            } else {
                $select_columns = str_replace('pid', 'c.pid', $select_columns) . ', msg_id, author_id, msg_author, UNIX_TIMESTAMP(msg_date) as msg_date, msg_body, aid';
            }
            $TMP_SET = str_replace($CONFIG['TABLE_PICTURES'], 'p', $ALBUM_SET);
            $result = db_query("SELECT {$select_columns} FROM {$CONFIG['TABLE_COMMENTS']} as c, {$CONFIG['TABLE_PICTURES']} as p WHERE approved = 'YES' AND c.pid = p.pid {$keyword} {$TMP_SET} ORDER by msg_id DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    if ($row['author_id']) {
                        $user_link = '<a href ="profile.php?uid=' . $row['author_id'] . '">' . $row['msg_author'] . '</a>';
                    } else {
                        $user_link = $row['msg_author'];
                    }
                    $msg_body = strlen($row['msg_body']) > 50 ? @substr($row['msg_body'], 0, 50) . "..." : $row['msg_body'];
                    if ($CONFIG['enable_smilies']) {
                        $msg_body = process_smilies($msg_body);
                    }
                    $caption = '<span class="thumb_title">' . $user_link . '</span>' . '<span class="thumb_caption">' . localised_date($row['msg_date'], $lastcom_date_fmt) . '</span>' . '<span class="thumb_caption">' . $msg_body . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'lastcomby':
            // Last comments by a specific user
            if (isset($USER['uid'])) {
                $uid = (int) $USER['uid'];
            } else {
                $uid = -1;
            }
            $user_name = get_username($uid);
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $album_name = $lang_meta_album_names['lastcom'] . ' - ' . $CURRENT_CAT_NAME . ' - ' . $user_name;
            } else {
                $album_name = $lang_meta_album_names['lastcom'] . ' - ' . $user_name;
            }
            $result = db_query("SELECT COUNT(*) from {$CONFIG['TABLE_COMMENTS']}, {$CONFIG['TABLE_PICTURES']}  WHERE approved = 'YES' AND author_id = '{$uid}' AND {$CONFIG['TABLE_COMMENTS']}.pid = {$CONFIG['TABLE_PICTURES']}.pid {$ALBUM_SET}");
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            if ($select_columns == '*') {
                $select_columns = 'p.*';
            } else {
                $select_columns = str_replace('pid', 'c.pid', $select_columns) . ', msg_id, author_id, msg_author, UNIX_TIMESTAMP(msg_date) as msg_date, msg_body, aid';
            }
            $result = db_query("SELECT {$select_columns} FROM {$CONFIG['TABLE_COMMENTS']} as c, {$CONFIG['TABLE_PICTURES']} as p WHERE approved = 'YES' AND author_id = '{$uid}' AND c.pid = p.pid {$ALBUM_SET} ORDER by msg_id DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    if ($row['author_id']) {
                        $user_link = '<a href ="profile.php?uid=' . $row['author_id'] . '">' . $row['msg_author'] . '</a>';
                    } else {
                        $user_link = $row['msg_author'];
                    }
                    $caption = '<span class="thumb_title">' . $user_link . '</span>' . '<span class="thumb_caption">' . localised_date($row['msg_date'], $lastcom_date_fmt) . '</span>' . '<span class="thumb_caption">' . $row['msg_body'] . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'lastup':
            // Last uploads
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['lastup'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['lastup'];
            }
            $result = db_query("SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' {$ALBUM_SET}");
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            if ($select_columns != '*') {
                $select_columns .= ',title, caption, owner_id, owner_name, aid';
            }
            $result = db_query("SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' {$ALBUM_SET} ORDER BY pid DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    $user_link = $CONFIG['display_uploader'] && $row['owner_id'] && $row['owner_name'] ? '<span class="thumb_title"><a href ="profile.php?uid=' . $row['owner_id'] . '">' . $row['owner_name'] . '</a></span>' : '';
                    $caption = $user_link . '<span class="thumb_caption">' . localised_date($row['ctime'], $lastup_date_fmt) . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'lastupby':
            // Last uploads by a specific user
            if (isset($USER['uid'])) {
                $uid = (int) $USER['uid'];
            } else {
                $uid = -1;
            }
            $user_name = get_username($uid);
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['lastup'] . ' - ' . $CURRENT_CAT_NAME . ' - ' . $user_name;
            } else {
                $album_name = $lang_meta_album_names['lastup'] . ' - ' . $user_name;
            }
            $result = db_query("SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND owner_id = '{$uid}' {$ALBUM_SET}");
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            if ($select_columns != '*') {
                $select_columns .= ', owner_id, owner_name, aid';
            }
            $result = db_query("SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND owner_id = '{$uid}' {$ALBUM_SET} ORDER BY pid DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    if ($row['owner_id'] && $row['owner_name']) {
                        $user_link = '<span class="thumb_title"><a href ="profile.php?uid=' . $row['owner_id'] . '">' . $row['owner_name'] . '</a></span>';
                    } else {
                        $user_link = '';
                    }
                    $caption = $user_link . '<span class="thumb_caption">' . localised_date($row['ctime'], $lastup_date_fmt) . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'topn':
            // Most viewed pictures
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['topn'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['topn'];
            }
            $query = "SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND hits > 0  {$ALBUM_SET} {$keyword}";
            $result = db_query($query);
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            if ($select_columns != '*') {
                $select_columns .= ', hits, aid, filename';
            }
            $result = db_query("SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES'AND hits > 0 {$ALBUM_SET} {$keyword} ORDER BY hits DESC, filename  {$limit}");
            $rowset = db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    $caption = "<span class=\"thumb_caption\">" . sprintf($lang_get_pic_data['n_views'], $row['hits']) . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'toprated':
            // Top rated pictures
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['toprated'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['toprated'];
            }
            $result = db_query("SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND votes >= '{$CONFIG['min_votes_for_rating']}' {$ALBUM_SET}");
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            if ($select_columns != '*') {
                $select_columns .= ', pic_rating, votes, aid';
            }
            $result = db_query("SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND votes >= '{$CONFIG['min_votes_for_rating']}' {$ALBUM_SET} ORDER BY ROUND((pic_rating+1)/2000) DESC, votes DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    if (defined('THEME_HAS_RATING_GRAPHICS')) {
                        $prefix = $THEME_DIR;
                    } else {
                        $prefix = '';
                    }
                    $caption = "<span class=\"thumb_caption\">" . '<img src="' . $prefix . 'images/rating' . round($row['pic_rating'] / 2000) . '.gif" align="absmiddle"/>' . '<br />' . sprintf($lang_get_pic_data['n_votes'], $row['votes']) . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'lasthits':
            // Last viewed pictures
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['lasthits'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['lasthits'];
            }
            $result = db_query("SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' {$ALBUM_SET}");
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            if ($select_columns != '*') {
                $select_columns .= ', UNIX_TIMESTAMP(mtime) as mtime, aid';
            }
            $result = db_query("SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' {$ALBUM_SET} ORDER BY mtime DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    $caption = "<span class=\"thumb_caption\">" . localised_date($row['mtime'], $lasthit_date_fmt) . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'random':
            // Random pictures
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['random'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['random'];
            }
            $result = db_query("SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' {$ALBUM_SET}");
            $nbEnr = mysql_fetch_array($result);
            $pic_count = $nbEnr[0];
            mysql_free_result($result);
            if ($select_columns != '*') {
                $select_columns .= ', aid';
            }
            // if we have more than 1000 pictures, we limit the number of picture returned
            // by the SELECT statement as ORDER BY RAND() is time consuming
            /* Commented out due to image not found bug
                            if ($pic_count > 1000) {
                                $result = db_query("SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES'");
                                    $nbEnr = mysql_fetch_array($result);
                                    $total_count = $nbEnr[0];
                                    mysql_free_result($result);
            
                                    $granularity = floor($total_count / RANDPOS_MAX_PIC);
                                    $cor_gran = ceil($total_count / $pic_count);
                                    srand(time());
                                    for ($i=1; $i<= $cor_gran; $i++) $random_num_set =rand(0, $granularity).', ';
                                    $random_num_set = substr($random_num_set,0, -2);
                                    $result = db_query("SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE  randpos IN ($random_num_set) AND approved = 'YES' $ALBUM_SET ORDER BY RAND() LIMIT $limit2");
                            } else {
                                            */
            $sql = "SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' {$ALBUM_SET} ORDER BY RAND() LIMIT {$limit2}";
            $result = db_query($sql);
            $rowset = array();
            while ($row = mysql_fetch_array($result)) {
                $row['caption_text'] = '';
                $rowset[-$row['pid']] = $row;
            }
            mysql_free_result($result);
            return $rowset;
            break;
        case 'search':
            // Search results
            if (isset($USER['search'])) {
                $search_string = $USER['search'];
            } else {
                $search_string = '';
            }
            if (substr($search_string, 0, 3) == '###') {
                $query_all = 1;
                $search_string = substr($search_string, 3);
            } else {
                $query_all = 0;
            }
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['search'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['search'] . ' - "' . strtr($search_string, $HTML_SUBST) . '"';
            }
            include 'include/search.inc.php';
            return $rowset;
            break;
        case 'lastalb':
            // Last albums to which uploads
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $lang_meta_album_names['lastalb'] . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = $lang_meta_album_names['lastalb'];
            }
            $ALBUM_SET = str_replace("aid", $CONFIG['TABLE_PICTURES'] . ".aid", $ALBUM_SET);
            $result = db_query("SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' {$ALBUM_SET}");
            $nbEnr = mysql_fetch_array($result);
            $count = $nbEnr[0];
            mysql_free_result($result);
            $result = db_query("SELECT *,{$CONFIG['TABLE_ALBUMS']}.title AS title,{$CONFIG['TABLE_ALBUMS']}.aid AS aid  FROM {$CONFIG['TABLE_PICTURES']},{$CONFIG['TABLE_ALBUMS']} WHERE {$CONFIG['TABLE_PICTURES']}.aid = {$CONFIG['TABLE_ALBUMS']}.aid AND approved = 'YES' {$ALBUM_SET} GROUP  BY {$CONFIG['TABLE_PICTURES']}.aid ORDER BY {$CONFIG['TABLE_PICTURES']}.ctime DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            mysql_free_result($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    $caption = "<span class=\"thumb_caption\">" . $row['title'] . " - " . localised_date($row['ctime'], $lastup_date_fmt) . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'favpics':
            // Favourite Pictures
            $album_name = $lang_meta_album_names['favpics'];
            $rowset = array();
            if (count($FAVPICS) > 0) {
                $favs = implode(",", $FAVPICS);
                $result = db_query("SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND pid IN ({$favs})");
                $nbEnr = mysql_fetch_array($result);
                $count = $nbEnr[0];
                mysql_free_result($result);
                $select_columns = '*';
                $result = db_query("SELECT {$select_columns} FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES'AND pid IN ({$favs}) {$limit}");
                $rowset = db_fetch_rowset($result);
                mysql_free_result($result);
                if ($set_caption) {
                    foreach ($rowset as $key => $row) {
                        $caption = $rowset[$key]['title'] ? "<span class=\"thumb_caption\">" . $rowset[$key]['title'] . "</span>" : '';
                        $rowset[$key]['caption_text'] = $caption;
                    }
                }
            }
            return $rowset;
            break;
        default:
            // Invalid meta album
            cpg_die(ERROR, $lang_errors['non_exist_ap'], __FILE__, __LINE__);
    }
}
function get_pic_pos($album, $pid)
{
    global $USER, $CONFIG, $CURRENT_ALBUM_KEYWORD, $FORBIDDEN_SET_DATA, $USER_DATA;
    global $RESTRICTEDWHERE, $FORBIDDEN_SET;
    global $lang_errors;
    // Regular albums
    if (is_numeric($album)) {
        if (count($FORBIDDEN_SET_DATA) > 0) {
            $forbidden_set_string = ' AND aid NOT IN (' . implode(', ', $FORBIDDEN_SET_DATA) . ')';
        } else {
            $forbidden_set_string = '';
        }
        $album_name_keyword = get_album_name($album);
        //$album_name         = $album_name_keyword['title'];
        $album_keyword = addslashes($album_name_keyword['keyword']);
        if (!empty($album_keyword)) {
            $keyword = "OR (keywords like '%{$album_keyword}%' {$forbidden_set_string} )";
        } else {
            $keyword = '';
        }
        $approved = GALLERY_ADMIN_MODE ? '' : 'AND approved=\'YES\'';
        $result = cpg_db_query("SELECT filename, title, pid, position, ctime FROM {$CONFIG['TABLE_PICTURES']} WHERE pid = {$pid}");
        if (!mysql_num_rows($result)) {
            cpg_die(ERROR, $lang_errors['non_exist_ap'], __FILE__, __LINE__);
        }
        $pic = mysql_fetch_assoc($result);
        $pic['title'] = mysql_real_escape_string($pic['title']);
        $sort_array = array('na' => "(filename < '{$pic['filename']}' OR filename = '{$pic['filename']}' AND pid < {$pic['pid']})", 'nd' => "(filename > '{$pic['filename']}' OR filename = '{$pic['filename']}' AND pid > {$pic['pid']})", 'ta' => "(title < '{$pic['title']}' OR title = '{$pic['title']}' AND pid < {$pic['pid']})", 'td' => "(title > '{$pic['title']}' OR title = '{$pic['title']}' AND pid > {$pic['pid']})", 'da' => "(ctime < '{$pic['ctime']}' OR ctime = '{$pic['ctime']}' AND pid < {$pic['pid']})", 'dd' => "(ctime > '{$pic['ctime']}' OR ctime = '{$pic['ctime']}' AND pid > {$pic['pid']})", 'pa' => "(position < {$pic['position']} OR position = {$pic['position']} AND pid < {$pic['pid']})", 'pd' => "(position > {$pic['position']} OR position = {$pic['position']} AND pid > {$pic['pid']})");
        $sort_code = isset($USER['sort']) && $CONFIG['custom_sortorder_thumbs'] ? $USER['sort'] : $CONFIG['default_sort_order'];
        $sort_order = isset($sort_array[$sort_code]) ? $sort_array[$sort_code] : $sort_array[$CONFIG['default_sort_order']];
        $query = "SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']}\n                    WHERE ((aid='{$album}' {$forbidden_set_string}) {$keyword}) {$approved}\n                    AND {$sort_order}";
        $result = cpg_db_query($query);
        list($pos) = mysql_fetch_row($result);
        mysql_free_result($result);
        return $pos;
    }
    // Meta albums
    switch ($album) {
        case 'lastcom':
            // Latest comments
            $superCage = Inspekt::makeSuperCage();
            if (!$superCage->get->getInt('msg_id')) {
                cpg_die(ERROR, $lang_errors['param_missing'], __FILE__, __LINE__);
            }
            $query = "SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} AS p\n            INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS r ON r.aid = p.aid\n            INNER JOIN {$CONFIG['TABLE_COMMENTS']} AS c ON c.pid = p.pid\n            {$RESTRICTEDWHERE}\n            AND approved = 'YES'\n            AND approval = 'YES'\n            AND msg_id > " . $superCage->get->getInt('msg_id');
            $result = cpg_db_query($query);
            list($pos) = mysql_fetch_row($result);
            mysql_free_result($result);
            return $pos;
            break;
        case 'lastcomby':
            // Latest comments by a specific user
            if (isset($USER['uid'])) {
                $uid = (int) $USER['uid'];
            } else {
                $uid = -1;
            }
            $superCage = Inspekt::makeSuperCage();
            if (!$superCage->get->getInt('msg_id')) {
                cpg_die(ERROR, $lang_errors['param_missing'], __FILE__, __LINE__);
            }
            $query = "SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} AS p\n            INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS r ON r.aid = p.aid\n            INNER JOIN {$CONFIG['TABLE_COMMENTS']} AS c ON c.pid = p.pid\n            {$RESTRICTEDWHERE}\n            AND author_id = {$uid}\n            AND approved = 'YES'\n            AND approval = 'YES'\n            AND msg_id > " . $superCage->get->getInt('msg_id');
            $result = cpg_db_query($query);
            list($pos) = mysql_fetch_row($result);
            mysql_free_result($result);
            return $pos;
            break;
        case 'lastup':
            // Latest (most recent) uploads
            $query = "SELECT ctime FROM {$CONFIG['TABLE_PICTURES']} WHERE pid = {$pid}";
            $result = cpg_db_query($query);
            if (!mysql_num_rows($result)) {
                cpg_die(ERROR, $lang_errors['non_exist_ap'], __FILE__, __LINE__);
            }
            $ctime = mysql_result($result, 0);
            mysql_free_result($result);
            $query = "SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} AS p\n            INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS r ON r.aid = p.aid\n            {$RESTRICTEDWHERE}\n            AND approved = 'YES'\n            AND (ctime > {$ctime}\n            OR ctime = {$ctime} AND pid > {$pid})";
            $result = cpg_db_query($query);
            list($pos) = mysql_fetch_row($result);
            mysql_free_result($result);
            return $pos;
            break;
        case 'lastupby':
            // Latest (most recent) uploads by a specific user
            if (isset($USER['uid'])) {
                $uid = (int) $USER['uid'];
            } else {
                $uid = -1;
            }
            $query = "SELECT ctime FROM {$CONFIG['TABLE_PICTURES']} WHERE pid = {$pid}";
            $result = cpg_db_query($query);
            if (!mysql_num_rows($result)) {
                cpg_die(ERROR, $lang_errors['non_exist_ap'], __FILE__, __LINE__);
            }
            $ctime = mysql_result($result, 0);
            mysql_free_result($result);
            $query = "SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} AS p\n            INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS r ON r.aid = p.aid\n            {$RESTRICTEDWHERE}\n            AND p.owner_id = {$uid}\n            AND approved = 'YES'\n            AND (ctime > {$ctime}\n            OR ctime = {$ctime} AND pid > {$pid})";
            $result = cpg_db_query($query);
            list($pos) = mysql_fetch_row($result);
            mysql_free_result($result);
            return $pos;
            break;
        case 'topn':
            // Most viewed files
            $query = "SELECT hits FROM {$CONFIG['TABLE_PICTURES']} WHERE pid = {$pid}";
            $result = cpg_db_query($query);
            if (!mysql_num_rows($result)) {
                cpg_die(ERROR, $lang_errors['non_exist_ap'], __FILE__, __LINE__);
            }
            $hits = mysql_result($result, 0);
            mysql_free_result($result);
            $query = "SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} AS p\n            INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS r ON r.aid = p.aid\n            {$RESTRICTEDWHERE}\n            AND approved = 'YES'\n            AND (hits > {$hits}\n            OR hits = {$hits} AND pid < {$pid})";
            $result = cpg_db_query($query);
            list($pos) = mysql_fetch_row($result);
            mysql_free_result($result);
            return $pos;
            break;
        case 'toprated':
            // Top rated pictures
            $query = "SELECT pic_rating, votes FROM {$CONFIG['TABLE_PICTURES']} WHERE pid = {$pid}";
            $result = cpg_db_query($query);
            if (!mysql_num_rows($result)) {
                cpg_die(ERROR, $lang_errors['non_exist_ap'], __FILE__, __LINE__);
            }
            list($pic_rating, $votes) = mysql_fetch_row($result);
            mysql_free_result($result);
            $query = "SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} AS p\n            INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS r ON r.aid = p.aid\n            {$RESTRICTEDWHERE}\n            AND approved = 'YES'\n            AND p.votes >= '{$CONFIG['min_votes_for_rating']}'\n            AND (pic_rating > {$pic_rating}\n            OR (pic_rating = {$pic_rating} AND p.votes > {$votes})\n            OR (pic_rating = {$pic_rating} AND p.votes = {$votes} AND pid > {$pid}))";
            $result = cpg_db_query($query);
            list($pos) = mysql_fetch_row($result);
            mysql_free_result($result);
            return $pos;
            break;
        case 'lasthits':
            // Last viewed files (most recently-viewed files)
            $query = "SELECT mtime FROM {$CONFIG['TABLE_PICTURES']} WHERE pid = {$pid}";
            $result = cpg_db_query($query);
            if (!mysql_num_rows($result)) {
                cpg_die(ERROR, $lang_errors['non_exist_ap'], __FILE__, __LINE__);
            }
            $mtime = mysql_result($result, 0);
            mysql_free_result($result);
            $query = "SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} AS p\n            INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS r ON r.aid = p.aid\n            {$RESTRICTEDWHERE}\n            AND approved = 'YES'\n            AND hits > 0\n            AND (mtime > '{$mtime}'\n            OR mtime = '{$mtime}' AND pid < {$pid})";
            $result = cpg_db_query($query);
            list($pos) = mysql_fetch_row($result);
            mysql_free_result($result);
            return $pos;
            break;
        case 'search':
            // Search results
            $superCage = Inspekt::makeSuperCage();
            if (isset($USER['search']['search'])) {
                $search_string = $USER['search']['search'];
            } else {
                $search_string = '';
            }
            $get_pic_pos = true;
            include 'include/search.inc.php';
            return $pos;
            break;
        case 'favpics':
            // Favorite Files
            global $FAVPICS;
            if (empty($FAVPICS)) {
                return 0;
            }
            $favs = implode(', ', $FAVPICS);
            $query = "SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} AS p\n            INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS r ON r.aid = p.aid\n            {$RESTRICTEDWHERE}\n            AND approved = 'YES'\n            AND pid IN ({$favs})\n            AND pid < {$pid}";
            $result = cpg_db_query($query);
            list($pos) = mysql_fetch_row($result);
            mysql_free_result($result);
            return $pos;
            break;
        case 'datebrowse':
            // Browsing by uploading date
            $superCage = Inspekt::makeSuperCage();
            // Using getRaw():  The date is sanitized in the called function
            $date = $superCage->get->keyExists('date') ? cpgValidateDate($superCage->get->getRaw('date')) : null;
            $query = "SELECT COUNT(*) FROM {$CONFIG['TABLE_PICTURES']} AS p\n            INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS r ON r.aid = p.aid\n            {$RESTRICTEDWHERE}\n            AND approved = 'YES'\n            AND substring(from_unixtime(ctime),1,10) = '" . substr($date, 0, 10) . "'\n            AND pid < {$pid}";
            $result = cpg_db_query($query);
            list($pos) = mysql_fetch_row($result);
            mysql_free_result($result);
            return $pos;
            break;
        default:
            // Invalid/custom meta album
            $pos = CPGPluginAPI::filter('meta_album_get_pic_pos', $album);
            if (is_numeric($pos)) {
                return $pos;
                // Custom meta album
            } else {
                return FALSE;
                // Invalid meta album
            }
    }
    // switch
}
Example #5
0
function get_pic_data($album, &$count, &$album_name, $limit1 = -1, $limit2 = -1, $set_caption = true)
{
    global $USER, $xoopsModuleConfig, $ALBUM_SET, $CURRENT_CAT_NAME, $HTML_SUBST, $THEME_DIR;
    global $GLOBALS;
    global $xoopsDB, $xoopsModule, $xoopsConfig;
    $myts =& MyTextSanitizer::getInstance();
    // MyTextSanitizer object
    $sort_array = array('na' => 'filename ASC', 'nd' => 'filename DESC', 'da' => 'pid ASC', 'dd' => 'pid DESC');
    $sort_code = isset($USER['sort']) ? $USER['sort'] : $xoopsModuleConfig['default_sort_order'];
    $sort_order = isset($sort_array[$sort_code]) ? $sort_array[$sort_code] : $sort_array[$xoopsModuleConfig['default_sort_order']];
    $limit = $limit1 != -1 ? ' LIMIT ' . $limit1 : '';
    $limit .= $limit2 != -1 ? ' ,' . $limit2 : '';
    if ($limit2 == 1) {
        $select_columns = '*';
    } else {
        $select_columns = 'pid, filepath, filename, url_prefix, filesize, pwidth, pheight, ctime';
    }
    // Regular albums
    if (is_numeric($album)) {
        $album_name = get_album_name($album);
        $approved = GALLERY_ADMIN_MODE ? '' : 'AND approved=\'YES\'';
        $result = $xoopsDB->query("SELECT count(*) from " . $xoopsDB->prefix("xcgal_pictures") . " WHERE aid='{$album}' {$approved} {$ALBUM_SET}");
        $nbEnr = $xoopsDB->fetchArray($result);
        $count = $nbEnr['count(*)'];
        $xoopsDB->freeRecordSet($result);
        if ($select_columns != '*') {
            $select_columns .= ', title, caption, owner_id';
        }
        $result = $xoopsDB->query("SELECT {$select_columns} from " . $xoopsDB->prefix("xcgal_pictures") . " WHERE aid='{$album}' {$approved} {$ALBUM_SET} ORDER BY {$sort_order} {$limit}");
        $rowset = db_fetch_rowset($result);
        $xoopsDB->freeRecordSet($result);
        // Set picture caption
        if ($set_caption) {
            foreach ($rowset as $key => $row) {
                $caption = $rowset[$key]['title'] ? "<span class=\"thumb_title\">" . $rowset[$key]['title'] . "</span>" : '';
                if ($xoopsModuleConfig['caption_in_thumbview']) {
                    $caption .= $rowset[$key]['caption'] ? "<span class=\"thumb_caption\">" . $myts->makeTareaData4Show($rowset[$key]['caption'], 0) . "</span>" : '';
                }
                if ($xoopsModuleConfig['display_comment_count']) {
                    $comments_nr = xoops_comment_count($xoopsModule->mid(), $row['pid']);
                    if ($comments_nr > 0) {
                        $caption .= "<span class=\"thumb_num_comments\">" . sprintf(_MD_FUNC_COM, $comments_nr) . "</span>";
                    }
                }
                $rowset[$key]['caption_text'] = $caption;
            }
        }
        return $rowset;
    }
    // Meta albums
    switch ($album) {
        case 'lastcom':
            // Last comments
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = $album_name = _MD_LASTCOM . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = _MD_LASTCOM;
            }
            $result = $xoopsDB->query("SELECT count(*) from " . $xoopsDB->prefix("xoopscomments") . ", " . $xoopsDB->prefix("xcgal_pictures") . " WHERE com_modid = " . $xoopsModule->mid() . " AND approved='YES' AND com_itemid = pid {$ALBUM_SET}");
            $nbEnr = $xoopsDB->fetchArray($result);
            $count = $nbEnr['count(*)'];
            $xoopsDB->freeRecordSet($result);
            if ($select_columns != '*') {
                $select_columns = $select_columns . ', com_id, com_uid,com_itemid,com_rootid, com_exparams, com_created, com_title';
            }
            include_once XOOPS_ROOT_PATH . "/include/comment_constants.php";
            $result = $xoopsDB->query("SELECT {$select_columns} FROM " . $xoopsDB->prefix("xoopscomments") . ", " . $xoopsDB->prefix("xcgal_pictures") . " WHERE com_modid = " . $xoopsModule->mid() . " AND approved = 'YES' AND pid = com_itemid AND com_status=" . XOOPS_COMMENT_ACTIVE . " {$ALBUM_SET} ORDER by com_id DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            $xoopsDB->freeRecordSet($result);
            $member_handler =& xoops_gethandler('member');
            $comment_config = $xoopsModule->getInfo('comments');
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    if ($row['com_uid'] > 0) {
                        $poster =& $member_handler->getUser($row['com_uid']);
                        if (is_object($poster)) {
                            $posters = '<a href="' . XOOPS_URL . '/userinfo.php?uid=' . $row['com_uid'] . '">' . $poster->getVar('uname') . '</a>';
                        } else {
                            $posters = $GLOBALS['xoopsConfig']['anonymous'];
                        }
                    } else {
                        $posters = $GLOBALS['xoopsConfig']['anonymous'];
                    }
                    $comtitle = '<a href="' . XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/' . $comment_config['pageName'] . '?' . $comment_config['itemName'] . '=' . $row['com_itemid'] . '&amp;com_id=' . $row['com_id'] . '&amp;com_rootid=' . $row['com_rootid'] . '&amp;com_mode=flat&amp;' . $row['com_exparams'] . '#comment' . $row['com_id'] . '">' . $row['com_title'] . '</a>';
                    $caption = "<span class=\"thumb_title\">" . $posters . '</span>' . "<span class=\"thumb_caption\">" . formatTimestamp($row['com_created'], 'm') . '</span>' . "<span class=\"thumb_caption\">" . $comtitle . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'lastup':
            // Last uploads
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = _MD_LASTUP . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = _MD_LASTUP;
            }
            $result = $xoopsDB->query("SELECT count(*) from " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' {$ALBUM_SET}");
            $nbEnr = $xoopsDB->fetchArray($result);
            $count = $nbEnr['count(*)'];
            $xoopsDB->freeRecordSet($result);
            if ($select_columns != '*') {
                $select_columns .= ', owner_id';
            }
            $result = $xoopsDB->query("SELECT {$select_columns} FROM " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' {$ALBUM_SET} ORDER BY pid DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            $xoopsDB->freeRecordSet($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    $user_handler =& xoops_gethandler('member');
                    $pic_owner =& $user_handler->getUser($row['owner_id']);
                    if (is_object($pic_owner)) {
                        $user_link = '<br /><a href ="' . XOOPS_URL . '/userinfo.php?uid=' . $pic_owner->uid() . '">' . $pic_owner->uname() . '</a>';
                    } else {
                        $user_link = '';
                    }
                    $caption = "<span class=\"thumb_caption\">" . formatTimestamp($row['ctime'], 'm') . $user_link . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'topn':
            // Most viewed pictures
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = _MD_TOPN . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = _MD_TOPN;
            }
            $result = $xoopsDB->query("SELECT count(*) from " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' AND hits > 0  {$ALBUM_SET}");
            $nbEnr = $xoopsDB->fetchArray($result);
            $count = $nbEnr['count(*)'];
            $xoopsDB->freeRecordSet($result);
            if ($select_columns != '*') {
                $select_columns .= ', hits';
            }
            $result = $xoopsDB->query("SELECT {$select_columns} FROM " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' AND hits > 0 {$ALBUM_SET} ORDER BY hits DESC, ctime, mtime {$limit}");
            $rowset = db_fetch_rowset($result);
            $xoopsDB->freeRecordSet($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    $caption = "<span class=\"thumb_caption\">" . sprintf(_MD_FUNC_VIEW, $row['hits']) . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'toprated':
            // Top rated pictures
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = _MD_TOPRATED . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = _MD_TOPRATED;
            }
            $result = $xoopsDB->query("SELECT count(*) from " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' AND votes >= '{$xoopsModuleConfig['min_votes_for_rating']}' {$ALBUM_SET}");
            $nbEnr = $xoopsDB->fetchArray($result);
            $count = $nbEnr['count(*)'];
            $xoopsDB->freeRecordSet($result);
            if ($select_columns != '*') {
                $select_columns .= ', pic_rating, votes';
            }
            $result = $xoopsDB->query("SELECT {$select_columns} FROM " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' AND votes >= '{$xoopsModuleConfig['min_votes_for_rating']}' {$ALBUM_SET} ORDER BY ROUND((pic_rating+1)/2000) DESC, votes DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            $xoopsDB->freeRecordSet($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    if (defined('THEME_HAS_RATING_GRAPHICS')) {
                        $prefix = $THEME_DIR;
                    } else {
                        $prefix = '';
                    }
                    $caption = "<span class=\"thumb_caption\">" . '<img src="' . $prefix . 'images/rating' . round($row['pic_rating'] / 2000) . '.gif" align="middle" alt=""/>' . '<br />' . sprintf(_MD_FUNC_VOTE, $row['votes']) . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'lasthits':
            // Last viewed pictures
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = _MD_LASTHITS . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = _MD_LASTHITS;
            }
            $result = $xoopsDB->query("SELECT count(*) from " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' {$ALBUM_SET}");
            $nbEnr = $xoopsDB->fetchArray($result);
            $count = $nbEnr['count(*)'];
            $xoopsDB->freeRecordSet($result);
            if ($select_columns != '*') {
                $select_columns .= ', mtime';
            }
            $result = $xoopsDB->query("SELECT {$select_columns} FROM " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' {$ALBUM_SET} ORDER BY mtime DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            $xoopsDB->freeRecordSet($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    $caption = "<span class=\"thumb_caption\">" . formatTimestamp($row['mtime'], 'm') . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'random':
            // Random pictures
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = _MD_RANDOM . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = _MD_RANDOM;
            }
            $result = $xoopsDB->query("SELECT count(*) from " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' {$ALBUM_SET}");
            $nbEnr = $xoopsDB->fetchArray($result);
            $pic_count = $nbEnr['count(*)'];
            $xoopsDB->freeRecordSet($result);
            // if we have more than 1000 pictures, we limit the number of picture returned
            // by the SELECT statement as ORDER BY RAND() is time consuming
            if ($pic_count > 1000) {
                $result = $xoopsDB->query("SELECT count(*) from " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES'");
                $nbEnr = $xoopsDB->fetchArray($result);
                $total_count = $nbEnr['count(*)'];
                $xoopsDB->freeRecordSet($result);
                $granularity = floor($total_count / RANDPOS_MAX_PIC);
                $cor_gran = ceil($total_count / $pic_count);
                srand(time());
                for ($i = 1; $i <= $cor_gran; $i++) {
                    $random_num_set = rand(0, $granularity) . ', ';
                }
                $random_num_set = substr($random_num_set, 0, -2);
                $result = $xoopsDB->query("SELECT {$select_columns} FROM " . $xoopsDB->prefix("xcgal_pictures") . " WHERE  randpos IN ({$random_num_set}) AND approved = 'YES' {$ALBUM_SET} ORDER BY RAND() LIMIT {$limit2}");
            } else {
                $result = $xoopsDB->query("SELECT {$select_columns} FROM " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' {$ALBUM_SET} ORDER BY RAND() LIMIT {$limit2}");
            }
            $rowset = array();
            while ($row = $xoopsDB->fetchArray($result)) {
                $row['caption_text'] = '';
                $rowset[-$row['pid']] = $row;
            }
            $xoopsDB->freeRecordSet($result);
            return $rowset;
            break;
        case 'search':
            // Search results
            if (isset($USER['search'])) {
                $search_string = $USER['search'];
            } else {
                $search_string = '';
            }
            if (substr($search_string, 0, 3) == '###') {
                $query_all = 1;
                $search_string = substr($search_string, 3);
            } else {
                $query_all = 0;
            }
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = _MD_SEARCH . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = _MD_SEARCH . ' - "' . $search_string . '"';
            }
            //var_dump(htmlspecialchars($search_string));
            //$search_string = utf8Encode($search_string);
            include 'include/search.inc.php';
            return $rowset;
            break;
        case 'usearch':
            // User pics search results
            if (isset($USER['suid']) && $USER['suid'] > 0) {
                $owner = new XoopsUser($USER['suid']);
                $album_name = _MD_USEARCH . $owner->uname();
            } else {
                $album_name = 'Pics submitted by ' . $xoopsConfig['anonymous'];
            }
            $result = $xoopsDB->query("SELECT count(*) from " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' AND owner_id = '{$USER['suid']}' {$ALBUM_SET}");
            $nbEnr = $xoopsDB->fetchArray($result);
            $count = $nbEnr['count(*)'];
            $xoopsDB->freeRecordSet($result);
            if ($select_columns != '*') {
                $select_columns .= ', pic_rating, votes';
            }
            $result = $xoopsDB->query("SELECT {$select_columns} FROM " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' AND owner_id = '{$USER['suid']}' {$ALBUM_SET} ORDER BY ctime DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            $xoopsDB->freeRecordSet($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    $caption = "<span class=\"thumb_caption\">" . formatTimestamp($row['ctime'], 'm') . "</span>";
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        case 'mostsend':
            // Top rated pictures
            if ($ALBUM_SET && $CURRENT_CAT_NAME) {
                $album_name = _MD_MOST_SENT . ' - ' . $CURRENT_CAT_NAME;
            } else {
                $album_name = _MD_MOST_SENT;
            }
            $result = $xoopsDB->query("SELECT count(*) from " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' AND sent_card > 0 {$ALBUM_SET}");
            $nbEnr = $xoopsDB->fetchArray($result);
            $count = $nbEnr['count(*)'];
            $xoopsDB->freeRecordSet($result);
            if ($select_columns != '*') {
                $select_columns .= ', sent_card';
            }
            $result = $xoopsDB->query("SELECT {$select_columns} FROM " . $xoopsDB->prefix("xcgal_pictures") . " WHERE approved = 'YES' AND sent_card >0 {$ALBUM_SET} ORDER BY sent_card DESC {$limit}");
            $rowset = db_fetch_rowset($result);
            $xoopsDB->freeRecordSet($result);
            if ($set_caption) {
                foreach ($rowset as $key => $row) {
                    $caption = "<span class=\"thumb_caption\">" . sprintf(_MD_FUNC_SEND, $row['sent_card']) . '</span>';
                    $rowset[$key]['caption_text'] = $caption;
                }
            }
            return $rowset;
            break;
        default:
            // Invalid meta album
            redirect_header('index.php', 2, _MD_NON_EXIST_AP);
    }
}
Example #6
0
    //Set the album to last uploaded
    $album = 'lastup';
}
//If the album is not set set it to lastup - this is the default
if (!isset($album)) {
    $album = 'lastup';
}
if (isset($_GET['cat']) && $_GET['cat'] > 0) {
    $cat = $_GET['cat'];
    $album_name_keyword = easyrss_get_cat_name($cat);
    $CURRENT_CAT_NAME = $album_name_keyword['name'];
    get_meta_album_set($cat, $META_ALBUM_SET);
}
if (isset($_GET['cat']) && $_GET['cat'] < 0) {
    $cat = $_GET['cat'];
    $album_name_keyword = get_album_name(-$cat);
    $CURRENT_CAT_NAME = $album_name_keyword['title'];
    $META_ALBUM_SET = "AND aid IN (" . -$cat . ")" . $ALBUM_SET;
}
//Changes these to point to your site if the following is not giving correct results.
$link_url = $CONFIG['ecards_more_pic_target'] . "displayimage.php?pos=-";
$image_url = $CONFIG['ecards_more_pic_target'] . "albums/";
$META_ALBUM_SET .= $forbidden_set_string;
$data = get_pic_data($album, $thumb_count, $album_name, $lower_limit, $thumb_per_page);
header("content-type: text/xml");
//maybe you must change the encoding to iso-8859-1.
$rssHeader = <<<EOT
<?xml version="1.0" encoding="iso-8859-7"?>
<rss version="2.0" 
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
Example #7
0
function rss20()
{
    global $CONFIG, $result, $base, $gallery_name, $pic_data, $album, $album_name, $CURRENT_CAT_NAME;
    $superCage = Inspekt::makeSuperCage();
    // Decide what kind of title to be shown
    if ((int) $album) {
        $title = " | Album: {$album_name}";
    } elseif ($superCage->get->testInt('cat')) {
        if (strip_tags($album_name)) {
            $title = ' | ' . strip_tags($album_name);
        }
        if ($superCage->get->getInt('cat') < 0) {
            $albumDetails = get_album_name(-$superCage->get->getInt('cat'));
            $title .= " | Album: {$albumDetails['title']}";
        }
    } elseif ($album) {
        $title = ' | ' . strip_tags($album_name);
    }
    print "<?xml version=\"1.0\" encoding=\"{$CONFIG['charset']}\"?>\n";
    print "<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">";
    print "<channel>\n";
    print "<title>{$gallery_name}{$title}</title>\n";
    print "<link>{$base}</link>\n";
    print "<description>" . $CONFIG['gallery_description'] . "</description>\n";
    print "<language>en-US</language>\n";
    print "<lastBuildDate>" . lmdate(time()) . "</lastBuildDate>\n";
    print "<generator>Coppermine RSS Aggregator</generator>\n\n";
    foreach ($pic_data as $row) {
        $title = $row['title'] ? $row['title'] : $row['filename'];
        print "\t<item>\n";
        print "\t\t<title>" . htmlspecialchars($title, ENT_COMPAT, $CONFIG['charset']) . "</title>\n";
        print "\t\t<link>{$base}/displayimage.php?pid={$row['pid']}</link>\n";
        print "\t\t<dc:creator>{$row['owner_name']}</dc:creator>\n";
        print "\t\t<pubDate>" . lmdate($row['ctime']) . "</pubDate>\n";
        print "\t\t<description>";
        echo htmlspecialchars("<p><a href=\"{$base}/displayimage.php?pid={$row['pid']}\"><img src=\"{$base}/" . get_pic_url($row, 'thumb') . "\" alt=\"{$row['filename']}\" /></a></p>", ENT_COMPAT, $CONFIG['charset']);
        echo htmlspecialchars("<p>" . bb_decode($row['caption']) . "&nbsp;</p>", ENT_COMPAT, $CONFIG['charset']);
        echo htmlspecialchars("<p>" . bb_decode($row['keywords']) . "</p>", ENT_COMPAT, $CONFIG['charset']);
        if (isset($row['msg_body']) && !empty($row['msg_body'])) {
            // We have comment for the photo. Must be lastcom metaalbum feed. Display the comment
            echo htmlspecialchars("<p><b>Comment:</b> (<i>" . date('Y-m-d H:m:s', $row['msg_date']) . "</i>) - {$row['msg_author']}</p>", ENT_COMPAT, $CONFIG['charset']);
            if ($CONFIG['enable_smilies']) {
                include_once "include/smilies.inc.php";
                $row['msg_body'] = process_smilies($row['msg_body']);
            }
            echo htmlspecialchars("<p>" . bb_decode($row['msg_body']) . "&nbsp;</p>", ENT_COMPAT, $CONFIG['charset']);
        }
        print "</description>\n";
        print "\t\t<guid>{$base}/displayimage.php?pid={$row['pid']}</guid>\n";
        print "\t</item>\n";
        print "\n";
    }
    print "</channel>";
    print "</rss>";
}
Example #8
0
function easyrss_footer($html)
{
    global $CONFIG, $lang_plugin_easyrss;
    require 'plugins/easy_rss/include/init.inc.php';
    if (($CONFIG['plugin_easyrss_showrss'] || $CONFIG['plugin_easyrss_showgoogle']) && in_array($_SERVER[SCRIPT_NAME], array('index.php', 'thumbnails.php', 'displayimage.php'))) {
        global $CONFIG;
        $album = $_GET['album'];
        $cat = $_GET['cat'];
        $feed = str_replace("http://", "", $CONFIG[ecards_more_pic_target]) . "rss.php";
        if ($album) {
            $feed .= "?album=" . $album;
        } else {
            $feed .= "?album=lastup";
        }
        if ($cat) {
            if ($cat > 10000) {
                $feed .= "?album=lastupby&uid=" . ($cat - 10000);
            } else {
                $feed .= "&cat=" . $cat;
            }
        }
        $html .= "<center>\n";
        if ($CONFIG['plugin_easyrss_showrss']) {
            $html .= '<img src="images/spacer.gif" border=0 width=12 height=17>';
            $rss_ico = '<a href="http://' . $feed . '">';
            $rss_ico .= '<img src="plugins/easy_rss/rss.gif" border=0 alt="' . $lang_plugin_easyrss['alt_rss_feed'] . '"></a>';
            $html .= "{$rss_ico}\n";
            $html .= '<img src="images/spacer.gif" border=0 width=12 height=17>';
        }
        if ($CONFIG['plugin_easyrss_showgoogle']) {
            $html .= '<img src="images/spacer.gif" border=0 width=12 height=17>';
            $goog_ico = '<a href="http://fusion.google.com/add?feedurl=';
            $goog_ico .= 'http%3A//' . $feed;
            $goog_ico .= '"><img src="http://buttons.googlesyndication.com/fusion/add.gif" width="104" height="17" border="0" alt="' . $lang_plugin_easyrss['alt_google'] . '"></a>';
            $html .= "{$goog_ico}\n";
            $html .= '<img src="images/spacer.gif" border=0 width=12 height=17>';
        }
        if ($CONFIG['plugin_easyrss_showyahoo']) {
            $html .= '<img src="images/spacer.gif" border=0 width=12 height=17>';
            $name = "";
            if (is_numeric($album)) {
                $name = get_album_name($album);
                $name = $CONFIG[gallery_name] . " - " . $name['title'];
            } else {
                if (isset($cat) && $cat > 0) {
                    if ($cat < 10000) {
                        $name = easyrss_get_cat_name($cat);
                        $name = $CONFIG[gallery_name] . " - " . $name['name'];
                    } else {
                        $name = $CONFIG[gallery_name] . " - " . get_username($cat - 10000);
                    }
                } else {
                    $name = $CONFIG[gallery_name];
                }
            }
            $yahoo_ico = '<a href="http://us.rd.yahoo.com/my/atm/';
            $yahoo_ico .= $CONFIG[gallery_name] . '/';
            $yahoo_ico .= $name;
            $yahoo_ico .= '/*http://add.my.yahoo.com/rss?url=http%3A//';
            $yahoo_ico .= $feed;
            $yahoo_ico .= '"><img src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif" width="91" height="17" border="0" alt="' . $lang_plugin_easyrss['alt_yahoo'] . '"></a>';
            $html .= "{$yahoo_ico}\n";
            $html .= '<img src="images/spacer.gif" border=0 width=12 height=17>';
        }
        $html .= "</center>\n";
    }
    return $html;
}