set_id('photos_add'); $tabsheet->select('url_uploader'); $tabsheet->assign(); $page['active_menu'] = get_active_menu('photo'); // +-----------------------------------------------------------------------+ // | process form | // +-----------------------------------------------------------------------+ if (isset($_GET['processed'])) { $category_id = $_POST['category']; $image_ids = array(); $page['thumbnails'] = array(); // SINGLE UPLOAD if ($_GET['upload_mode'] == 'single') { $_POST = array_map('trim', $_POST); // check empty url if (empty($_POST['file_url'])) { $page['errors'][] = l10n('File URL is empty'); } // check remote url else if (!url_is_remote($_POST['file_url'])) { $page['errors'][] = l10n('Invalid file URL'); } // check file extension else if (!in_array(strtolower(get_extension($_POST['file_url'])), $allowed_extensions)) { $page['errors'][] = l10n('Invalid file type'); } // continue... else { $temp_filename = $conf['data_location'].basename($_POST['file_url']); $file = fopen($temp_filename, 'w+'); $result = fetchRemote($_POST['file_url'], $file); fclose($file); // download failed ? if (!$result) { @unlink($temp_filename); $page['errors'][] = l10n('Unable to download file'); } // check mime-type else if (!in_array(get_mime($temp_filename, $allowed_mimes[0]), $allowed_mimes)) { @unlink($temp_filename); $page['errors'][] = l10n('Invalid file type'); } // continue... else { $image_id = add_uploaded_file( $temp_filename, basename($temp_filename), array($category_id), $_POST['level'] ); $updates = array(); if (!empty($_POST['photo_name'])) { $updates['name'] = $_POST['photo_name']; } if (isset($_POST['url_in_comment'])) { $url = parse_url($_POST['file_url']); $url = $url['scheme'].'://'.$url['host']; $updates['comment'] = ''. $url .''; } single_update( IMAGES_TABLE, $updates, array('id' => $image_id) ); $image_ids = array($image_id); } } } // MULTIPLE UPLOAD else if ($_GET['upload_mode'] == 'multiple') { if (isset($_POST['onUploadError']) and is_array($_POST['onUploadError']) and count($_POST['onUploadError']) > 0) { $page['errors'][] = l10n('%d photos not imported', count($_POST['onUploadError'])); foreach ($_POST['onUploadError'] as $error) { $page['errors'][] = $error; } } if (isset($_POST['imageIds']) and is_array($_POST['imageIds']) and count($_POST['imageIds']) > 0) { $image_ids = $_POST['imageIds']; } } // DISPLAY RESULTS foreach ($image_ids as $image_id) { $query = ' SELECT id, file, path FROM '.IMAGES_TABLE.' WHERE id = '.$image_id.' ;'; $image_infos = pwg_db_fetch_assoc(pwg_query($query)); $thumbnail = array( 'file' => $image_infos['file'], 'src' => DerivativeImage::thumb_url($image_infos), 'title' => get_name_from_file($image_infos['file']), 'link' => get_root_url().'admin.php?page=photo-'.$image_id.'&cat_id='.$category_id, ); $page['thumbnails'][] = $thumbnail; } if (!empty($page['thumbnails'])) { // nb uploaded $page['infos'][] = l10n('%d photos uploaded', count($page['thumbnails'])); // level if (0 != $_POST['level']) { $page['infos'][] = l10n('Privacy level set to "%s"', l10n(sprintf('Level %d', $_POST['level']))); } // new category count $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=album-'); $page['infos'][] = l10n('Album "%s" now contains %d photos', ''.$category_name.'', $count); $page['batch_link'] = PHOTOS_ADD_BASE_URL.'&batch='.implode(',', $image_ids); } } // +-----------------------------------------------------------------------+ // | prepare form | // +-----------------------------------------------------------------------+ include(PHPWG_ROOT_PATH.'admin/include/photos_add_direct_prepare.inc.php'); // upload mode $upload_modes = array('single', 'multiple'); $upload_mode = isset($conf['url_uploader_mode']) ? $conf['url_uploader_mode'] : 'single'; if (isset($_GET['upload_mode']) and $_GET['upload_mode']!=$upload_mode and in_array($_GET['upload_mode'], $upload_modes)) { $upload_mode = $_GET['upload_mode']; conf_update_param('url_uploader_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' => URLUPLOADER_ADMIN.'&upload_mode='.$upload_mode.'&processed=1', 'switch_url' => URLUPLOADER_ADMIN.'&upload_mode='.$upload_switch, 'another_upload_link' => URLUPLOADER_ADMIN.'&upload_mode='.$upload_mode, )); $template->set_filename('urluploader_content', realpath(URLUPLOADER_PATH . 'template/photos_add.tpl')); // template vars $template->assign(array( 'URLUPLOADER_PATH' => get_root_url() . URLUPLOADER_PATH, 'URLUPLOADER_ADMIN' => URLUPLOADER_ADMIN, )); // send page content $template->assign_var_from_handle('ADMIN_CONTENT', 'urluploader_content');