diff options
author | plegall <plg@piwigo.org> | 2012-02-01 23:03:35 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2012-02-01 23:03:35 +0000 |
commit | ae6a63bee0d834888c3b30b5bcc4df2216173c75 (patch) | |
tree | 3a1500e37d9fac65b9dd60bb76fe8c59cceae17e /admin/cat_modify.php | |
parent | 9c4a478b755f01f18b25a209514826632cd6fed4 (diff) |
feature 2561: redesign on album administration screen.
* only one form on the screen and several tabs
* simpler URL pattern : page=album-123-properties / page=album-123-sort_order
/ page=album-123-permissions
* action to associate all photos of an album to another (new) virtual album
was removed. This can be easily done with the new Batch Manager
* notification by email on an album still has to be moved on a new dedicated tab
* action icons (jump to album, manage photos, manage sub-albums, delete album...)
replaced by plain text links
git-svn-id: http://piwigo.org/svn/trunk@13013 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to 'admin/cat_modify.php')
-rw-r--r-- | admin/cat_modify.php | 266 |
1 files changed, 44 insertions, 222 deletions
diff --git a/admin/cat_modify.php b/admin/cat_modify.php index 762834af8..a6399b4ee 100644 --- a/admin/cat_modify.php +++ b/admin/cat_modify.php @@ -163,7 +163,10 @@ if (isset($_POST['submit'])) move_categories( array($_GET['cat_id']), $_POST['parent'] ); } - array_push($page['infos'], l10n('Album updated successfully')); + // we redirect to hide/show the "permissions" tab if the category status + // has changed + $_SESSION['page_infos'] = array(l10n('Album updated successfully')); + redirect($admin_album_base_url); } elseif (isset($_POST['set_random_representant'])) { @@ -178,75 +181,7 @@ UPDATE '.CATEGORIES_TABLE.' ;'; pwg_query($query); } -elseif (isset($_POST['submitAdd'])) -{ - $output_create = create_virtual_category( - $_POST['virtual_name'], - (0 == $_POST['parent'] ? null : $_POST['parent']) - ); - - if (isset($output_create['error'])) - { - array_push($page['errors'], $output_create['error']); - } - else - { - // Virtual album creation succeeded - // - // Add the information in the information list - array_push($page['infos'], $output_create['info']); - - // Link the new category to the current category - associate_categories_to_categories( - array($_GET['cat_id']), - array($output_create['id']) - ); - - // information - array_push( - $page['infos'], - sprintf( - l10n('Album photos associated to the following albums: %s'), - '<ul><li>' - .get_cat_display_name_from_id($output_create['id']) - .'</li></ul>' - ) - ); - } -} -elseif (isset($_POST['submitDestinations']) - and isset($_POST['destinations']) - and count($_POST['destinations']) > 0) -{ - associate_categories_to_categories( - array($_GET['cat_id']), - $_POST['destinations'] - ); - $category_names = array(); - foreach ($_POST['destinations'] as $category_id) - { - array_push( - $category_names, - get_cat_display_name_from_id($category_id) - ); - } - - array_push( - $page['infos'], - sprintf( - l10n('Album photos associated to the following albums: %s'), - '<ul><li>'.implode('</li><li>', $category_names).'</li></ul>' - ) - ); -} - -$query = ' -SELECT * - FROM '.CATEGORIES_TABLE.' - WHERE id = '.$_GET['cat_id'].' -;'; -$category = pwg_db_fetch_assoc( pwg_query( $query ) ); // nullable fields foreach (array('comment','dir','site_id', 'id_uppercat') as $nullable) { @@ -268,13 +203,13 @@ $category['has_images'] = pwg_db_num_rows($result)>0 ? true : false; // Navigation path $navigation = get_cat_display_name_cache( $category['uppercats'], - get_root_url().'admin.php?page=cat_modify&cat_id=' + get_root_url().'admin.php?page=album-' ); -$form_action = get_root_url().'admin.php?page=cat_modify&cat_id='.$_GET['cat_id']; +$form_action = $admin_album_base_url.'-properties'; //----------------------------------------------------- template initialization -$template->set_filename( 'categories', 'cat_modify.tpl'); +$template->set_filename( 'album_properties', 'cat_modify.tpl'); $base_url = get_root_url().'admin.php?page='; $cat_list_url = $base_url.'cat_list'; @@ -303,8 +238,6 @@ $template->assign( ) ), - 'MAIL_CONTENT' => empty($_POST['mail_content']) - ? '' : stripslashes($_POST['mail_content']), 'U_CHILDREN' => $cat_list_url.'&parent_id='.$category['id'], 'U_HELP' => get_root_url().'admin/popuphelp.php?page=cat_modify', @@ -317,14 +250,6 @@ if ($conf['activate_comments']) $template->assign('CAT_COMMENTABLE', boolean_to_string($category['commentable'])); } - -if ('private' == $category['status']) -{ - $template->assign( 'U_MANAGE_PERMISSIONS', - $base_url.'cat_perm&cat='.$category['id'] - ); -} - // manage album elements link if ($category['has_images']) { @@ -332,8 +257,43 @@ if ($category['has_images']) 'U_MANAGE_ELEMENTS', $base_url.'batch_manager&cat='.$category['id'] ); + + $query = ' +SELECT + COUNT(image_id), + MIN(DATE(date_available)), + MAX(DATE(date_available)) + FROM '.IMAGES_TABLE.' + JOIN '.IMAGE_CATEGORY_TABLE.' ON image_id = id + WHERE category_id = '.$category['id'].' +;'; + list($image_count, $min_date, $max_date) = pwg_db_fetch_row(pwg_query($query)); + + if ($min_date == $max_date) + { + $intro = sprintf( + l10n('This album contains %d photos, added on %s.'), + $image_count, + format_date($min_date) + ); + } + else + { + $intro = sprintf( + l10n('This album contains %d photos, added between %s and %s.'), + $image_count, + format_date($min_date), + format_date($max_date) + ); + } +} +else +{ + $intro = l10n('This album contains no photo.'); } +$template->assign('INTRO', $intro); + $template->assign( 'U_MANAGE_RANKS', $base_url.'element_set_ranks&cat_id='.$category['id'] @@ -352,9 +312,7 @@ else $category['cat_full_dir'] = get_complete_dir($_GET['cat_id']); $template->assign( array( - 'CAT_FULL_DIR' => preg_replace('/\/$/', - '', - $category['cat_full_dir'] ) + 'CAT_FULL_DIR' => preg_replace('/\/$/', '', $category['cat_full_dir']) ) ); @@ -430,144 +388,8 @@ SELECT id,name,uppercats,global_rank ); } - -// create virtual in parent and link -$query = ' -SELECT id,name,uppercats,global_rank - FROM '.CATEGORIES_TABLE.' -;'; -display_select_cat_wrapper( - $query, - array(), - 'create_new_parent_options' - ); - - -// destination categories -$query = ' -SELECT id,name,uppercats,global_rank - FROM '.CATEGORIES_TABLE.' - WHERE id != '.$category['id'].' -;'; -display_select_cat_wrapper( - $query, - array(), - 'category_destination_options' - ); - -// info by email to an access granted group of category informations -if (isset($_POST['submitEmail']) and !empty($_POST['group'])) -{ - set_make_full_url(); - - /* TODO: if $category['representative_picture_id'] - is empty find child representative_picture_id */ - if (!empty($category['representative_picture_id'])) - { - $query = ' -SELECT id, file, path, representative_ext - FROM '.IMAGES_TABLE.' - WHERE id = '.$category['representative_picture_id'].' -;'; - - $result = pwg_query($query); - if (pwg_db_num_rows($result) > 0) - { - $element = pwg_db_fetch_assoc($result); - - $img_url = '<a href="'. - make_picture_url(array( - 'image_id' => $element['id'], - 'image_file' => $element['file'], - 'category' => $category - )) - .'" class="thumblnk"><img src="'.DerivativeImage::thumb_url($element).'"></a>'; - } - } - - if (!isset($img_url)) - { - $img_url = ''; - } - - // TODO Mettre un array pour traduction subjet - pwg_mail_group( - $_POST['group'], - get_str_email_format(true), /* TODO add a checkbox in order to choose format*/ - get_l10n_args('[%s] Visit album %s', - array($conf['gallery_title'], $category['name'])), - 'cat_group_info', - array - ( - 'IMG_URL' => $img_url, - 'CAT_NAME' => $category['name'], - 'LINK' => make_index_url( - array( - 'category' => array( - 'id' => $category['id'], - 'name' => $category['name'], - 'permalink' => $category['permalink'] - ))), - 'CPL_CONTENT' => empty($_POST['mail_content']) - ? '' : stripslashes($_POST['mail_content']) - ), - '' /* TODO Add listbox in order to choose Language selected */); - - unset_make_full_url(); - - $query = ' -SELECT - name - FROM '.GROUPS_TABLE.' - WHERE id = '.$_POST['group'].' -;'; - list($group_name) = pwg_db_fetch_row(pwg_query($query)); - - array_push( - $page['infos'], - sprintf( - l10n('An information email was sent to group "%s"'), - $group_name - ) - ); -} - -if ('private' == $category['status']) -{ - $query = ' -SELECT - group_id - FROM '.GROUP_ACCESS_TABLE.' - WHERE cat_id = '.$category['id'].' -;'; -} -else -{ - $query = ' -SELECT - id AS group_id - FROM '.GROUPS_TABLE.' -;'; -} -$group_ids = array_from_query($query, 'group_id'); - -if (count($group_ids) > 0) -{ - $query = ' -SELECT - id, - name - FROM '.GROUPS_TABLE.' - WHERE id IN ('.implode(',', $group_ids).') - ORDER BY name ASC -;'; - $template->assign('group_mail_options', - simple_hash_from_query($query, 'id', 'name') - ); -} - trigger_action('loc_end_cat_modify'); //----------------------------------------------------------- sending html code -$template->assign_var_from_handle('ADMIN_CONTENT', 'categories'); +$template->assign_var_from_handle('ADMIN_CONTENT', 'album_properties'); ?> |