diff options
Diffstat (limited to 'admin')
-rw-r--r-- | admin/cat_list.php | 39 | ||||
-rw-r--r-- | admin/include/functions.php | 158 | ||||
-rw-r--r-- | admin/infos_images.php | 7 |
3 files changed, 34 insertions, 170 deletions
diff --git a/admin/cat_list.php b/admin/cat_list.php index 310cf78a7..a611ae3ba 100644 --- a/admin/cat_list.php +++ b/admin/cat_list.php @@ -38,8 +38,9 @@ $navigation=$lang['gallery_index']; //--------------------------------------------------- virtual categories if ( isset( $_GET['delete'] ) && is_numeric( $_GET['delete'] ) ) { - delete_category( $_GET['delete'] ); - synchronize_all_users(); + $to_delete_categories = array(); + array_push($to_delete_categories,$_GET['delete']); + delete_categories( $to_delete_categories ); } elseif ( isset( $_POST['submit'] ) ) { @@ -49,14 +50,32 @@ elseif ( isset( $_POST['submit'] ) ) if ( !count( $errors )) { - // we have then to add the virtual category - $parent_id = !empty($_GET['parent_id'])?$_GET['parent_id']:'NULL'; + $parent_id = !empty($_GET['parent_id'])?$_GET['parent_id']:'NULL'; + // As we don't create a virtual category every day, let's do (far) too much queries + if ($parent_id!='NULL') + { + $query = 'SELECT uppercats FROM '.CATEGORIES_TABLE; + $query.= ' WHERE id="'.$parent_id.'";'; + $parent_uppercats = array_pop(mysql_fetch_array( mysql_query( $query ))); + } + + // we have then to add the virtual category $query = 'INSERT INTO '.CATEGORIES_TABLE; $query.= ' (name,id_uppercat,rank) VALUES '; - $query.= " ('".$_POST['virtual_name']."',".$parent_id.",".$_POST['rank'].")"; - $query.= ';'; - mysql_query( $query ); - synchronize_all_users(); + $query.= " ('".$_POST['virtual_name']."',".$parent_id.",".$_POST['rank'].");"; + mysql_query( $query ); + + // And last we update the uppercats + $query = 'SELECT MAX(id) FROM '.CATEGORIES_TABLE.';'; + $my_id = array_pop(mysql_fetch_array( mysql_query( $query ))); + $query = 'UPDATE '.CATEGORIES_TABLE.' SET uppercats = "'; + if (!empty($parent_uppercats)) + { + $query.= $parent_uppercats.','; + } + $query.= $my_id; + $query.= '" WHERE id = '.$my_id.';'; + mysql_query( $query ); } } @@ -223,12 +242,12 @@ while (list ($id,$category) = each($categories)) if ($category['visible'] == 'false') { $category_image = '<img src="'.PHPWG_ROOT_PATH.'template/'.$user['template'].'/admin/images/icon_folder_lock.gif" - width="46" height="25" alt="'.$lang['cat_private'].'" title="'.$lang['cat_private'].'"/>'; + alt="'.$lang['cat_private'].'" title="'.$lang['cat_private'].'"/>'; } elseif (empty($category['dir'])) { $category_image = '<img src="'.PHPWG_ROOT_PATH.'template/'.$user['template'].'/admin/images/icon_folder_link.gif" - width="46" height="25" alt="'.$lang['cat_virtual'].'" title="'.$lang['cat_virtual'].'"/>'; + alt="'.$lang['cat_virtual'].'" title="'.$lang['cat_virtual'].'"/>'; } else { diff --git a/admin/include/functions.php b/admin/include/functions.php index 54aa938f0..203ef37cf 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -555,164 +555,6 @@ function display_categories( $categories, $indent, } /** - * Complete plain structure of the gallery - * - * Returns the plain structure (one level array) of the gallery. In the - * returned array, each element is an array with jeys 'id' and - * 'id_uppercat'. The function also fills the array $page['subcats'] which - * associate (category_id => array of sub-categories id). - * - * @param bool $use_name - * @return array - */ -function get_plain_structure( $use_name = false ) -{ - global $page; - - $plain_structure = array(); - - $query = 'SELECT id,id_uppercat'; - if ( $use_name ) $query.= ',name'; - $query.= ' FROM '.CATEGORIES_TABLE; - $query.= ' ORDER BY id_uppercat ASC, rank ASC'; - $query.= ';'; - - $subcats = array(); - $id_uppercat = 'NULL'; - - $result = mysql_query( $query ); - while ( $row = mysql_fetch_array( $result ) ) - { - $plain_structure[$row['id']]['id'] = $row['id']; - if ( !isset( $row['id_uppercat'] ) ) $row['id_uppercat'] = 'NULL'; - $plain_structure[$row['id']]['id_uppercat'] = $row['id_uppercat']; - if ( $use_name ) $plain_structure[$row['id']]['name'] = $row['name']; - // subcats list - if ( $row['id_uppercat'] != $id_uppercat ) - { - $page['subcats'][$id_uppercat] = $subcats; - - $subcats = array(); - $id_uppercat = $row['id_uppercat']; - } - array_push( $subcats, $row['id'] ); - } - mysql_free_result( $result ); - - $page['subcats'][$id_uppercat] = $subcats; - - return $plain_structure; -} - -/** - * get N levels array representing structure under the given category - * - * create_structure returns the N levels array representing structure under - * the given gategory id. It also updates the - * $page['plain_structure'][id]['all_subcats_id'] and - * $page['plain_structure'][id]['direct_subcats_ids'] for each sub category. - * - * @param int $id_uppercat - * @return array - */ -function create_structure( $id_uppercat ) -{ - global $page; - - $structure = array(); - $ids = get_subcats_ids( $id_uppercat ); - foreach ( $ids as $id ) { - $category = $page['plain_structure'][$id]; - - $category['subcats'] = create_structure( $id ); - - $page['plain_structure'][$id]['all_subcats_ids'] = - get_all_subcats_ids( $id ); - - $page['plain_structure'][$id]['direct_subcats_ids'] = - get_subcats_ids( $id ); - - array_push( $structure, $category ); - } - return $structure; -} - -/** - * returns direct sub-categories ids - * - * Returns an array containing all the direct sub-categories ids of the - * given category. It uses the $page['subcats'] global array. - * - * @param int $id_uppercat - * @return array - */ -function get_subcats_ids( $id_uppercat ) -{ - global $page; - - if ( $id_uppercat == '' ) $id_uppercat = 'NULL'; - - if ( isset( $page['subcats'][$id_uppercat] ) ) - return $page['subcats'][$id_uppercat]; - else - return array(); -} - -/** - * returns all sub-categories ids, not only direct ones - * - * Returns an array containing all the sub-categories ids of the given - * category, not only direct ones. This function is recursive. - * - * @param int $category_id - * @return array - */ -function get_all_subcats_ids( $category_id ) -{ - $ids = array(); - - $subcats = get_subcats_ids( $category_id ); - $ids = array_merge( $ids, $subcats ); - foreach ( $subcats as $subcat ) { - // recursive call - $sub_subcats = get_all_subcats_ids( $subcat ); - $ids = array_merge( $ids, $sub_subcats ); - } - return array_unique( $ids ); -} - -/** - * updates the column categories.uppercats - * - * @param int $category_id - * @return void - */ -function update_uppercats( $category_id ) -{ - global $page; - - $final_id = $category_id; - $uppercats = array(); - - array_push( $uppercats, $category_id ); - $uppercat = $page['plain_structure'][$category_id]['id_uppercat']; - - while ( $uppercat != 'NULL' ) - { - array_push( $uppercats, $uppercat ); - $category_id = $page['plain_structure'][$category_id]['id_uppercat']; - $uppercat = $page['plain_structure'][$category_id]['id_uppercat']; - } - - $string_uppercats = implode( ',', array_reverse( $uppercats ) ); - $query = 'UPDATE '.CATEGORIES_TABLE; - $query.= ' SET uppercats = '."'".$string_uppercats."'"; - $query.= ' WHERE id = '.$final_id; - $query.= ';'; - mysql_query( $query ); -} - -/** * returns an array with the ids of the restricted categories for the user * * Returns an array with the ids of the restricted categories for the diff --git a/admin/infos_images.php b/admin/infos_images.php index c0da67aa3..0cbfb54eb 100644 --- a/admin/infos_images.php +++ b/admin/infos_images.php @@ -25,8 +25,11 @@ // | USA. | // +-----------------------------------------------------------------------+ -include_once( './admin/include/isadmin.inc.php' ); -include_once( './template/'.$user['template'].'/htmlfunctions.inc.php' ); +if( !defined("PHPWG_ROOT_PATH") ) +{ + die ("Hacking attempt!"); +} +include_once( PHPWG_ROOT_PATH.'admin/include/isadmin.inc.php' ); //-------------------------------------------------------------- initialization $page['nb_image_page'] = 5; |