function get_cat_list(&$breadcrumb, &$cat_data, &$statistics) { global $HTTP_GET_VARS, $CONFIG, $ALBUM_SET, $CURRENT_CAT_NAME, $BREADCRUMB_TEXT, $STATS_IN_ALB_LIST, $FORBIDDEN_SET; global $HIDE_USER_CAT, $cpg_show_private_album; global $cat; global $lang_list_categories, $lang_errors; // Build the breadcrumb cpg_breadcrumb($cat, $breadcrumb, $BREADCRUMB_TEXT); // Build the category list $cat_data = array(); $album_set_array = array(); get_subcat_data($cat, $cat_data, $album_set_array, $CONFIG['subcat_level']); $album_filter = ''; $pic_filter = ''; $cat = (int) $cat; if (!empty($FORBIDDEN_SET) && !$cpg_show_private_album) { $album_filter = ' and ' . str_replace('p.', 'a.', $FORBIDDEN_SET); $pic_filter = ' and ' . $FORBIDDEN_SET; } // Add the albums in the current category to the album set //if ($cat) { if ($cat == USER_GAL_CAT) { $sql = "SELECT aid FROM {$CONFIG['TABLE_ALBUMS']} as a WHERE category >= " . FIRST_USER_CAT . $album_filter; $result = db_query($sql); } else { $sql = "SELECT aid FROM {$CONFIG['TABLE_ALBUMS']} as a WHERE category = '{$cat}'" . $album_filter; $result = db_query($sql); } while ($row = mysql_fetch_array($result)) { $album_set_array[] = $row['aid']; } // while mysql_free_result($result); //} if (count($album_set_array) && $cat) { $set = ''; foreach ($album_set_array as $album) { $set .= $album . ','; } $set = substr($set, 0, -1); $current_album_set = "AND aid IN ({$set}) "; $ALBUM_SET .= $current_album_set; } elseif ($cat) { $current_album_set = "AND aid IN (-1) "; $ALBUM_SET .= $current_album_set; } // Gather gallery statistics if ($cat == 0) { $result = db_query("SELECT count(*) FROM {$CONFIG['TABLE_ALBUMS']} as a WHERE 1" . $album_filter); $nbEnr = mysql_fetch_array($result); $album_count = $nbEnr[0]; mysql_free_result($result); $sql = "SELECT count(*) FROM {$CONFIG['TABLE_PICTURES']} as p " . 'LEFT JOIN ' . $CONFIG['TABLE_ALBUMS'] . ' as a ' . 'ON a.aid=p.aid ' . 'WHERE 1' . $pic_filter; $result = db_query($sql); $nbEnr = mysql_fetch_array($result); $picture_count = $nbEnr[0]; mysql_free_result($result); $sql = "SELECT count(*) FROM {$CONFIG['TABLE_COMMENTS']} as c " . 'LEFT JOIN ' . $CONFIG['TABLE_PICTURES'] . ' as p ' . 'ON c.pid=p.pid ' . 'LEFT JOIN ' . $CONFIG['TABLE_ALBUMS'] . ' as a ' . 'ON a.aid=p.aid ' . 'WHERE 1' . $pic_filter; $result = db_query($sql); $nbEnr = mysql_fetch_array($result); $comment_count = $nbEnr[0]; mysql_free_result($result); $sql = "SELECT count(*) FROM {$CONFIG['TABLE_CATEGORIES']} WHERE 1"; $result = db_query($sql); $nbEnr = mysql_fetch_array($result); $cat_count = $nbEnr[0] - $HIDE_USER_CAT; mysql_free_result($result); $sql = "SELECT sum(hits) FROM {$CONFIG['TABLE_PICTURES']} as p " . 'LEFT JOIN ' . $CONFIG['TABLE_ALBUMS'] . ' as a ' . 'ON p.aid=a.aid ' . 'WHERE 1' . $pic_filter; $result = db_query($sql); $nbEnr = mysql_fetch_array($result); $hit_count = (int) $nbEnr[0]; mysql_free_result($result); if (count($cat_data)) { $statistics = strtr($lang_list_categories['stat1'], array('[pictures]' => $picture_count, '[albums]' => $album_count, '[cat]' => $cat_count, '[comments]' => $comment_count, '[views]' => $hit_count)); } else { $STATS_IN_ALB_LIST = true; $statistics = strtr($lang_list_categories['stat3'], array('[pictures]' => $picture_count, '[albums]' => $album_count, '[comments]' => $comment_count, '[views]' => $hit_count)); } } elseif ($cat >= FIRST_USER_CAT && $ALBUM_SET) { $result = db_query("SELECT count(*) FROM {$CONFIG['TABLE_ALBUMS']} WHERE 1 {$current_album_set}"); $nbEnr = mysql_fetch_array($result); $album_count = $nbEnr[0]; mysql_free_result($result); $result = db_query("SELECT count(*) FROM {$CONFIG['TABLE_PICTURES']} WHERE 1 {$current_album_set}"); $nbEnr = mysql_fetch_array($result); $picture_count = $nbEnr[0]; mysql_free_result($result); $result = db_query("SELECT sum(hits) FROM {$CONFIG['TABLE_PICTURES']} WHERE 1 {$current_album_set}"); $nbEnr = mysql_fetch_array($result); $hit_count = (int) $nbEnr[0]; mysql_free_result($result); $statistics = strtr($lang_list_categories['stat2'], array('[pictures]' => $picture_count, '[albums]' => $album_count, '[views]' => $hit_count)); } else { $statistics = ''; } }
} // Retrieve data for the current album if (isset($CURRENT_PIC_DATA)) { $result = db_query("SELECT title, comments, votes, category, aid FROM {$CONFIG['TABLE_ALBUMS']} WHERE aid='{$CURRENT_PIC_DATA['aid']}' LIMIT 1"); if (!mysql_num_rows($result)) { cpg_die(CRITICAL_ERROR, sprintf($lang_errors['pic_in_invalid_album'], $CURRENT_PIC_DATA['aid']), __FILE__, __LINE__); } $CURRENT_ALBUM_DATA = mysql_fetch_array($result); if (is_numeric($album)) { $cat = -$album; $actual_cat = $CURRENT_ALBUM_DATA['category']; cpg_breadcrumb($actual_cat, $breadcrumb, $breadcrumb_text); $cat = -$album; } else { $actual_cat = $CURRENT_ALBUM_DATA['category']; cpg_breadcrumb($actual_cat, $breadcrumb, $breadcrumb_text); } } if (isset($HTTP_GET_VARS['fullsize'])) { display_fullsize_pic(); ob_end_flush(); } elseif (isset($HTTP_GET_VARS['slideshow'])) { slideshow(); ob_end_flush(); } else { if (!isset($HTTP_GET_VARS['pos'])) { cpg_die(ERROR, $lang_errors['non_exist_ap'], __FILE__, __LINE__); } $picture_title = $CURRENT_PIC_DATA['title'] ? $CURRENT_PIC_DATA['title'] : strtr(preg_replace("/(.+)\\..*?\\Z/", "\\1", htmlspecialchars($CURRENT_PIC_DATA['filename'])), "_", " "); $nav_menu = html_img_nav_menu(); $picture = html_picture();
$CURRENT_CAT_NAME = sprintf($lang_list_categories['xx_s_gallery'], $user_name); } else { $result = db_query("SELECT name FROM {$CONFIG['TABLE_CATEGORIES']} WHERE cid = '{$cat}'"); if (mysql_num_rows($result) == 0) { cpg_die(CRITICAL_ERROR, $lang_errors['non_exist_cat'], __FILE__, __LINE__); } $row = mysql_fetch_array($result); $CURRENT_CAT_NAME = $row['name']; } get_subcat_data($cat, $album_set_array, $CONFIG['subcat_level']); // Treat the album set if (count($album_set_array)) { $set = ''; foreach ($album_set_array as $album_id) { $set .= $set == '' ? $album_id : ',' . $album_id; } $ALBUM_SET .= "AND aid IN ({$set}) "; } cpg_breadcrumb($cat, $breadcrumb, $breadcrumb_text); } } pageheader(isset($CURRENT_ALBUM_DATA) ? $CURRENT_ALBUM_DATA['title'] : $lang_meta_album_names[$album]); if ($breadcrumb) { if (!(strpos($CONFIG['main_page_layout'], "breadcrumb") === false)) { theme_display_breadcrumb($breadcrumb, $cat_data); } theme_display_cat_list($breadcrumb, $cat_data, ''); } display_thumbnails($album, isset($cat) ? $cat : 0, $page, $CONFIG['thumbcols'], $CONFIG['thumbrows'], true); pagefooter(); ob_end_flush();