/i', $cat['comment']) ) ) { $cat['comment'] = nl2br($cat['comment']); } $names = array(); $query = ' SELECT name,id FROM '.CATEGORIES_TABLE.' WHERE id IN ('.$cat['uppercats'].') ;'; $result = pwg_query($query); while($row = mysql_fetch_array($result)) { $names[$row['id']] = $row['name']; } // category names must be in the same order than uppercats list $cat['name'] = array(); foreach (explode(',', $cat['uppercats']) as $cat_id) { $cat['name'][$cat_id] = $names[$cat_id]; } return $cat; } // get_complete_dir returns the concatenation of get_site_url and // get_local_dir // Example : "pets > rex > 1_year_old" is on the the same site as the // PhpWebGallery files and this category has 22 for identifier // get_complete_dir(22) returns "./galleries/pets/rex/1_year_old/" function get_complete_dir( $category_id ) { return get_site_url($category_id).get_local_dir($category_id); } // get_local_dir returns an array with complete path without the site url // Example : "pets > rex > 1_year_old" is on the the same site as the // PhpWebGallery files and this category has 22 for identifier // get_local_dir(22) returns "pets/rex/1_year_old/" function get_local_dir( $category_id ) { global $page; $uppercats = ''; $local_dir = ''; if ( isset( $page['plain_structure'][$category_id]['uppercats'] ) ) { $uppercats = $page['plain_structure'][$category_id]['uppercats']; } else { $query = 'SELECT uppercats'; $query.= ' FROM '.CATEGORIES_TABLE.' WHERE id = '.$category_id; $query.= ';'; $row = mysql_fetch_array( pwg_query( $query ) ); $uppercats = $row['uppercats']; } $upper_array = explode( ',', $uppercats ); $database_dirs = array(); $query = 'SELECT id,dir'; $query.= ' FROM '.CATEGORIES_TABLE.' WHERE id IN ('.$uppercats.')'; $query.= ';'; $result = pwg_query( $query ); while( $row = mysql_fetch_array( $result ) ) { $database_dirs[$row['id']] = $row['dir']; } foreach ($upper_array as $id) { $local_dir.= $database_dirs[$id].'/'; } return $local_dir; } // retrieving the site url : "http://domain.com/gallery/" or // simply "./galleries/" function get_site_url($category_id) { global $page; $query = ' SELECT galleries_url FROM '.SITES_TABLE.' AS s,'.CATEGORIES_TABLE.' AS c WHERE s.id = c.site_id AND c.id = '.$category_id.' ;'; $row = mysql_fetch_array(pwg_query($query)); return $row['galleries_url']; } // returns an array of image orders available for users/visitors function get_category_preferred_image_orders() { global $conf; return array( array(l10n('default_sort'), '', true), array(l10n('Average rate'), 'average_rate DESC', $conf['rate']), array(l10n('most_visited_cat'), 'hit DESC', true), array(l10n('Creation date'), 'date_creation DESC', true), array(l10n('Post date'), 'date_available DESC', true), array(l10n('File name'), 'file ASC', true) ); } function display_select_categories($categories, $selecteds, $blockname, $fullname = true) { global $template; foreach ($categories as $category) { $selected = ''; if (in_array($category['id'], $selecteds)) { $selected = ' selected="selected"'; } if ($fullname) { $option = get_cat_display_name_cache($category['uppercats'], null, false); } else { $option = str_repeat(' ', (3 * substr_count($category['global_rank'], '.'))); $option.= '- '.$category['name']; } $template->assign_block_vars( $blockname, array('SELECTED'=>$selected, 'VALUE'=>$category['id'], 'OPTION'=>$option )); } } function display_select_cat_wrapper($query, $selecteds, $blockname, $fullname = true) { $result = pwg_query($query); $categories = array(); if (!empty($result)) { while ($row = mysql_fetch_array($result)) { array_push($categories, $row); } } usort($categories, 'global_rank_compare'); display_select_categories($categories, $selecteds, $blockname, $fullname); } /** * returns all subcategory identifiers of given category ids * * @param array ids * @return array */ function get_subcat_ids($ids) { $query = ' SELECT DISTINCT(id) FROM '.CATEGORIES_TABLE.' WHERE '; foreach ($ids as $num => $category_id) { if ($num > 0) { $query.= ' OR '; } $query.= 'uppercats REGEXP \'(^|,)'.$category_id.'(,|$)\''; } $query.= ' ;'; $result = pwg_query($query); $subcats = array(); while ($row = mysql_fetch_array($result)) { array_push($subcats, $row['id']); } return $subcats; } function global_rank_compare($a, $b) { return strnatcasecmp($a['global_rank'], $b['global_rank']); } function rank_compare($a, $b) { if ($a['rank'] == $b['rank']) { return 0; } return ($a['rank'] < $b['rank']) ? -1 : 1; } ?>