From 69ce2185750112d6b151459e0c50fdf792b5f933 Mon Sep 17 00:00:00 2001 From: plegall Date: Tue, 18 Jan 2011 14:03:00 +0000 Subject: bug fixed: no more categories.uploadable column when creating a new category split the admin/photos_add_direct.php script into admin/include/photos_add_direct_prepare.php (prepare the upload form) + admin/include/photos_add_direct_process.inc.php (process the submitted form) : it makes the upload form backend easier to reuse in the future Community plugin. git-svn-id: http://piwigo.org/svn/trunk@8734 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/include/functions.php | 4 +- admin/include/photos_add_direct_prepare.inc.php | 222 +++++++++++ admin/include/photos_add_direct_process.inc.php | 320 ++++++++++++++++ admin/photos_add_direct.php | 488 +----------------------- 4 files changed, 549 insertions(+), 485 deletions(-) create mode 100644 admin/include/photos_add_direct_prepare.inc.php create mode 100644 admin/include/photos_add_direct_process.inc.php diff --git a/admin/include/functions.php b/admin/include/functions.php index 0711fd5f1..6ad6bc7fe 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -1225,7 +1225,6 @@ SELECT MAX(rank) 'name' => $category_name, 'rank' => ++$current_rank, 'commentable' => boolean_to_string($conf['newcat_default_commentable']), - 'uploadable' => 'false', ); if ($parent_id != 'NULL') @@ -1276,7 +1275,7 @@ SELECT id, uppercats, global_rank, visible, status CATEGORIES_TABLE, array( 'site_id', 'name', 'id_uppercat', 'rank', 'commentable', - 'uploadable', 'visible', 'status', 'global_rank', + 'visible', 'status', 'global_rank', ), array($insert) ); @@ -1984,7 +1983,6 @@ function get_active_menu($menu_page) switch ($menu_page) { case 'photos_add': - case 'upload': case 'rating': case 'tags': case 'picture_modify': diff --git a/admin/include/photos_add_direct_prepare.inc.php b/admin/include/photos_add_direct_prepare.inc.php new file mode 100644 index 000000000..e834468f4 --- /dev/null +++ b/admin/include/photos_add_direct_prepare.inc.php @@ -0,0 +1,222 @@ +assign( + array( + 'thumbnails' => $page['thumbnails'], + ) + ); + + // only display the batch link if we have more than 1 photo + if (count($page['thumbnails']) > 1) + { + $template->assign( + array( + 'batch_link' => $page['batch_link'], + 'batch_label' => sprintf( + l10n('Manage this set of %d photos'), + count($page['thumbnails']) + ), + ) + ); + } +} + +// +-----------------------------------------------------------------------+ +// | Photo selection | +// +-----------------------------------------------------------------------+ + +$uploadify_path = PHPWG_ROOT_PATH.'admin/include/uploadify'; + +$template->assign( + array( + 'F_ADD_ACTION'=> PHOTOS_ADD_BASE_URL, + 'uploadify_path' => $uploadify_path, + 'upload_max_filesize' => min( + get_ini_size('upload_max_filesize'), + get_ini_size('post_max_size') + ), + ) + ); + +$upload_modes = array('html', 'multiple'); +$upload_mode = isset($conf['upload_mode']) ? $conf['upload_mode'] : 'multiple'; + +if (isset($_GET['upload_mode']) and in_array($_GET['upload_mode'], $upload_modes)) +{ + $upload_mode = $_GET['upload_mode']; + conf_update_param('upload_mode', $upload_mode); +} + +// what is the upload switch mode +$index_of_upload_mode = array_flip($upload_modes); +$upload_mode_index = $index_of_upload_mode[$upload_mode]; +$upload_switch = $upload_modes[ ($upload_mode_index + 1) % 2 ]; + +$template->assign( + array( + 'upload_mode' => $upload_mode, + 'form_action' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_mode.'&processed=1', + 'switch_url' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_switch, + 'upload_id' => md5(rand()), + 'session_id' => session_id(), + 'pwg_token' => get_pwg_token(), + 'another_upload_link' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_mode, + ) + ); + +$template->append( + 'head_elements', + ''."\n" + ); + +// +-----------------------------------------------------------------------+ +// | Categories | +// +-----------------------------------------------------------------------+ + +// we need to know the category in which the last photo was added +$selected_category = array(); +$selected_parent = array(); + +$query = ' +SELECT + category_id, + id_uppercat + FROM '.IMAGES_TABLE.' AS i + JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON image_id = i.id + JOIN '.CATEGORIES_TABLE.' AS c ON category_id = c.id + ORDER BY i.id DESC + LIMIT 1 +;'; +$result = pwg_query($query); +if (pwg_db_num_rows($result) > 0) +{ + $row = pwg_db_fetch_assoc($result); + + $selected_category = array($row['category_id']); + + if (!empty($row['id_uppercat'])) + { + $selected_parent = array($row['id_uppercat']); + } +} + +// existing album +$query = ' +SELECT id,name,uppercats,global_rank + FROM '.CATEGORIES_TABLE.' +;'; + +display_select_cat_wrapper( + $query, + $selected_category, + 'category_options' + ); + +// new category +display_select_cat_wrapper( + $query, + $selected_parent, + 'category_parent_options' + ); + + +// image level options +$selected_level = isset($_POST['level']) ? $_POST['level'] : 0; +$template->assign( + array( + 'level_options'=> get_privacy_level_options(), + 'level_options_selected' => array($selected_level) + ) + ); + +// +-----------------------------------------------------------------------+ +// | Setup errors/warnings | +// +-----------------------------------------------------------------------+ + +// Errors +$setup_errors = array(); + +$error_message = ready_for_upload_message(); +if (!empty($error_message)) +{ + array_push($setup_errors, $error_message); +} + +if (!function_exists('gd_info')) +{ + array_push($setup_errors, l10n('GD library is missing')); +} + +$template->assign( + array( + 'setup_errors'=> $setup_errors, + ) + ); + +// Warnings +if (isset($_GET['hide_warnings'])) +{ + $_SESSION['upload_hide_warnings'] = true; +} + +if (!isset($_SESSION['upload_hide_warnings'])) +{ + $setup_warnings = array(); + + if ($conf['use_exif'] and !function_exists('read_exif_data')) + { + array_push( + $setup_warnings, + l10n('Exif extension not available, admin should disable exif use') + ); + } + + if (get_ini_size('upload_max_filesize') > get_ini_size('post_max_size')) + { + array_push( + $setup_warnings, + sprintf( + l10n('In your php.ini file, the upload_max_filesize (%sB) is bigger than post_max_size (%sB), you should change this setting'), + get_ini_size('upload_max_filesize', false), + get_ini_size('post_max_size', false) + ) + ); + } + + $template->assign( + array( + 'setup_warnings' => $setup_warnings, + 'hide_warnings_link' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_mode.'&hide_warnings=1' + ) + ); +} + +?> \ No newline at end of file diff --git a/admin/include/photos_add_direct_process.inc.php b/admin/include/photos_add_direct_process.inc.php new file mode 100644 index 000000000..27cb0b9a1 --- /dev/null +++ b/admin/include/photos_add_direct_process.inc.php @@ -0,0 +1,320 @@ +POST'."\n"; print_r($_POST); echo ''; +// echo '
FILES'."\n"; print_r($_FILES); echo '
'; +// echo '
SESSION'."\n"; print_r($_SESSION); echo '
'; +// exit(); + + // sometimes, you have submitted the form but you have nothing in $_POST + // and $_FILES. This may happen when you have an HTML upload and you + // exceeded the post_max_size (but not the upload_max_size) + if (!isset($_POST['submit_upload'])) + { + array_push( + $page['errors'], + sprintf( + l10n('The uploaded files exceed the post_max_size directive in php.ini: %sB'), + ini_get('post_max_size') + ) + ); + } + + $category_id = null; + if (!isset($_POST['category_type'])) + { + // nothing to do, we certainly have the post_max_size issue + } + elseif ('existing' == $_POST['category_type']) + { + $category_id = $_POST['category']; + } + elseif ('new' == $_POST['category_type']) + { + $output_create = create_virtual_category( + $_POST['category_name'], + (0 == $_POST['category_parent'] ? null : $_POST['category_parent']) + ); + + $category_id = $output_create['id']; + + if (isset($output_create['error'])) + { + array_push($page['errors'], $output_create['error']); + } + else + { + $category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=cat_modify&cat_id='); + // information + array_push( + $page['infos'], + sprintf( + l10n('Album "%s" has been added'), + ''.$category_name.'' + ) + ); + // TODO: add the onclick="window.open(this.href); return false;" + // attribute with jQuery on upload.tpl side for href containing + // "cat_modify" + } + } + + $image_ids = array(); + + if (isset($_FILES) and !empty($_FILES['image_upload'])) + { + $starttime = get_moment(); + + foreach ($_FILES['image_upload']['error'] as $idx => $error) + { + if (UPLOAD_ERR_OK == $error) + { + $images_to_add = array(); + + $extension = pathinfo($_FILES['image_upload']['name'][$idx], PATHINFO_EXTENSION); + if ('zip' == strtolower($extension)) + { + $upload_dir = $conf['upload_dir'].'/buffer'; + prepare_directory($upload_dir); + + $temporary_archive_name = date('YmdHis').'-'.generate_key(10); + $archive_path = $upload_dir.'/'.$temporary_archive_name.'.zip'; + + move_uploaded_file( + $_FILES['image_upload']['tmp_name'][$idx], + $archive_path + ); + + define('PCLZIP_TEMPORARY_DIR', $upload_dir.'/'); + include(PHPWG_ROOT_PATH.'admin/include/pclzip.lib.php'); + $zip = new PclZip($archive_path); + if ($list = $zip->listContent()) + { + $indexes_to_extract = array(); + + foreach ($list as $node) + { + if (1 == $node['folder']) + { + continue; + } + + if (is_valid_image_extension(pathinfo($node['filename'], PATHINFO_EXTENSION))) + { + array_push($indexes_to_extract, $node['index']); + + array_push( + $images_to_add, + array( + 'source_filepath' => $upload_dir.'/'.$temporary_archive_name.'/'.$node['filename'], + 'original_filename' => basename($node['filename']), + ) + ); + } + } + + if (count($indexes_to_extract) > 0) + { + $zip->extract( + PCLZIP_OPT_PATH, $upload_dir.'/'.$temporary_archive_name, + PCLZIP_OPT_BY_INDEX, $indexes_to_extract, + PCLZIP_OPT_ADD_TEMP_FILE_ON + ); + } + } + } + elseif (is_valid_image_extension($extension)) + { + array_push( + $images_to_add, + array( + 'source_filepath' => $_FILES['image_upload']['tmp_name'][$idx], + 'original_filename' => $_FILES['image_upload']['name'][$idx], + ) + ); + } + + foreach ($images_to_add as $image_to_add) + { + $image_id = add_uploaded_file( + $image_to_add['source_filepath'], + $image_to_add['original_filename'], + array($category_id), + $_POST['level'] + ); + + array_push($image_ids, $image_id); + + // TODO: if $image_id is not an integer, something went wrong + } + } + else + { + $error_message = file_upload_error_message($error); + + array_push( + $page['errors'], + sprintf( + l10n('Error on file "%s" : %s'), + $_FILES['image_upload']['name'][$idx], + $error_message + ) + ); + } + } + + $endtime = get_moment(); + $elapsed = ($endtime - $starttime) * 1000; + // printf('%.2f ms', $elapsed); + + } // if (!empty($_FILES)) + + if (isset($_POST['upload_id'])) + { + // we're on a multiple upload, with uploadify and so on + if (isset($_SESSION['uploads_error'][ $_POST['upload_id'] ])) + { + foreach ($_SESSION['uploads_error'][ $_POST['upload_id'] ] as $error) + { + array_push($page['errors'], $error); + } + } + + if (isset($_SESSION['uploads'][ $_POST['upload_id'] ])) + { + $image_ids = $_SESSION['uploads'][ $_POST['upload_id'] ]; + + associate_images_to_categories( + $image_ids, + array($category_id) + ); + + $query = ' +UPDATE '.IMAGES_TABLE.' + SET level = '.$_POST['level'].' + WHERE id IN ('.implode(', ', $image_ids).') +;'; + pwg_query($query); + + invalidate_user_cache(); + } + } + + $page['thumbnails'] = array(); + foreach ($image_ids as $image_id) + { + // we could return the list of properties from the add_uploaded_file + // function, but I like the "double check". And it costs nothing + // compared to the upload process. + $thumbnail = array(); + + $query = ' +SELECT + file, + path, + tn_ext + FROM '.IMAGES_TABLE.' + WHERE id = '.$image_id.' +;'; + $image_infos = pwg_db_fetch_assoc(pwg_query($query)); + + $thumbnail['file'] = $image_infos['file']; + + $thumbnail['src'] = get_thumbnail_location( + array( + 'path' => $image_infos['path'], + 'tn_ext' => $image_infos['tn_ext'], + ) + ); + + // TODO: when implementing this plugin in Piwigo core, we should have + // a function get_image_name($name, $file) (if name is null, then + // compute a temporary name from filename) that would be also used in + // picture.php. UPDATE: in fact, "get_name_from_file($file)" already + // exists and is used twice (batch_manager_unit + comments, but not in + // picture.php I don't know why) with the same pattern if + // (empty($name)) {$name = get_name_from_file($file)}, a clean + // function get_image_name($name, $file) would be better + $thumbnail['title'] = get_name_from_file($image_infos['file']); + + $thumbnail['link'] = PHPWG_ROOT_PATH.'admin.php?page=picture_modify' + .'&image_id='.$image_id + .'&cat_id='.$category_id + ; + + array_push($page['thumbnails'], $thumbnail); + } + + if (!empty($page['thumbnails'])) + { + array_push( + $page['infos'], + sprintf( + l10n('%d photos uploaded'), + count($page['thumbnails']) + ) + ); + + if (0 != $_POST['level']) + { + array_push( + $page['infos'], + sprintf( + l10n('Privacy level set to "%s"'), + l10n( + sprintf('Level %d', $_POST['level']) + ) + ) + ); + } + + if ('existing' == $_POST['category_type']) + { + $query = ' +SELECT + COUNT(*) + FROM '.IMAGE_CATEGORY_TABLE.' + WHERE category_id = '.$category_id.' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + $category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=cat_modify&cat_id='); + + // information + array_push( + $page['infos'], + sprintf( + l10n('Album "%s" now contains %d photos'), + ''.$category_name.'', + $count + ) + ); + } + + $page['batch_link'] = PHOTOS_ADD_BASE_URL.'&batch='.implode(',', $image_ids); + } +} + +?> \ No newline at end of file diff --git a/admin/photos_add_direct.php b/admin/photos_add_direct.php index b93b320ea..efa54cfc3 100644 --- a/admin/photos_add_direct.php +++ b/admin/photos_add_direct.php @@ -2,7 +2,9 @@ // +-----------------------------------------------------------------------+ // | Piwigo - a PHP based photo gallery | // +-----------------------------------------------------------------------+ -// | Copyright(C) 2010 Pierrick LE GALL http://piwigo.org | +// | Copyright(C) 2008-2011 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | // +-----------------------------------------------------------------------+ // | This program is free software; you can redistribute it and/or modify | // | it under the terms of the GNU General Public License as published by | @@ -62,491 +64,13 @@ DELETE FROM '.CADDIE_TABLE.' // | process form | // +-----------------------------------------------------------------------+ -if (isset($_GET['processed'])) -{ -// echo '
POST'."\n"; print_r($_POST); echo '
'; -// echo '
FILES'."\n"; print_r($_FILES); echo '
'; -// echo '
SESSION'."\n"; print_r($_SESSION); echo '
'; -// exit(); - - // sometimes, you have submitted the form but you have nothing in $_POST - // and $_FILES. This may happen when you have an HTML upload and you - // exceeded the post_max_size (but not the upload_max_size) - if (!isset($_POST['submit_upload'])) - { - array_push( - $page['errors'], - sprintf( - l10n('The uploaded files exceed the post_max_size directive in php.ini: %sB'), - ini_get('post_max_size') - ) - ); - } - - $category_id = null; - if (!isset($_POST['category_type'])) - { - // nothing to do, we certainly have the post_max_size issue - } - elseif ('existing' == $_POST['category_type']) - { - $category_id = $_POST['category']; - } - elseif ('new' == $_POST['category_type']) - { - $output_create = create_virtual_category( - $_POST['category_name'], - (0 == $_POST['category_parent'] ? null : $_POST['category_parent']) - ); - - $category_id = $output_create['id']; - - if (isset($output_create['error'])) - { - array_push($page['errors'], $output_create['error']); - } - else - { - $category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=cat_modify&cat_id='); - // information - array_push( - $page['infos'], - sprintf( - l10n('Album "%s" has been added'), - ''.$category_name.'' - ) - ); - // TODO: add the onclick="window.open(this.href); return false;" - // attribute with jQuery on upload.tpl side for href containing - // "cat_modify" - } - } - - $image_ids = array(); - - if (isset($_FILES) and !empty($_FILES['image_upload'])) - { - $starttime = get_moment(); - - foreach ($_FILES['image_upload']['error'] as $idx => $error) - { - if (UPLOAD_ERR_OK == $error) - { - $images_to_add = array(); - - $extension = pathinfo($_FILES['image_upload']['name'][$idx], PATHINFO_EXTENSION); - if ('zip' == strtolower($extension)) - { - $upload_dir = $conf['upload_dir'].'/buffer'; - prepare_directory($upload_dir); - - $temporary_archive_name = date('YmdHis').'-'.generate_key(10); - $archive_path = $upload_dir.'/'.$temporary_archive_name.'.zip'; - - move_uploaded_file( - $_FILES['image_upload']['tmp_name'][$idx], - $archive_path - ); - - define('PCLZIP_TEMPORARY_DIR', $upload_dir.'/'); - include(PHPWG_ROOT_PATH.'admin/include/pclzip.lib.php'); - $zip = new PclZip($archive_path); - if ($list = $zip->listContent()) - { - $indexes_to_extract = array(); - - foreach ($list as $node) - { - if (1 == $node['folder']) - { - continue; - } - - if (is_valid_image_extension(pathinfo($node['filename'], PATHINFO_EXTENSION))) - { - array_push($indexes_to_extract, $node['index']); - - array_push( - $images_to_add, - array( - 'source_filepath' => $upload_dir.'/'.$temporary_archive_name.'/'.$node['filename'], - 'original_filename' => basename($node['filename']), - ) - ); - } - } - - if (count($indexes_to_extract) > 0) - { - $zip->extract( - PCLZIP_OPT_PATH, $upload_dir.'/'.$temporary_archive_name, - PCLZIP_OPT_BY_INDEX, $indexes_to_extract, - PCLZIP_OPT_ADD_TEMP_FILE_ON - ); - } - } - } - elseif (is_valid_image_extension($extension)) - { - array_push( - $images_to_add, - array( - 'source_filepath' => $_FILES['image_upload']['tmp_name'][$idx], - 'original_filename' => $_FILES['image_upload']['name'][$idx], - ) - ); - } - - foreach ($images_to_add as $image_to_add) - { - $image_id = add_uploaded_file( - $image_to_add['source_filepath'], - $image_to_add['original_filename'], - array($category_id), - $_POST['level'] - ); - - array_push($image_ids, $image_id); - - // TODO: if $image_id is not an integer, something went wrong - } - } - else - { - $error_message = file_upload_error_message($error); - - array_push( - $page['errors'], - sprintf( - l10n('Error on file "%s" : %s'), - $_FILES['image_upload']['name'][$idx], - $error_message - ) - ); - } - } - - $endtime = get_moment(); - $elapsed = ($endtime - $starttime) * 1000; - // printf('%.2f ms', $elapsed); - - } // if (!empty($_FILES)) - - if (isset($_POST['upload_id'])) - { - // we're on a multiple upload, with uploadify and so on - if (isset($_SESSION['uploads_error'][ $_POST['upload_id'] ])) - { - foreach ($_SESSION['uploads_error'][ $_POST['upload_id'] ] as $error) - { - array_push($page['errors'], $error); - } - } - - if (isset($_SESSION['uploads'][ $_POST['upload_id'] ])) - { - $image_ids = $_SESSION['uploads'][ $_POST['upload_id'] ]; - - associate_images_to_categories( - $image_ids, - array($category_id) - ); - - $query = ' -UPDATE '.IMAGES_TABLE.' - SET level = '.$_POST['level'].' - WHERE id IN ('.implode(', ', $image_ids).') -;'; - pwg_query($query); - - invalidate_user_cache(); - } - } - - $page['thumbnails'] = array(); - foreach ($image_ids as $image_id) - { - // we could return the list of properties from the add_uploaded_file - // function, but I like the "double check". And it costs nothing - // compared to the upload process. - $thumbnail = array(); - - $query = ' -SELECT - file, - path, - tn_ext - FROM '.IMAGES_TABLE.' - WHERE id = '.$image_id.' -;'; - $image_infos = pwg_db_fetch_assoc(pwg_query($query)); - - $thumbnail['file'] = $image_infos['file']; - - $thumbnail['src'] = get_thumbnail_location( - array( - 'path' => $image_infos['path'], - 'tn_ext' => $image_infos['tn_ext'], - ) - ); - - // TODO: when implementing this plugin in Piwigo core, we should have - // a function get_image_name($name, $file) (if name is null, then - // compute a temporary name from filename) that would be also used in - // picture.php. UPDATE: in fact, "get_name_from_file($file)" already - // exists and is used twice (batch_manager_unit + comments, but not in - // picture.php I don't know why) with the same pattern if - // (empty($name)) {$name = get_name_from_file($file)}, a clean - // function get_image_name($name, $file) would be better - $thumbnail['title'] = get_name_from_file($image_infos['file']); - - $thumbnail['link'] = PHPWG_ROOT_PATH.'admin.php?page=picture_modify' - .'&image_id='.$image_id - .'&cat_id='.$category_id - ; - - array_push($page['thumbnails'], $thumbnail); - } - - if (!empty($page['thumbnails'])) - { - array_push( - $page['infos'], - sprintf( - l10n('%d photos uploaded'), - count($page['thumbnails']) - ) - ); - - if (0 != $_POST['level']) - { - array_push( - $page['infos'], - sprintf( - l10n('Privacy level set to "%s"'), - l10n( - sprintf('Level %d', $_POST['level']) - ) - ) - ); - } - - if ('existing' == $_POST['category_type']) - { - $query = ' -SELECT - COUNT(*) - FROM '.IMAGE_CATEGORY_TABLE.' - WHERE category_id = '.$category_id.' -;'; - list($count) = pwg_db_fetch_row(pwg_query($query)); - $category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=cat_modify&cat_id='); - - // information - array_push( - $page['infos'], - sprintf( - l10n('Album "%s" now contains %d photos'), - ''.$category_name.'', - $count - ) - ); - } - - $page['batch_link'] = PHOTOS_ADD_BASE_URL.'&batch='.implode(',', $image_ids); - } -} +include_once(PHPWG_ROOT_PATH.'admin/include/photos_add_direct_process.inc.php'); // +-----------------------------------------------------------------------+ -// | template init | +// | prepare form | // +-----------------------------------------------------------------------+ -$uploadify_path = PHPWG_ROOT_PATH.'admin/include/uploadify'; - -$template->assign( - array( - 'F_ADD_ACTION'=> PHOTOS_ADD_BASE_URL, - 'uploadify_path' => $uploadify_path, - 'upload_max_filesize' => min( - get_ini_size('upload_max_filesize'), - get_ini_size('post_max_size') - ), - ) - ); - -$upload_modes = array('html', 'multiple'); -$upload_mode = isset($conf['upload_mode']) ? $conf['upload_mode'] : 'multiple'; - -if (isset($_GET['upload_mode']) and in_array($_GET['upload_mode'], $upload_modes)) -{ - $upload_mode = $_GET['upload_mode']; - conf_update_param('upload_mode', $upload_mode); -} - -// what is the upload switch mode -$index_of_upload_mode = array_flip($upload_modes); -$upload_mode_index = $index_of_upload_mode[$upload_mode]; -$upload_switch = $upload_modes[ ($upload_mode_index + 1) % 2 ]; - -$template->assign( - array( - 'upload_mode' => $upload_mode, - 'form_action' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_mode.'&processed=1', - 'switch_url' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_switch, - 'upload_id' => md5(rand()), - 'session_id' => session_id(), - 'pwg_token' => get_pwg_token(), - 'another_upload_link' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_mode, - ) - ); - -$template->append( - 'head_elements', - ''."\n" - ); - -if (isset($page['thumbnails'])) -{ - $template->assign( - array( - 'thumbnails' => $page['thumbnails'], - ) - ); - - // only display the batch link if we have more than 1 photo - if (count($page['thumbnails']) > 1) - { - $template->assign( - array( - 'batch_link' => $page['batch_link'], - 'batch_label' => sprintf( - l10n('Manage this set of %d photos'), - count($page['thumbnails']) - ), - ) - ); - } -} - -// categories -// -// we need to know the category in which the last photo was added -$selected_category = array(); -$selected_parent = array(); - -$query = ' -SELECT - category_id, - id_uppercat - FROM '.IMAGES_TABLE.' AS i - JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON image_id = i.id - JOIN '.CATEGORIES_TABLE.' AS c ON category_id = c.id - ORDER BY i.id DESC - LIMIT 1 -;'; -$result = pwg_query($query); -if (pwg_db_num_rows($result) > 0) -{ - $row = pwg_db_fetch_assoc($result); - - $selected_category = array($row['category_id']); - - if (!empty($row['id_uppercat'])) - { - $selected_parent = array($row['id_uppercat']); - } -} - -// existing album -$query = ' -SELECT id,name,uppercats,global_rank - FROM '.CATEGORIES_TABLE.' -;'; - -display_select_cat_wrapper( - $query, - $selected_category, - 'category_options' - ); - -// new category -display_select_cat_wrapper( - $query, - $selected_parent, - 'category_parent_options' - ); - - -// image level options -$selected_level = isset($_POST['level']) ? $_POST['level'] : 0; -$template->assign( - array( - 'level_options'=> get_privacy_level_options(), - 'level_options_selected' => array($selected_level) - ) - ); - -// +-----------------------------------------------------------------------+ -// | setup errors/warnings | -// +-----------------------------------------------------------------------+ - -// Errors -$setup_errors = array(); - -$error_message = ready_for_upload_message(); -if (!empty($error_message)) -{ - array_push($setup_errors, $error_message); -} - -if (!function_exists('gd_info')) -{ - array_push($setup_errors, l10n('GD library is missing')); -} - -$template->assign( - array( - 'setup_errors'=> $setup_errors, - ) - ); - -// Warnings -if (isset($_GET['hide_warnings'])) -{ - $_SESSION['upload_hide_warnings'] = true; -} - -if (!isset($_SESSION['upload_hide_warnings'])) -{ - $setup_warnings = array(); - - if ($conf['use_exif'] and !function_exists('read_exif_data')) - { - array_push( - $setup_warnings, - l10n('Exif extension not available, admin should disable exif use') - ); - } - - if (get_ini_size('upload_max_filesize') > get_ini_size('post_max_size')) - { - array_push( - $setup_warnings, - sprintf( - l10n('In your php.ini file, the upload_max_filesize (%sB) is bigger than post_max_size (%sB), you should change this setting'), - get_ini_size('upload_max_filesize', false), - get_ini_size('post_max_size', false) - ) - ); - } - - $template->assign( - array( - 'setup_warnings' => $setup_warnings, - 'hide_warnings_link' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_mode.'&hide_warnings=1' - ) - ); -} +include_once(PHPWG_ROOT_PATH.'admin/include/photos_add_direct_prepare.inc.php'); // +-----------------------------------------------------------------------+ // | sending html code | -- cgit v1.2.3