function _wppa_page_upload() { global $target; global $wppa_revno; global $upload_album; // sanitize system $user = wppa_get_user(); wppa_sanitize_files(); // Sanitize album input if (isset($_POST['wppa-album'])) { $upload_album = strval(intval($_POST['wppa-album'])); } else { $upload_album = null; } // Update watermark settings for the user if new values supplied if (wppa_switch('watermark_on') && (wppa_switch('watermark_user') || current_user_can('wppa_settings'))) { // File if (isset($_POST['wppa-watermark-file'])) { // Sanitize input $watermark_file = $_POST['wppa-watermark-file']; if (stripos($watermark_file, '.png') !== false) { $watermark_file = sanitize_file_name($watermark_file); } else { if (!in_array($watermark_file, array('--- none ---', '---name---', '---filename---', '---description---', '---predef---'))) { $watermark_file = 'nil'; } } // Update setting update_option('wppa_watermark_file_' . $user, $watermark_file); } // Position if (isset($_POST['wppa-watermark-pos'])) { // Sanitize input $watermark_pos = $_POST['wppa-watermark-pos']; if (!in_array($watermark_pos, array('toplft', 'topcen', 'toprht', 'cenlft', 'cencen', 'cenrht', 'botlft', 'botcen', 'botrht'))) { $watermark_pos = 'nil'; } // Update setting update_option('wppa_watermark_pos_' . $user, $watermark_pos); } } // If from album admin set the last album if (isset($_REQUEST['wppa-set-album'])) { wppa_set_last_album(strval(intval($_REQUEST['wppa-set-album']))); } // Do the upload if requested // From BOX A if (isset($_POST['wppa-upload-multiple'])) { check_admin_referer('$wppa_nonce', WPPA_NONCE); wppa_upload_multiple(); if (isset($_POST['wppa-go-edit-multiple'])) { if (current_user_can('wppa_admin')) { wppa_ok_message(__('Connecting to edit album...', 'wp-photo-album-plus')); ?> <script type="text/javascript">document.location = '<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=edit&edit_id=' . $upload_album, 'js'); ?> ';</script> <?php } else { wppa_ok_message(__('Connecting to edit photos...', 'wp-photo-album-plus')); ?> <script type="text/javascript">document.location = '<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_edit_photo', 'js'); ?> ';</script> <?php } } } // From BOX B if (isset($_POST['wppa-upload'])) { check_admin_referer('$wppa_nonce', WPPA_NONCE); wppa_upload_photos(); if (isset($_POST['wppa-go-edit-single'])) { if (current_user_can('wppa_admin')) { wppa_ok_message(__('Connecting to edit album...', 'wp-photo-album-plus')); ?> <script type="text/javascript">document.location = '<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu&tab=edit&edit_id=' . $upload_album, 'js'); ?> ';</script> <?php } else { wppa_ok_message(__('Connecting to edit photos...', 'wp-photo-album-plus')); ?> <script type="text/javascript">document.location = '<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_edit_photo', 'js'); ?> ';</script> <?php } } } // From BOX C if (isset($_POST['wppa-upload-zip'])) { check_admin_referer('$wppa_nonce', WPPA_NONCE); $err = wppa_upload_zip(); if (isset($_POST['wppa-go-import']) && $err == '0') { wppa_ok_message(__('Connecting to your depot...', 'wp-photo-album-plus')); update_option('wppa_import_source_' . $user, WPPA_DEPOT_PATH); ?> <script type="text/javascript">document.location = '<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_import_photos&zip=' . $target, 'js'); ?> ';</script> <?php } } // sanitize system again wppa_sanitize_files(); // Open the form echo '<div class="wrap">' . '<h2>' . __('Upload Photos', 'wp-photo-album-plus') . '</h2>'; // Get some req'd data $max_files = ini_get('max_file_uploads'); $max_files_txt = $max_files; if ($max_files < '1') { $max_files_txt = __('unknown', 'wp-photo-album-plus'); $max_files = '15'; } $max_size = ini_get('upload_max_filesize'); /* debug */ // $max_size = '2G'; /**/ $max_size_mbytes = substr($max_size, 0, strlen($max_size) - 1); if (substr($max_size, -1) == 'G') { // May upload gigabytes!! $max_size_mbytes *= 1024; } $max_time = ini_get('max_input_time'); if ($max_time < '1') { $max_time = __('unknown', 'wp-photo-album-plus'); } // check if albums exist before allowing upload if (!wppa_has_albums()) { $url = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu'); echo '<p>' . __('No albums exist. You must', 'wp-photo-album-plus') . ' <a href="' . $url . '" >' . __('create one', 'wp-photo-album-plus') . '</a> ' . __('before you can upload your photos.', 'wp-photo-album-plus') . '</p>' . '</div>'; return; } // Upload One only configured and not administrator or super user? if (wppa_switch('upload_one_only') && !wppa_user_is('administrator')) { // One only echo '<div style="border:1px solid #ccc; padding:10px; margin-bottom:10px; width: 600px;">' . '<h3 style="margin-top:0px;">' . __('Upload a single photo', 'wp-photo-album-plus') . '</h3>' . '<form enctype="multipart/form-data" action="' . wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_upload_photos') . '" method="post">' . wp_nonce_field('$wppa_nonce', WPPA_NONCE) . '<input id="my_files" type="file" name="my_files[]" />' . '<p>' . '<label for="wppa-album">' . __('Album:', 'wp-photo-album-plus') . '</label>' . '<select name="wppa-album" id="wppa-album-s" >' . wppa_album_select_a(array('path' => wppa_switch('hier_albsel'), 'addpleaseselect' => true, 'checkowner' => true, 'checkupload' => true)) . '</select>' . '</p>'; if (wppa_switch('watermark_on') && (wppa_switch('watermark_user') || current_user_can('wppa_settings'))) { echo '<p>' . __('Apply watermark file:', 'wp-photo-album-plus') . '<select name="wppa-watermark-file" id="wppa-watermark-file" >' . wppa_watermark_file_select() . '</select>' . __('Position:', 'wp-photo-album-plus') . '<select name="wppa-watermark-pos" id="wppa-watermark-pos" >' . wppa_watermark_pos_select() . '</select>' . '</p>'; } echo '<input' . ' type="submit" class="button-primary"' . ' name="wppa-upload-multiple"' . ' value="' . __('Upload Photo', 'wp-photo-album-plus') . '"' . ' onclick="if ( document.getElementById( \'wppa-album-s\' ).value == 0 ) { alert( \'' . __('Please select an album', 'wp-photo-album-plus') . '\' ); return false; }"' . ' />' . '<input type="checkbox"' . ' id="wppa-go-edit-multiple"' . ' name="wppa-go-edit-multiple"' . ' style="display:none"' . ' checked="checked"' . ' />' . '</form>' . '</div>'; } else { // The information box echo '<div' . ' style="' . 'border:1px solid #ccc;' . 'padding:10px;' . 'margin-bottom:10px;' . 'width:600px;' . 'background-color:#fffbcc;' . 'border-color:#e6db55;' . '"' . ' >' . sprintf(__('<b>Notice:</b> your server allows you to upload <b>%s</b> files of maximum total <b>%s</b> bytes and allows <b>%s</b> seconds to complete.', 'wp-photo-album-plus'), $max_files_txt, $max_size, $max_time) . __('If your request exceeds these limitations, it will fail, probably without an errormessage.', 'wp-photo-album-plus') . __('Additionally your hosting provider may have set other limitations on uploading files.', 'wp-photo-album-plus') . '<br />' . wppa_check_memory_limit() . '</div>'; // Box A: Upload Multple photos echo '<div' . ' style="' . 'border:1px solid #ccc;' . 'padding:10px;' . 'margin-bottom:10px;' . 'width: 600px;' . '"' . ' >' . '<h3 style="margin-top:0px;">' . __('Box A:', 'wp-photo-album-plus') . ' ' . __('Multiple Photos in one selection', 'wp-photo-album-plus') . '</h3>' . sprintf(__('You can select up to %s photos in one selection and upload them.', 'wp-photo-album-plus'), $max_files_txt) . '<br />' . '<small style="color:blue" >' . __('You need a modern browser that supports HTML-5 to select multiple files', 'wp-photo-album-plus') . '</small>' . '<form' . ' enctype="multipart/form-data"' . ' action="' . wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_upload_photos') . '"' . ' method="post" >' . wp_nonce_field('$wppa_nonce', WPPA_NONCE, true, false) . '<input' . ' id="my_files"' . ' type="file"' . ' multiple="multiple"' . ' name="my_files[]"' . ' onchange="showit()"' . ' />' . '<div id="files_list2" >' . '<h3>' . __('Selected Files:', 'wp-photo-album-plus') . '</h3>' . '</div>' . '<script type="text/javascript">' . 'function showit() {' . 'var maxsize = parseInt( \'' . $max_size_mbytes . '\' ) * 1024 * 1024;' . 'var maxcount = parseInt( \'' . $max_files_txt . '\' );' . 'var totsize = 0;' . 'var files = document.getElementById( \'my_files\' ).files;' . 'var tekst = "<h3>' . __('Selected Files:', 'wp-photo-album-plus') . '</h3>";' . 'tekst += "<table><thead><tr>";' . 'tekst += "<td>' . __('Name', 'wp-photo-album-plus') . '</td>";' . 'tekst += "<td>' . __('Size', 'wp-photo-album-plus') . '</td>";' . 'tekst += "<td>' . __('Type', 'wp-photo-album-plus') . '</td>";' . 'tekst += "</tr></thead>";' . 'tekst += "<tbody>";' . 'tekst += "<tr><td><hr /></td><td><hr /></td><td><hr /></td></tr>";' . 'for ( var i=0;i<files.length;i++ ) {' . 'tekst += "<tr>";' . 'tekst += "<td>" + files[i].name + "</td>";' . 'tekst += "<td>" + files[i].size + "</td>";' . 'totsize += files[i].size;' . 'tekst += "<td>" + files[i].type + "</td>";' . 'tekst += "</tr>";' . '}' . 'tekst += "<tr><td><hr /></td><td><hr /></td><td><hr /></td></tr>";' . 'var style1 = "";' . 'var style2 = "";' . 'var style3 = "";' . 'var warn1 = "";' . 'var warn2 = "";' . 'var warn3 = "";' . 'if ( maxcount > 0 && files.length > maxcount ) {' . 'style1 = "color:red";' . 'warn1 = "' . __('Too many!', 'wp-photo-album-plus') . '";' . '}' . 'if ( maxsize > 0 && totsize > maxsize ) {' . 'style2 = "color:red";' . 'warn2 = "' . __('Too big!', 'wp-photo-album-plus') . '";' . '}' . 'if ( warn1 || warn2 ) {' . 'style3 = "color:green";' . 'warn3 = "' . __('Try again!', 'wp-photo-album-plus') . '";' . '}' . 'tekst += "<tr><td style="+style1+" >' . __('Total', 'wp-photo-album-plus') . ': "+files.length+" "+warn1+"</td><td style="+style2+" >"+totsize+" "+warn2+"</td><td style="+style3+" >"+warn3+"</td></tr>";' . 'tekst += "</tbody>";' . 'tekst += "</table>";' . 'jQuery( "#files_list2" ).html( tekst );' . '}' . '</script>' . '<p>' . '<label for="wppa-album">' . __('Album:', 'wp-photo-album-plus') . '</label>' . '<select name="wppa-album" id="wppa-album-s">' . wppa_album_select_a(array('path' => wppa_switch('hier_albsel'), 'addpleaseselect' => true, 'checkowner' => true, 'checkupload' => true)) . '</select>' . '</p>'; // Watermark? if (wppa_switch('watermark_on') && (wppa_switch('watermark_user') || current_user_can('wppa_settings'))) { echo '<p>' . __('Apply watermark file:', 'wp-photo-album-plus') . '<select name="wppa-watermark-file" id="wppa-watermark-file" >' . wppa_watermark_file_select() . '</select>' . __('Position:', 'wp-photo-album-plus') . '<select name="wppa-watermark-pos" id="wppa-watermark-pos" >' . wppa_watermark_pos_select() . '</select>' . '</p>'; } // Submit section echo '<input' . ' type="submit"' . ' class="button-primary"' . ' name="wppa-upload-multiple"' . ' value="' . __('Upload Multiple Photos', 'wp-photo-album-plus') . '"' . ' onclick="if ( document.getElementById( \'wppa-album-s\' ).value == 0 ) { alert( \'' . __('Please select an album', 'wp-photo-album-plus') . '\' ); return false; }"' . ' />' . ' ' . '<input' . ' type="checkbox"' . ' id="wppa-go-edit-multiple"' . ' name="wppa-go-edit-multiple"' . ' onchange="wppaCookieCheckbox( this, \'wppa-go-edit-multiple\' )"' . ' />' . '<script type="text/javascript" >' . 'if ( wppa_getCookie( \'wppa-go-edit-multiple\' ) == \'on\' ) document.getElementById( \'wppa-go-edit-multiple\' ).checked = \'checked\';' . '</script>'; if (current_user_can('wppa_admin')) { _e('After upload: Go to the <b>Edit Album</b> page.', 'wp-photo-album-plus'); } else { _e('After upload: Go to the <b>Edit Photos</b> page.', 'wp-photo-album-plus'); } echo '</form>' . '</div>'; // End BOX A // Box B: Single photos echo '<div style="border:1px solid #ccc; padding:10px; margin-bottom:10px; width: 600px;" >' . '<h3 style="margin-top:0px;" >' . __('Box B:', 'wp-photo-album-plus') . ' ' . __('Single Photos in multiple selections', 'wp-photo-album-plus') . '</h3>' . sprintf(__('You can select up to %s photos one by one and upload them at once.', 'wp-photo-album-plus'), $max_files_txt) . '<form' . ' enctype="multipart/form-data"' . ' action="' . wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_upload_photos') . '"' . ' method="post" ' . ' >' . wp_nonce_field('$wppa_nonce', WPPA_NONCE, true, false) . '<input' . ' id="my_file_element"' . ' type="file"' . ' name="file_1"' . '/>' . '<div id="files_list">' . '<h3>' . __('Selected Files:', 'wp-photo-album-plus') . '</h3>' . '</div>' . '<p>' . '<label for="wppa-album">' . __('Album:', 'wp-photo-album-plus') . '</label>' . '<select name="wppa-album" id="wppa-album-m">' . wppa_album_select_a(array('path' => wppa_switch('hier_albsel'), 'addpleaseselect' => true, 'checkowner' => true, 'checkupload' => true)) . '</select>' . '</p>'; // Watermark? if (wppa_switch('watermark_on') && (wppa_switch('watermark_user') || current_user_can('wppa_settings'))) { echo '<p>' . __('Apply watermark file:', 'wp-photo-album-plus') . '<select name="wppa-watermark-file" id="wppa-watermark-file" >' . wppa_watermark_file_select() . '</select>' . __('Position:', 'wp-photo-album-plus') . '<select name="wppa-watermark-pos" id="wppa-watermark-pos" >' . wppa_watermark_pos_select() . '</select>' . '</p>'; } // Submit section echo '<input' . ' type="submit"' . ' class="button-primary"' . ' name="wppa-upload"' . ' value="' . __('Upload Single Photos', 'wp-photo-album-plus') . '"' . ' onclick="if ( document.getElementById( \'wppa-album-m\' ).value == 0 ) { alert( \'' . __('Please select an album', 'wp-photo-album-plus') . '\' ); return false; }"' . ' />' . ' ' . '<input' . ' type="checkbox"' . ' id="wppa-go-edit-single"' . ' name="wppa-go-edit-single"' . ' onchange="wppaCookieCheckbox( this, \'wppa-go-edit-single\' )" />' . '<script type="text/javascript" >' . 'if ( wppa_getCookie( \'wppa-go-edit-single\' ) == \'on\' ) document.getElementById( \'wppa-go-edit-single\' ).checked = \'checked\';' . '</script>'; if (current_user_can('wppa_admin')) { _e('After upload: Go to the <b>Edit Album</b> page.', 'wp-photo-album-plus'); } else { _e('After upload: Go to the <b>Edit Photos</b> page.', 'wp-photo-album-plus'); } echo '</form>' . '<script type="text/javascript">' . '<!-- Create an instance of the multiSelector class, pass it the output target and the max number of files -->' . 'var multi_selector = new MultiSelector( document.getElementById( \'files_list\' ), ' . $max_files . ');' . '<!-- Pass in the file element -->' . 'multi_selector.addElement( document.getElementById( \'my_file_element\' ) );' . '</script>' . '</div>'; // End Box B // Box C: Single zips, useless if user can not imort, or when php <50207: no unzip if (current_user_can('wppa_import')) { if (PHP_VERSION_ID >= 50207) { echo '<div style="border:1px solid #ccc; padding:10px; width: 600px;" >' . '<h3 style="margin-top:0px;" >' . __('Box C:', 'wp-photo-album-plus') . ' ' . __('Zipped Photos in one selection', 'wp-photo-album-plus') . '</h3>' . sprintf(__('You can upload one zipfile. It will be placed in your personal wppa-depot: <b>.../%s</b><br/>Once uploaded, use <b>Import Photos</b> to unzip the file and place the photos in any album.', 'wp-photo-album-plus'), WPPA_DEPOT) . '<form' . ' enctype="multipart/form-data"' . ' action="' . wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_upload_photos') . '"' . ' method="post"' . ' >' . wp_nonce_field('$wppa_nonce', WPPA_NONCE, true, false) . '<input' . ' id="my_zipfile_element"' . ' type="file"' . ' name="file_zip"' . ' />' . '<br/><br/>' . '<input' . ' type="submit"' . ' class="button-primary"' . ' name="wppa-upload-zip"' . ' value="' . __('Upload Zipped Photos', 'wp-photo-album-plus') . '"' . ' />' . ' ' . '<input' . ' type="checkbox"' . ' id="wppa-go-import"' . ' name="wppa-go-import"' . ' onchange="wppaCookieCheckbox( this, \'wppa-go-import\' )"' . ' />' . '<script type="text/javascript" >' . 'if ( wppa_getCookie( \'wppa-go-import\' ) == \'on\' ) document.getElementById( \'wppa-go-import\' ).checked = \'checked\';' . '</script>' . __('After upload: Go to the <b>Import Photos</b> page.', 'wp-photo-album-plus') . '</form>' . '</div>'; } else { echo '<div style="border:1px solid #ccc; padding:10px; width: 600px;">' . '<small>' . __('Ask your administrator to upgrade php to version 5.2.7 or later. This will enable you to upload zipped photos.', 'wp-photo-album-plus') . '</small>' . '</div>'; } } } echo '</div>'; }
function _wppa_page_import() { global $wppa_revno; global $wpdb; global $wppa_supported_photo_extensions; global $wppa_supported_video_extensions; global $wppa_supported_audio_extensions; global $wppa_session; if (wppa('ajax')) { ob_start(); } // Suppress output if ajax operation // Init $ngg_opts = get_option('ngg_options', false); $user = wppa_get_user(); // Check database wppa_check_database(true); // Update watermark settings for the user if new values supplied if (wppa_switch('watermark_on') && (wppa_switch('watermark_user') || current_user_can('wppa_settings'))) { // File if (isset($_POST['wppa-watermark-file'])) { // Sanitize input $watermark_file = $_POST['wppa-watermark-file']; if (stripos($watermark_file, '.png') !== false) { $watermark_file = sanitize_file_name($watermark_file); } else { if (!in_array($watermark_file, array('--- none ---', '---name---', '---filename---', '---description---', '---predef---'))) { $watermark_file = 'nil'; } } // Update setting update_option('wppa_watermark_file_' . $user, $watermark_file); } // Position if (isset($_POST['wppa-watermark-pos'])) { // Sanitize input $watermark_pos = $_POST['wppa-watermark-pos']; if (!in_array($watermark_pos, array('toplft', 'topcen', 'toprht', 'cenlft', 'cencen', 'cenrht', 'botlft', 'botcen', 'botrht'))) { $watermark_pos = 'nil'; } // Update setting update_option('wppa_watermark_pos_' . $user, $watermark_pos); } } // Update last used albums if (isset($_POST['wppa-photo-album'])) { update_option('wppa-photo-album-import-' . wppa_get_user(), strval(intval($_POST['wppa-photo-album']))); } if (isset($_POST['wppa-video-album'])) { update_option('wppa-video-album-import-' . wppa_get_user(), strval(intval($_POST['wppa-video-album']))); } if (isset($_POST['wppa-audio-album'])) { update_option('wppa-audio-album-import-' . wppa_get_user(), strval(intval($_POST['wppa-audio-album']))); } // Verify last albums still exist $alb = get_option('wppa-photo-album-import-' . wppa_get_user(), '0'); if ($alb) { $exists = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_ALBUMS . "` WHERE `id` = %s", $alb)); if (!$exists) { update_option('wppa-photo-album-import-' . wppa_get_user(), '0'); } } $alb = get_option('wppa-video-album-import-' . wppa_get_user(), '0'); if ($alb) { $exists = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_ALBUMS . "` WHERE `id` = %s", $alb)); if (!$exists) { update_option('wppa-video-album-import-' . wppa_get_user(), '0'); } } $alb = get_option('wppa-audio-album-import-' . wppa_get_user(), '0'); if ($alb) { $exists = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM `" . WPPA_ALBUMS . "` WHERE `id` = %s", $alb)); if (!$exists) { update_option('wppa-audio-album-import-' . wppa_get_user(), '0'); } } // Extract zip if (isset($_GET['zip'])) { wppa_extract($_GET['zip'], true); } // Set local / remote if (isset($_POST['wppa-local-remote']) && in_array($_POST['wppa-local-remote'], array('local', 'remote'))) { check_admin_referer('$wppa_nonce', WPPA_NONCE); update_option('wppa_import_source_type_' . $user, $_POST['wppa-local-remote']); } // Set import source dir ( when local ) if (isset($_POST['wppa-import-set-source-dir']) && is_dir($_POST['wppa-source'])) { check_admin_referer('$wppa_nonce', WPPA_NONCE); if (isset($_POST['wppa-source'])) { update_option('wppa_import_source_' . $user, $_POST['wppa-source']); } } // Set import source url ( when remote ) if (isset($_POST['wppa-import-set-source-url'])) { check_admin_referer('$wppa_nonce', WPPA_NONCE); if (isset($_POST['wppa-source-remote'])) { update_option('wppa_import_source_url_' . $user, esc_url($_POST['wppa-source-remote'])); update_option('wppa_import_source_url_found_' . $user, false); update_option('wppa_import_remote_max_' . $user, strval(intval($_POST['wppa-import-remote-max']))); } } // Hit the submit button if (isset($_POST['wppa-import-submit'])) { if (wppa('ajax')) { if (!wp_verify_nonce($_POST['wppa-update-check'], '$wppa_nonce')) { echo $_POST['wppa-update-check'] . ' Security check failure'; wppa_exit(); } } else { check_admin_referer('$wppa_nonce', WPPA_NONCE); } $delp = isset($_POST['del-after-p']); $delf = isset($_POST['del-after-f']); $dela = isset($_POST['del-after-a']); $delz = isset($_POST['del-after-z']); $delv = isset($_POST['del-after-v']); $delu = isset($_POST['del-after-u']); $delc = isset($_POST['del-after-c']); wppa_import_photos($delp, $dela, $delz, $delv, $delu, $delc, $delf); } elseif (isset($_GET['continue'])) { if (wp_verify_nonce($_GET['nonce'], 'dirimport')) { wppa_import_photos(); } } // If we did this by ajax, setup reporting results for it if (wppa('ajax')) { ob_end_clean(); if (wppa('ajax_import_files_done')) { echo '<span style="color:green" >' . wppa('ajax_import_files') . ' ' . __('Done!', 'wp-photo-album-plus') . '</span>'; } elseif (wppa('ajax_import_files_error')) { echo '<span style="color:red" >' . wppa('ajax_import_files') . ' ' . wppa('ajax_import_files_error') . '</span>'; } else { echo '<span style="color:red" >' . wppa('ajax_import_files') . ' ' . __('Failed!', 'wp-photo-album-plus') . '</span>'; } wppa_exit(); } // Open the Form echo '<div class="wrap">' . '<h2>' . __('Import Photos', 'wp-photo-album-plus') . '</h2>'; // See if remote is possible $can_remote = ini_get('allow_url_fopen') && function_exists('curl_init'); if (!$can_remote) { update_option('wppa_import_source_type_' . $user, 'local'); } // Get this users current source type setting ( local/remote ) $source_type = get_option('wppa_import_source_type_' . $user, 'local'); // Local. Find data we will going to need if ($source_type == 'local') { // Get curren local dir setting $source = get_option('wppa_import_source_' . $user, WPPA_DEPOT_PATH); if (!$source || !is_dir($source)) { $source = WPPA_DEPOT_PATH; update_option('wppa_import_source_' . $user, WPPA_DEPOT_PATH); } // See if the current source is the 'home' directory $is_depot = $source == WPPA_DEPOT_PATH; // See if the current source is a subdir of my depot $is_sub_depot = substr($source, 0, strlen(WPPA_DEPOT_PATH)) == WPPA_DEPOT_PATH; // Sanitize system, removes illegal files if ($is_sub_depot) { wppa_sanitize_files(); } // See what's in there $files = wppa_get_import_files(); $zipcount = wppa_get_zipcount($files); $albumcount = wppa_get_albumcount($files); $photocount = wppa_get_photocount($files); $videocount = wppa_get_video_count($files); $audiocount = wppa_get_audio_count($files); $dircount = $is_depot ? wppa_get_dircount($files) : '0'; $csvcount = $is_depot ? wppa_get_csvcount($files) : '0'; if ($ngg_opts) { $is_ngg = strpos($source, $ngg_opts['gallerypath']) !== false; // this is false for the ngg root !! } else { $is_ngg = false; } } // Remote. Find data we will going to need if ($source_type == 'remote') { wppa('is_remote', true); $source = get_option('wppa_import_source_url_' . $user, 'http://'); $source_path = $source; $source_url = $source; $is_depot = false; $is_sub_depot = false; $files = wppa_get_import_files(); $zipcount = '0'; $albumcount = '0'; $photocount = $files ? count($files) : '0'; $videocount = '0'; $audiocount = '0'; $dircount = '0'; $csvcount = '0'; $is_ngg = false; $remote_max = get_option('wppa_import_remote_max_' . $user, '10'); } // The form echo '<form' . ' action="' . wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_import_photos') . '"' . ' method="post"' . ' >'; // Admin and superuser can change import source, other users only if change source not is restricted if (wppa_user_is('administrator') || !wppa_switch('chgsrc_is_restricted')) { // Local / Remote echo '<div style="border:1px solid gray; padding:4px; margin: 3px 0;" >' . wp_nonce_field('$wppa_nonce', WPPA_NONCE, true, false) . __('Select Local or Remote', 'wp-photo-album-plus') . ($disabled = $can_remote ? '' : 'disabled="disabled"') . '<select name="wppa-local-remote" >' . '<option value="local" ' . ($source_type == 'local' ? 'selected="selected"' : '') . '>' . __('Local', 'wp-photo-album-plus') . '</option>' . '<option value="remote" ' . $disabled . ($source_type == 'remote' ? 'selected="selected"' : '') . '>' . __('Remote', 'wp-photo-album-plus') . '</option>' . '</select>'; if ($can_remote) { echo '<input' . ' type="submit"' . ' class="button-secundary"' . ' name="wppa-import-set-source"' . ' value="' . __('Set Local/Remote', 'wp-photo-album-plus') . '"' . '/>'; } else { if (!ini_get('allow_url_fopen')) { _e('The server does not allow you to import from remote locations. ( The php directive allow_url_fopen is not set to 1 )', 'wp-photo-album-plus'); } if (!function_exists('curl_init')) { _e('The server does not allow you to import from remote locations. ( The curl functions are not set up )', 'wp-photo-album-plus'); } } echo '</div>'; // Source dir / url echo '<div style="border:1px solid gray; padding:4px; margin: 3px 0;" >' . wp_nonce_field('$wppa_nonce', WPPA_NONCE, true, false) . __('Import photos from:', 'wp-photo-album-plus'); // Local: dir if ($source_type == 'local') { echo '<select name="wppa-source" >' . wppa_abs_walktree(wppa_opt('import_root'), $source) . '</select>' . '<input' . ' type="submit"' . ' class="button-secundary"' . ' name="wppa-import-set-source-dir"' . ' value="' . __('Set source directory', 'wp-photo-album-plus') . '"' . ' />'; } else { echo '<input' . ' type="text"' . ' style="width:50%"' . ' name="wppa-source-remote"' . ' value="' . $source . '"' . ' />' . __('Max:', 'wp-photo-album-plus') . '<input' . ' type="text"' . ' style="width:50px;"' . ' name="wppa-import-remote-max"' . ' value="' . $remote_max . '"' . ' />' . '<input' . ' type="submit"' . ' onclick="jQuery( \'#rem-rem\' ).css( \'display\',\'inline\' ); return true;"' . ' class="button-secundary"' . ' name="wppa-import-set-source-url"' . ' value="' . __('Find remote photos', 'wp-photo-album-plus') . '"' . ' />' . '<span id="rem-rem" style="display:none;" >' . __('Working, please wait...', 'wp-photo-album-plus') . '</span>' . '<br />' . __('You can enter either a web page address like <i>http://mysite.com/mypage/</i> or a full url to an image file like <i>http://mysite.com/wp-content/uploads/wppa/4711.jpg</i>', 'wp-photo-album-plus'); } echo '</div>'; } echo '</form>'; // check if albums exist or will be made before allowing upload if (!wppa_has_albums() && !$albumcount && !$dircount && !$csvcount) { $url = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu'); echo '<p>' . __('No albums exist. You must', 'wp-photo-album-plus') . ' ' . '<a href="' . $url . '" >' . __('create one', 'wp-photo-album-plus') . ' ' . '</a> ' . __('beofre you can upload your photos.', 'wp-photo-album-plus') . '</p>'; return; } // Something to import? if ($photocount || $albumcount || $zipcount || $dircount || $videocount || $audiocount || $csvcount) { // Open the form echo '<form' . ' action="' . wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_import_photos') . '"' . ' method="post"' . ' >' . wp_nonce_field('$wppa_nonce', WPPA_NONCE, true, false); // Display the zips if (PHP_VERSION_ID >= 50207 && $zipcount > '0') { echo '<div style="border:1px solid gray; padding:4px; margin: 3px 0;" >' . '<p><b>' . sprintf(_n('There is %d zipfile in the depot', 'There are %d zipfiles in the depot', $zipcount, 'wp-photo-album-plus'), $zipcount) . '</b></p>' . '<table class="form-table wppa-table widefat" style="margin-bottom:0;" >' . '<thead>' . '<tr>' . '<td>' . '<input' . ' type="checkbox"' . ' id="all-zip"' . ' checked="checked"' . ' onchange="checkAll( \'all-zip\', \'.wppa-zip\' )"' . ' />' . '<b> ' . __('Check/uncheck all', 'wp-photo-album-plus') . '</b>' . '</td>'; if ($is_sub_depot) { echo '<td>' . '<input' . ' type="checkbox"' . ' id="del-after-z"' . ' name="del-after-z"' . ' checked="checked"' . ' />' . '<b> ' . __('Delete after successful extraction.', 'wp-photo-album-plus') . '</b>' . '</td>'; } echo '</tr>' . '</thead>' . '</table>' . '<table' . ' class="form-table wppa-table widefat"' . ' style="margin-top:0;"' . ' >' . '<tr>'; $ct = 0; $idx = '0'; foreach ($files as $file) { $ext = wppa_get_ext($file); if ($ext == 'zip') { echo '<td>' . '<input' . ' type="checkbox"' . ' id="file-' . $idx . '"' . ' name="file-' . $idx . '"' . ' class="wppa-zip"' . ' checked="checked"' . ' /> ' . wppa_sanitize_file_name(basename($file)) . '</td>'; if ($ct == 3) { echo '</tr><tr>'; $ct = 0; } else { $ct++; } } $idx++; } echo '</tr>' . '</table>' . '</div>'; } // Dispay the albums ( .amf files ) if ($albumcount) { echo '<div style="border:1px solid gray; padding:4px; margin: 3px 0;" >' . '<p><b>' . sprintf(_n('There is %d albumdefinition in the depot', 'There are %d albumdefinitions in the depot', $albumcount, 'wp-photo-album-plus'), $albumcount) . '</b></p>' . '<table class="form-table wppa-table widefat" style="margin-bottom:0;" >' . '<thead>' . '<tr>' . '<td>' . '<input' . ' type="checkbox"' . ' id="all-amf"' . ' checked="checked"' . ' onchange="checkAll( \'all-amf\', \'.wppa-amf\' )"' . ' />' . '<b> ' . __('Check/uncheck all', 'wp-photo-album-plus') . '</b>' . '</td>'; if ($is_sub_depot) { echo '<td>' . '<input' . ' type="checkbox"' . ' id="del-after-a"' . ' name="del-after-a"' . ' checked="checked"' . ' />' . '<b> ' . __('Remove from depot after successful import, or if the album already exists.', 'wp-photo-album-plus') . '</b>' . '</td>'; } echo '</tr>' . '</thead>' . '</table>' . '<table' . ' class="form-table wppa-table widefat"' . ' style="margin-top:0;"' . ' >' . '<tr>'; $ct = 0; $idx = '0'; foreach ($files as $file) { $ext = wppa_get_ext($file); if ($ext == 'amf') { echo '<td>' . '<input' . ' type="checkbox"' . ' id="file-' . $idx . '"' . ' name="file-' . $idx . '"' . ' class="wppa-amf"' . ' checked="checked"' . ' />' . ' ' . basename($file) . ' ' . stripslashes(wppa_get_meta_name($file, '( ')) . '</td>'; if ($ct == 3) { echo '</tr><tr>'; $ct = 0; } else { $ct++; } } $idx++; } echo '</tr>' . '</table>' . '</div>'; } // Display the single photos if ($photocount) { echo '<div style="border:1px solid gray; padding:4px; margin: 3px 0;" >'; // Display the number of photos '<p><b>'; // Local if ($source_type == 'local') { if ($is_ngg) { printf(_n('There is %d photo in the ngg gallery', 'There are %d photos in the ngg gallery', $photocount, 'wp-photo-album-plus'), $photocount); } else { printf(_n('There is %d photo in the depot', 'There are %d photos in the depot', $photocount, 'wp-photo-album-plus'), $photocount); } } else { printf(_n('There is %d possible photo found remote', 'There are %d possible photos found remote', $photocount, 'wp-photo-album-plus'), $photocount); } // Tell if downsize on if (wppa_switch('resize_on_upload')) { echo ' ' . __('Photos will be downsized during import.', 'wp-photo-album-plus'); } echo '</b></p>'; // The album selection echo '<p class="hideifupdate" >' . __('Default album for import:', 'wp-photo-album-plus') . '<select name="wppa-photo-album" id="wppa-photo-album" >' . wppa_album_select_a(array('path' => wppa_switch('hier_albsel'), 'selected' => get_option('wppa-photo-album-import-' . wppa_get_user(), '0'), 'addpleaseselect' => true, 'checkowner' => true, 'checkupload' => true)) . '</select>' . __('Photos that have (<em>name</em>)[<em>album</em>] will be imported by that <em>name</em> in that <em>album</em>.', 'wp-photo-album-plus') . '</p>'; // Watermark if (wppa_switch('watermark_on') && (wppa_switch('watermark_user') || current_user_can('wppa_settings'))) { echo '<p>' . __('Apply watermark file:', 'wp-photo-album-plus') . '<select name="wppa-watermark-file" id="wppa-watermark-file" >' . wppa_watermark_file_select() . '</select>' . __('Position:', 'wp-photo-album-plus') . '<select name="wppa-watermark-pos" id="wppa-watermark-pos" >' . wppa_watermark_pos_select() . '</select>' . '</p>'; } // Header of photo list echo '<table class="form-table wppa-table widefat" style="margin-bottom:0;" >' . '<thead>' . '<tr>' . '<td>' . '<input' . ' type="checkbox"' . ' id="all-pho"' . ($is_sub_depot ? 'checked="checked"' : '') . ' onchange="checkAll( \'all-pho\', \'.wppa-pho\' )"' . ' />' . '<b>' . ' ' . __('Check/uncheck all', 'wp-photo-album-plus') . '</b>' . '</td>'; // Depot specific switches if ($is_sub_depot) { echo '<td>' . '<input' . ' type="checkbox"' . ' id="del-after-p"' . ' name="del-after-p"' . ' checked="checked"' . ' />' . '<b>' . ' ' . __('Remove from depot after successful import.', 'wp-photo-album-plus') . '</b>' . '</td>' . '<td>' . '<input' . ' type="checkbox"' . ' id="del-after-f"' . ' name="del-after-f"' . ' />' . '<b>' . ' ' . __('Remove from depot after failed import.', 'wp-photo-album-plus') . '</b>' . '</td>'; } // Nextgen import specific switches if ($is_ngg) { echo '<td>' . '<input' . ' type="checkbox"' . ' id="cre-album"' . ' name="cre-album"' . ' checked="checked"' . ' value="' . esc_attr(basename($source)) . '"' . ' />' . '<b>' . ' ' . __('Import into album', 'wp-photo-album-plus') . ' ' . basename($source) . '</b>' . '<small>' . __('The album will be created if it does not exist', 'wp-photo-album-plus') . '</small>' . '</td>' . '<td>' . '<input' . ' type="checkbox"' . ' id="use-backup"' . ' name="use-backup"' . ' checked="checked"' . ' />' . '<b>' . ' ' . __('Use backup if available', 'wp-photo-album-plus') . '</b>' . '</td>'; } // Update existing switch echo '<td>' . '<input' . ' type="checkbox"' . ' id="wppa-update"' . ' onchange="impUpd( this, \'#submit\' )"' . ' name="wppa-update"' . ' />' . '<b>' . ' ' . __('Update existing photos', 'wp-photo-album-plus') . '</b>' . '</td>'; // Void dups switch echo '<td>'; if (wppa_switch('void_dups')) { echo '<input' . ' type="hidden"' . ' id="wppa-nodups"' . ' name="wppa-nodups"' . ' value="true"' . ' />'; } else { echo '<input' . ' type="checkbox"' . ' id="wppa-nodups"' . ' name="wppa-nodups"' . ' checked="checked"' . ' />' . '<b>' . ' ' . __('Do not create duplicates', 'wp-photo-album-plus') . '</b>'; } echo '</td>'; // Import preview zoomable switch if (wppa_switch('import_preview')) { echo '<td>' . '<input' . ' type="checkbox"' . ' id="wppa-zoom"' . ' onclick="wppa_setCookie(\'zoompreview\', this.checked, \'365\')"' . ' />' . '<b>' . ' ' . __('Zoom previews', 'wp-photo-album-plus') . '</b>' . '<script type="text/javascript">if ( wppa_getCookie(\'zoompreview\') == true ) { jQuery(\'#wppa-zoom\').attr(\'checked\', \'checked\') }</script>' . '</td>'; } echo '</tr>' . '</thead>' . '</table>'; // Photo list echo '<table class="form-table wppa-table widefat" style="margin-top:0;" >' . '<tr>'; $ct = 0; $idx = '0'; if (is_array($files)) { foreach ($files as $file) { $ext = wppa_get_ext($file); $meta = wppa_strip_ext($file) . '.PMF'; if (!is_file($meta)) { $meta = wppa_strip_ext($file) . '.pmf'; } if (!is_file($meta)) { $meta = false; } if (in_array(strtolower($ext), $wppa_supported_photo_extensions)) { echo '<td id="td-file-' . $idx . '" >' . '<input' . ' type="checkbox"' . ' id="file-' . $idx . '"' . ' name="file-' . $idx . '"' . ' title="' . esc_attr($file) . '"' . ' class="wppa-pho"' . ($is_sub_depot ? 'checked="checked"' : '') . '/ >' . '<span' . ' id="name-file-' . $idx . '"' . ' >' . ' '; if (wppa('is_wppa_tree')) { $t = explode('uploads/wppa/', $file); echo $t[1]; } else { echo wppa_sanitize_file_name(basename($file)); } if ($meta) { echo ' ' . stripslashes(wppa_get_meta_name($meta, '( ')) . stripslashes(wppa_get_meta_album($meta, '[')); } echo '</span>'; if (wppa_switch('import_preview')) { if (wppa('is_remote')) { if (strpos($file, '//res.cloudinary.com/') !== false) { $img_url = dirname($file) . '/h_144/' . basename($file); } else { $img_url = $file; } } else { $img_url = str_replace(ABSPATH, home_url() . '/', $file); } echo '<img src="' . $img_url . '"' . ' alt="N.A."' . ' style="max-height:48px;"' . ' onmouseover="if (jQuery(\'#wppa-zoom\').attr(\'checked\')) jQuery(this).css(\'max-height\', \'144px\')"' . ' onmouseout="if (jQuery(\'#wppa-zoom\').attr(\'checked\')) jQuery(this).css(\'max-height\', \'48px\')"' . ' />'; } echo '</td>'; if ($ct == 3) { echo '</tr><tr>'; $ct = 0; } else { $ct++; } } $idx++; } } echo '</tr>' . '</table>' . '</div>'; } // Display the videos if ($videocount && wppa_switch('enable_video')) { echo '<div style="border:1px solid gray; padding:4px; margin: 3px 0;" >'; // Display available files echo '<p><b>' . sprintf(_n('There is %d video in the depot', 'There are %d videos in the depot', $videocount, 'wp-photo-album-plus'), $videocount) . '</b></p>'; // Album to import to echo '<p class="hideifupdate" >' . __('Album to import to:', 'wp-photo-album-plus') . '<select name="wppa-video-album" id="wppa-video-album">' . wppa_album_select_a(array('path' => wppa_switch('hier_albsel'), 'selected' => get_option('wppa-video-album-import-' . wppa_get_user(), '0'), 'addpleaseselect' => true, 'checkowner' => true, 'checkupload' => true)) . '</select>' . '</p>'; // Header of video list echo '<table class="form-table wppa-table widefat" style="margin-bottom:0;" >' . '<thead>' . '<tr>' . '<td>' . '<input' . ' type="checkbox"' . ' id="all-video"' . ' checked="checked"' . ' onchange="checkAll( \'all-video\', \'.wppa-video\' )"' . ' />' . '<b>' . ' ' . __('Check/uncheck all', 'wp-photo-album-plus') . '</b>' . '</td>'; if ($is_sub_depot) { echo '<td>' . '<input' . ' type="checkbox"' . ' id="del-after-v"' . ' name="del-after-v"' . ' checked="checked"' . ' />' . '<b>' . ' ' . __('Remove from depot after successful import.', 'wp-photo-album-plus') . ' <small>' . __('Files larger than 64MB will always be removed after successful import.', 'wp-photo-album-plus') . '</small>' . '</b>' . '</td>'; } echo '</tr>' . '</thead>' . '</table>'; // Video list echo '<table class="form-table wppa-table widefat" style="margin-top:0;" >' . '<tr>'; $ct = 0; $idx = '0'; if (is_array($files)) { foreach ($files as $file) { $ext = strtolower(substr(strrchr($file, "."), 1)); if (in_array(strtolower($ext), $wppa_supported_video_extensions)) { echo '<td>' . '<input' . ' type="checkbox"' . ' id="file-' . $idx . '"' . ' name="file-' . $idx . '"' . ' title="' . $file . '"' . ' class="wppa-video"' . ' checked="checked"' . ' />' . '<span' . ' id="name-file-' . $idx . '"' . ' >' . ' ' . wppa_sanitize_file_name(basename($file)) . '</span>' . '</td>'; if ($ct == 3) { echo '</tr><tr>'; $ct = 0; } else { $ct++; } } $idx++; } } echo '</tr>' . '</table>' . '</div>'; } // Display the audios if ($audiocount && wppa_switch('enable_audio')) { echo '<div style="border:1px solid gray; padding:4px; margin: 3px 0;" >'; // Display available files echo '<p><b>' . sprintf(_n('There is %d audio in the depot', 'There are %d audios in the depot', $audiocount, 'wp-photo-album-plus'), $audiocount) . '</b></p>'; // Album to import to echo '<p class="hideifupdate" >' . __('Album to import to:', 'wp-photo-album-plus') . '<select name="wppa-audio-album" id="wppa-audio-album" >' . wppa_album_select_a(array('path' => wppa_switch('hier_albsel'), 'selected' => get_option('wppa-audio-album-import-' . wppa_get_user(), '0'), 'addpleaseselect' => true, 'checkowner' => true, 'checkupload' => true)) . '</select>' . '</p>'; // Header of audio list echo '<table class="form-table wppa-table widefat" style="margin-bottom:0;" >' . '<thead>' . '<tr>' . '<td>' . '<input' . ' type="checkbox"' . ' id="all-audio"' . ' checked="checked"' . ' onchange="checkAll( \'all-audio\', \'.wppa-audio\' )"' . ' />' . '<b>' . ' ' . __('Check/uncheck all', 'wp-photo-album-plus') . '</b>' . '</td>'; // The remove box if ($is_sub_depot) { echo '<td>' . '<input' . ' type="checkbox"' . ' id="del-after-u"' . ' name="del-after-u"' . ' checked="checked"' . ' />' . '<b>' . ' ' . __('Remove from depot after successful import.', 'wp-photo-album-plus') . '</b>' . '</td>'; } echo '</tr>' . '</thead>' . '</table>'; // Audio list echo '<table class="form-table wppa-table widefat" style="margin-top:0;" >' . '<tr>'; $ct = 0; $idx = '0'; if (is_array($files)) { foreach ($files as $file) { $ext = strtolower(substr(strrchr($file, "."), 1)); if (in_array(strtolower($ext), $wppa_supported_audio_extensions)) { echo '<td>' . '<input' . ' type="checkbox"' . ' id="file-' . $idx . '"' . ' name="file-' . $idx . '"' . ' title="' . $file . '"' . ' class="wppa-audio"' . ' checked="checked"' . ' />' . '<span' . ' id="name-file-' . $idx . '"' . ' >' . ' ' . wppa_sanitize_file_name(basename($file)) . '</span>' . '</td>'; if ($ct == 3) { echo '</tr><tr>'; $ct = 0; } else { $ct++; } } $idx++; } } echo '</tr>' . '</table>' . '</div>'; } // Display the directories to be imported as albums. Do this in the depot only!! if ($is_depot && $dircount) { echo '<div style="border:1px solid gray; padding:4px; margin: 3px 0;" >'; // Display number of dirs echo '<p><b>' . sprintf(_n('There is %d albumdirectory in the depot', 'There are %d albumdirectories in the depot', $dircount, 'wp-photo-album-plus'), $dircount) . '</b></p>'; // Header of dirlist echo '<table class="form-table wppa-table widefat" style="margin-bottom:0;" >' . '<thead>' . '<tr>' . '<td>' . '<input' . ' type="checkbox"' . ' id="all-dir"' . ' checked="checked"' . ' onchange="checkAll( \'all-dir\', \'.wppa-dir\' )"' . ' />' . '<b>' . ' ' . __('Check/uncheck all', 'wp-photo-album-plus') . '</b>' . '</td>' . '</tr>' . '</thead>' . '</table>'; // Dirlist echo '<table class="form-table wppa-table widefat" style="margin-top:0;" >'; $ct = 0; $idx = '0'; foreach ($files as $dir) { if (basename($dir) == '.') { } elseif (basename($dir) == '..') { } elseif (is_dir($dir)) { echo '<tr>' . '<td>' . '<input' . ' type="checkbox"' . ' id="file-' . $idx . '"' . ' name="file-' . $idx . '"' . ' class= "wppa-dir"' . ' checked="checked"' . ' />' . ' ' . '<b>' . wppa_sanitize_file_name(basename($dir)) . '</b>'; $subfiles = glob($dir . '/*'); $subdircount = '0'; if ($subfiles) { foreach ($subfiles as $subfile) { if (is_dir($subfile) && basename($subfile) != '.' && basename($subfile) != '..') { $subdircount++; } } } $sfcount = empty($subfiles) ? '0' : wppa_get_photocount($subfiles); echo ' ' . sprintf(_n('Contains %d file', 'Contains %d files', $sfcount, 'wp-photo-album-plus'), $sfcount); if ($subdircount) { echo ' ' . sprintf(_n('and %d subdirectory', 'and %d subdirectories', $subdircount, 'wp-photo-album-plus'), $subdircount); } '</td>' . '</tr>'; } $idx++; } echo '</table>' . '</div>'; } // Display the csv files if ($is_depot && $csvcount) { echo '<div style="border:1px solid gray; padding:4px; margin: 3px 0;" >'; // Display number of files echo '<p><b>' . sprintf(_n('There is %d .csv file in the depot', 'There are %d .csv files in the depot', $csvcount, 'wp-photo-album-plus'), $csvcount) . '</b></p>'; // Header of .csv file list echo '<table class="form-table wppa-table widefat" style="margin-bottom:0;" >' . '<thead>' . '<tr>' . '<td>' . '<input' . ' type="checkbox"' . ' id="all-csv"' . ' checked="checked"' . ' onchange="checkAll( \'all-csv\', \'.wppa-csv\' )"' . ' />' . '<b>' . ' ' . __('Check/uncheck all', 'wp-photo-album-plus') . '</b>' . '</td>' . '<td>' . '<input' . ' type="checkbox"' . ' id="del-after-c"' . ' name="del-after-c"' . ' checked="checked"' . ' disabled="disabled"' . ' />' . '<b>' . ' ' . __('Remove from depot after successful import.', 'wp-photo-album-plus') . '</b>' . '</td>' . '</tr>' . '</thead>' . '</table>'; // CSV file list echo '<table class="form-table wppa-table widefat" style="margin-top:0;" >'; $ct = 0; $idx = '0'; foreach ($files as $csv) { if (is_file($csv) && strtolower(wppa_get_ext($csv)) == 'csv') { echo '<tr>' . '<td>' . '<input' . ' type="checkbox"' . ' id="file-' . $idx . '"' . ' name="file-' . $idx . '"' . ' class="wppa-csv"' . ' checked="checked"' . ' />' . ' ' . '<b>' . wppa_sanitize_file_name(basename($csv)) . ' (' . sprintf('%5.1f', filesize($csv) / 1024) . ' kb)' . '</b>' . '</td>' . '</tr>'; } $idx++; } echo '</table>' . '</div>'; } // The submit button ?> <p> <script type="text/javascript"> function wppaVfyAlbum() { var csvs = jQuery( '.wppa-csv' ); if ( jQuery( '#wppa-update' ).attr( 'checked' ) != 'checked' ) { if ( ! parseInt( jQuery( '#wppa-photo-album' ).attr( 'value' ) ) && ! parseInt( jQuery( '#wppa-video-album' ).attr( 'value' ) ) && ! parseInt( jQuery( '#wppa-audio-album' ).attr( 'value' ) ) && csvs.length == 0 ) { alert( 'Please select an album first' ); return false; } } return true; } function wppaCheckInputVars() { var checks = jQuery( ':checked' ); var nChecks = checks.length; var nMax = <?php echo ini_get('max_input_vars'); ?> ; if ( nMax == 0 ) nMax = 100; if ( nChecks > nMax ) { alert ( 'There are '+nChecks+' boxes checked or selected, that is more than the maximum allowed number of '+nMax ); return false; } var dirs = jQuery( '.wppa-dir' ); var nDirsChecked = 0; if ( dirs.length > 0 ) { var i = 0; while ( i < dirs.length ) { if ( jQuery( dirs[i] ).attr( 'checked' ) == 'checked' ) { nDirsChecked++; } i++; } } var zips = jQuery( '.wppa-zip' ); var nZipsChecked = 0; if ( zips.length > 0 ) { var i = 0; while ( i < zips.length ) { if ( jQuery( zips[i] ).attr( 'checked' ) == 'checked' ) { nZipsChecked++; } i++; } } // If no dirs to import checked, there must be an album selected if ( 0 == nDirsChecked && 0 == nZipsChecked && ! wppaVfyAlbum() ) return false; return true; } </script> <input type="submit" onclick="return wppaCheckInputVars()" class="button-primary" id="submit" name="wppa-import-submit" value="<?php _e('Import', 'wp-photo-album-plus'); ?> " /> <script type="text/javascript" > var wppaImportRuns = false; function wppaDoAjaxImport() { wppaImportRuns = true; var data = ''; data += 'wppa-update-check='+jQuery( '#wppa-update-check' ).attr( 'value' ); data += '&wppa-photo-album='+jQuery( '#wppa-photo-album' ).attr( 'value' ); data += '&wppa-video-album='+jQuery( '#wppa-video-album' ).attr( 'value' ); data += '&wppa-audio-album='+jQuery( '#wppa-audio-album' ).attr( 'value' ); data += '&wppa-watermark-file='+jQuery( '#wppa-watermark-file' ).attr( 'value' ); data += '&wppa-watermark-pos='+jQuery( '#wppa-watermark-pos' ).attr( 'value' ); if ( jQuery( '#cre-album' ).attr( 'checked' ) ) data += '&cre-album='+jQuery( '#cre-album' ).attr( 'value' ); if ( jQuery( '#use-backup' ).attr( 'checked' ) ) data += '&use-backup=on'; //+jQuery( '#use-backup' ).attr( 'value' ); if ( jQuery( '#wppa-update' ).attr( 'checked' ) ) data += '&wppa-update=on'; //+jQuery( '#wppa-update' ).attr( 'value' ); if ( jQuery( '#wppa-nodups' ).attr( 'checked' ) ) data += '&wppa-nodups=on'; //+jQuery( '#wppa-nudups' ).attr( 'value' ); if ( jQuery( '#del-after-p' ).attr( 'checked' ) ) data += '&del-after-p=on'; if ( jQuery( '#del-after-f' ).attr( 'checked' ) ) data += '&del-after-f=on'; if ( jQuery( '#del-after-v' ).attr( 'checked' ) ) data += '&del-after-v=on'; if ( jQuery( '#del-after-u' ).attr( 'checked' ) ) data += '&del-after-u=on'; data += '&wppa-import-submit=ajax'; var files = jQuery( ':checked' ); var found = false; var i=0; var elm; var fulldata; for ( i=0; i<files.length; i++ ) { found = false; // assume done elm = files[i]; // Is it a file checkbox? var temp = elm.id.split( '-' ); if ( temp[0] != 'file' ) continue; // no fulldata = data+'&import-ajax-file='+elm.title; found = true; break; } // alert( data ); if ( ! found ) { wppaStopAjaxImport(); return; // nothing left } // found one, do it var oldhtml=jQuery( '#name-'+elm.id ).html(); var xmlhttp = wppaGetXmlHttp(); xmlhttp.onreadystatechange = function() { if ( xmlhttp.readyState == 4 ) { if ( xmlhttp.status!=404 ) { var resp = xmlhttp.responseText; // if ( resp.length == 0 ) { jQuery( '#name-'+elm.id ).html('<span style="color:red" >Timeout</span>' ); wppaStopAjaxImport(); return; } // if ( resp.indexOf( 'Server' ) != -1 && resp.indexOf( 'Error' ) != -1 ) { resp = '<span style="color:red" >Server error</span>'; } jQuery( '#name-'+elm.id ).html( ' <b>'+resp+'</b>' ); elm.checked = ''; if ( jQuery( '#del-after-p' ).attr( 'checked' ) || jQuery( '#del-after-f' ).attr( 'checked' ) ) { elm.disabled = 'disabled'; elm.title = ''; } if ( wppaImportRuns ) { setTimeout( 'wppaDoAjaxImport()', 100 ); } } else { jQuery( '#name-'+elm.id ).html( ' <b>Not found</b>' ); } } } var url = wppaAjaxUrl+'?action=wppa&wppa-action=import'; xmlhttp.open( 'POST',url,true ); xmlhttp.setRequestHeader( "Content-type","application/x-www-form-urlencoded" ); xmlhttp.send( fulldata ); jQuery( '#name-'+elm.id ).html( ' <b style="color:blue" >' + '<?php _e('Working...', 'wp-photo-album-plus'); ?> ' + '</b>' ); jQuery( '#wppa-start-ajax' ).css( 'display', 'none' ); jQuery( '#wppa-stop-ajax' ).css( 'display', 'inline' ); } function wppaStopAjaxImport() { wppaImportRuns = false; jQuery( '#wppa-start-ajax' ).css( 'display', 'inline' ); jQuery( '#wppa-stop-ajax' ).css( 'display', 'none' ); } </script> <?php if (($photocount || $videocount || $audiocount) && !$albumcount && !$dircount && !$zipcount) { ?> <input id="wppa-start-ajax" type="button" onclick="if ( wppaVfyAlbum() ) { wppaDoAjaxImport() }" class="button-secundary" value="<?php esc_attr(_e('Start Ajax Import', 'wp-photo-album-plus')); ?> " /> <input id="wppa-stop-ajax" style="display:none;" type="button" onclick="wppaStopAjaxImport()" class="button-secundary" value="<?php esc_attr(_e('Stop Ajax Import', 'wp-photo-album-plus')); ?> " /> <?php } ?> </p> </form> <?php } else { if ($source_type == 'local') { wppa_ok_message(__('There are no importable files found in directory:', 'wp-photo-album-plus') . ' ' . $source); } else { wppa_ok_message(__('There are no photos found or left to process at url:', 'wp-photo-album-plus') . ' ' . $source_url); } } echo '<br /><b>'; _e('You can import the following file types:', 'wp-photo-album-plus'); echo '</b><br />'; if (PHP_VERSION_ID >= 50207) { echo '<br />'; _e('Compressed file types: .zip', 'wp-photo-album-plus'); } if (true) { echo '<br />'; _e('Photo file types:', 'wp-photo-album-plus'); foreach ($wppa_supported_photo_extensions as $ext) { echo ' .' . $ext; } } if (wppa_switch('enable_video')) { echo '<br />'; _e('Video file types:', 'wp-photo-album-plus'); foreach ($wppa_supported_video_extensions as $ext) { echo ' .' . $ext; } } if (wppa_switch('enable_audio')) { echo '<br />'; _e('Audio file types:', 'wp-photo-album-plus'); foreach ($wppa_supported_audio_extensions as $ext) { echo ' .' . $ext; } } echo '<br />'; _e('WPPA+ file types: .amf .pmf', 'wp-photo-album-plus'); echo '<br />'; _e('Directories with optional subdirs containig photos', 'wp-photo-album-plus'); echo '<br />'; _e('Custom data files of type .csv', 'wp-photo-album-plus'); echo '<br /><br />'; _e('Your depot directory is:', 'wp-photo-album-plus'); echo '<b> .../' . WPPA_DEPOT . '/</b>'; if (wppa('continue')) { wppa_warning_message(__('Trying to continue...', 'wp-photo-album-plus')); echo '<script type="text/javascript">document.location=\'' . get_admin_url() . 'admin.php?page=wppa_import_photos&continue&nonce=' . wp_create_nonce('dirimport') . '\';</script>'; } echo '<br /><br />'; wppa_album_admin_footer(); echo '</div><!-- .wrap -->'; }
function _wppa_page_import() { global $wppa_revno; global $wppa; global $wpdb; global $wppa_supported_photo_extensions; global $wppa_supported_video_extensions; global $wppa_supported_audio_extensions; if ($wppa['ajax']) { ob_start(); } // Suppress output if ajax operation // Init $ngg_opts = get_option('ngg_options', false); $user = wppa_get_user(); // Check database wppa_check_database(true); // Sanitize system $count = wppa_sanitize_files(); if ($count) { wppa_error_message($count . ' ' . __('illegal files deleted.', 'wppa')); } // Update watermark settings if (wppa_switch('wppa_watermark_on') && (wppa_switch('wppa_watermark_user') || current_user_can('wppa_settings'))) { if (isset($_POST['wppa-watermark-file'])) { update_option('wppa_watermark_file_' . $user, $_POST['wppa-watermark-file']); } if (isset($_POST['wppa-watermark-pos'])) { update_option('wppa_watermark_pos_' . $user, $_POST['wppa-watermark-pos']); } } // Update last used albums if (isset($_POST['wppa-photo-album'])) { update_option('wppa-photo-album-import-' . wppa_get_user(), $_POST['wppa-photo-album']); // nog in form verwerken } if (isset($_POST['wppa-video-album'])) { update_option('wppa-video-album-import-' . wppa_get_user(), $_POST['wppa-video-album']); } if (isset($_POST['wppa-audio-album'])) { update_option('wppa-audio-album-import-' . wppa_get_user(), $_POST['wppa-audio-album']); } // Verify last albums still exist $alb = strval(intval(get_option('wppa-photo-album-import-' . wppa_get_user(), '0'))); if ($alb) { $exists = $wpdb->get_var("SELECT COUNT(*) FROM `" . WPPA_ALBUMS . "` WHERE `id` = " . $alb); if (!$exists) { update_option('wppa-photo-album-import-' . wppa_get_user(), '0'); } } $alb = get_option('wppa-video-album-import-' . wppa_get_user(), '0'); if ($alb) { $exists = $wpdb->get_var("SELECT COUNT(*) FROM `" . WPPA_ALBUMS . "` WHERE `id` = " . $alb); if (!$exists) { update_option('wppa-video-album-import-' . wppa_get_user(), '0'); } } $alb = get_option('wppa-audio-album-import-' . wppa_get_user(), '0'); if ($alb) { $exists = $wpdb->get_var("SELECT COUNT(*) FROM `" . WPPA_ALBUMS . "` WHERE `id` = " . $alb); if (!$exists) { update_option('wppa-audio-album-import-' . wppa_get_user(), '0'); } } // Extract zip if (isset($_GET['zip'])) { wppa_extract($_GET['zip'], true); } // Set local / remote if (isset($_POST['wppa-local-remote'])) { check_admin_referer('$wppa_nonce', WPPA_NONCE); update_option('wppa_import_source_type_' . $user, $_POST['wppa-local-remote']); } // Set import source dir ( when local ) if (isset($_POST['wppa-import-set-source-dir'])) { check_admin_referer('$wppa_nonce', WPPA_NONCE); if (isset($_POST['wppa-source'])) { update_option('wppa_import_source_' . $user, $_POST['wppa-source']); } } // Set import source url ( when remote ) if (isset($_POST['wppa-import-set-source-url'])) { check_admin_referer('$wppa_nonce', WPPA_NONCE); if (isset($_POST['wppa-source-remote'])) { update_option('wppa_import_source_url_' . $user, $_POST['wppa-source-remote']); update_option('wppa_import_source_url_found_' . $user, false); update_option('wppa_import_remote_max_' . $user, strval(intval($_POST['wppa-import-remote-max']))); } } // Hit the submit button if (isset($_POST['wppa-import-submit'])) { if ($wppa['ajax']) { if (!wp_verify_nonce($_POST['wppa-update-check'], '$wppa_nonce')) { echo $_POST['wppa-update-check'] . ' Security check failure'; exit; } } else { check_admin_referer('$wppa_nonce', WPPA_NONCE); } if (isset($_POST['del-after-p'])) { $delp = true; } else { $delp = false; } if (isset($_POST['del-after-a'])) { $dela = true; } else { $dela = false; } if (isset($_POST['del-after-z'])) { $delz = true; } else { $delz = false; } if (isset($_POST['del-after-v'])) { $delv = true; } else { $delv = false; } if (isset($_POST['del-after-u'])) { $delu = true; } else { $delu = false; } if (isset($_POST['del-after-c'])) { $delc = true; } else { $delc = false; } wppa_import_photos($delp, $dela, $delz, $delv, $delu, $delc); } elseif (isset($_GET['continue'])) { if (wp_verify_nonce($_GET['nonce'], 'dirimport')) { wppa_import_photos(); } } // If we did this by ajax, setup reporting results for it if ($wppa['ajax']) { ob_end_clean(); if ($wppa['ajax_import_files_done']) { echo '<span style="color:green" >' . $wppa['ajax_import_files'] . ' ' . __('Done!', 'wppa') . '</span>'; } elseif ($wppa['ajax_import_files_error']) { echo '<span style="color:red" >' . $wppa['ajax_import_files'] . ' ' . $wppa['ajax_import_files_error'] . '</span>'; } else { echo '<span style="color:red" >' . $wppa['ajax_import_files'] . ' ' . __('Failed!', 'wppa') . '</span>'; } exit; } // Sanitize again $count = wppa_sanitize_files(); if ($count) { wppa_error_message($count . ' ' . __('illegal files deleted.', 'wppa')); } ?> <div class="wrap"> <?php $iconurl = WPPA_URL . '/images/camera32.png'; ?> <div id="icon-camera" class="icon32" style="background: transparent url( <?php echo $iconurl; ?> ) no-repeat"></div> <?php $iconurl = WPPA_URL . '/images/arrow32.png'; ?> <div id="icon-arrow" class="icon32" style="background: transparent url( <?php echo $iconurl; ?> ) no-repeat"></div> <?php $iconurl = WPPA_URL . '/images/album32.png'; ?> <div id="icon-album" class="icon32" style="background: transparent url( <?php echo $iconurl; ?> ) no-repeat"><br /></div> <h2><?php _e('Import Photos', 'wppa'); ?> </h2><br /> <?php // Get this users current source directory setting $can_remote = ini_get('allow_url_fopen') && function_exists('curl_init'); // $can_remote = false; // Debug if (!$can_remote) { update_option('wppa_import_source_type_' . $user, 'local'); } $source_type = get_option('wppa_import_source_type_' . $user, 'local'); if ($source_type == 'local') { $source = get_option('wppa_import_source_' . $user, WPPA_DEPOT); if (!$source || !is_dir(WPPA_ABSPATH . $source)) { $source = WPPA_DEPOT; update_option('wppa_import_source_' . $user, WPPA_DEPOT); } $source_path = WPPA_ABSPATH . $source; $source_url = get_bloginfo('url') . '/' . $source; // See if the current source is the 'home' directory $is_depot = $source == WPPA_DEPOT; // See if the current souce is a wp upload location or a wppa+ sourcefile location ( if so: no delete checkbox ) $is_sub_depot = substr($source, 0, strlen(WPPA_DEPOT)) == WPPA_DEPOT && substr(WPPA_ABSPATH . $source, 0, strlen(wppa_opt('wppa_source_dir'))) != wppa_opt('wppa_source_dir'); // See what's in there $files = wppa_get_import_files(); $zipcount = wppa_get_zipcount($files); $albumcount = wppa_get_albumcount($files); $photocount = wppa_get_photocount($files); $videocount = wppa_get_video_count($files); $audiocount = wppa_get_audio_count($files); $dircount = $is_depot ? wppa_get_dircount($files) : '0'; $csvcount = $is_depot ? wppa_get_csvcount($files) : '0'; // echo 'zips:'.$zipcount,' albs:'.$albumcount.' pho:'.$photocount.' dirs:'.$dircount; if ($ngg_opts) { $is_ngg = strpos($source, $ngg_opts['gallerypath']) !== false; // this is false for the ngg root !! } else { $is_ngg = false; } } if ($source_type == 'remote') { $wppa['is_remote'] = true; $source = get_option('wppa_import_source_url_' . $user, 'http://'); $source_path = $source; $source_url = $source; $is_depot = false; $is_sub_depot = false; $files = wppa_get_import_files(); $zipcount = '0'; $albumcount = '0'; $photocount = $files ? count($files) : '0'; $videocount = '0'; $audiocount = '0'; $dircount = '0'; $csvcount = '0'; $is_ngg = false; $remote_max = get_option('wppa_import_remote_max_' . $user, '10'); } ?> <form action="<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_import_photos'); ?> " method="post"> <?php if (current_user_can('administrator') || !wppa_switch('wppa_chgsrc_is_restricted')) { ?> <div style="border:1px solid gray; padding:4px; margin: 3px 0;" > <?php wp_nonce_field('$wppa_nonce', WPPA_NONCE); _e('Select Local or Remote', 'wppa'); $disabled = $can_remote ? '' : 'disabled="disabled"'; ?> <select name="wppa-local-remote" > <option value="local" <?php if ($source_type == 'local') { echo 'selected="selected"'; } ?> ><?php _e('Local', 'wppa'); ?> </option> <option value="remote" <?php echo $disabled; if ($source_type == 'remote') { echo 'selected="selected"'; } ?> ><?php _e('Remote', 'wppa'); ?> </option> </select> <?php if ($can_remote) { ?> <input type="submit" class="button-secundary" name="wppa-import-set-source" value="<?php _e('Set Local/Remote', 'wppa'); ?> " /> <?php } else { if (!ini_get('allow_url_fopen')) { _e('The server does not allow you to import from remote locations. ( The php directive allow_url_fopen is not set to 1 )', 'wppa'); } if (!function_exists('curl_init')) { _e('The server does not allow you to import from remote locations. ( The curl functions are not set up )', 'wppa'); } } ?> </div> <div style="border:1px solid gray; padding:4px; margin: 3px 0;" > <?php wp_nonce_field('$wppa_nonce', WPPA_NONCE); ?> <?php _e('Import photos from:', 'wppa'); ?> <?php if ($source_type == 'local') { ?> <select name="wppa-source"> <option value="<?php echo WPPA_DEPOT; ?> " <?php if ($is_depot) { echo 'selected="selected"'; } ?> ><?php _e('--- My depot ---', 'wppa'); ?> </option> <?php wppa_walktree(WPPA_DEPOT, $source, true, true); // Allow the name 'wppa', exclude topdir if ($ngg_opts) { $nextgen_root = trim($ngg_opts['gallerypath'], '/'); wppa_walktree($nextgen_root, $source, true, true, false); // Allow the name 'wppa', exclude topdir, do not allow 'thumbs' */ } wppa_walktree(WPPA_UPLOAD, $source, false, false); // Do NOT allow the name 'wppa', include topdir ?> </select> <input type="submit" class="button-secundary" name="wppa-import-set-source-dir" value="<?php _e('Set source directory', 'wppa'); ?> " /> <?php } else { ?> <input type="text" style="width:50%" name="wppa-source-remote" value="<?php echo $source; ?> " /> <?php _e('Max:', 'wppa'); ?> <input type="text" style="width:50px;" name="wppa-import-remote-max" value="<?php echo $remote_max; ?> " /> <input type="submit" onclick="jQuery( '#rem-rem' ).css( 'display','inline' ); return true;" class="button-secundary" name="wppa-import-set-source-url" value="<?php _e('Find remote photos', 'wppa'); ?> " /> <span id="rem-rem" style="display:none;"><?php _e('Working, please wait...', 'wppa'); ?> </span> <?php _e('<br />You can enter either a web page address like <i>http://mysite.com/mypage/</i> or a full url to an image file like <i>http://mysite.com/wp-content/uploads/wppa/4711.jpg</i>', 'wppa'); ?> <?php } ?> </div> <?php } ?> </form> <?php // check if albums exist or will be made before allowing upload if (wppa_has_albums() || $albumcount > '0' || $zipcount > '0' || $dircount > '0' || $videocount > '0' || $audiocount > '0' || $csvcount > '0') { if ($photocount > '0' || $albumcount > '0' || $zipcount > '0' || $dircount > '0' || $videocount > '0' || $audiocount > '0' || $csvcount > '0') { ?> <form action="<?php echo wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_import_photos'); ?> " method="post"> <?php wp_nonce_field('$wppa_nonce', WPPA_NONCE); // Display the zips if (PHP_VERSION_ID >= 50207 && $zipcount > '0') { ?> <div style="border:1px solid gray; padding:4px; margin: 3px 0;" > <p><b> <?php _e('There are', 'wppa'); echo ' ' . $zipcount . ' '; _e('zipfiles in the depot.', 'wppa'); ?> <br/> </b></p> <table class="form-table wppa-table widefat" style="margin-bottom:0;" > <thead> <tr> <td> <input type="checkbox" id="all-zip" checked="checked" onchange="checkAll( 'all-zip', '.wppa-zip' )" /><b> <?php _e('Check/uncheck all', 'wppa'); ?> </b> </td> <?php if ($is_sub_depot) { ?> <td> <input type="checkbox" id="del-after-z" name="del-after-z" checked="checked" /><b> <?php _e('Delete after successful extraction.', 'wppa'); ?> </b> </td> <?php } ?> </tr> </thead> </table> <table class="form-table wppa-table widefat" style="margin-top:0;" > <tr> <?php $ct = 0; $idx = '0'; foreach ($files as $file) { $ext = strtolower(substr(strrchr($file, "."), 1)); if ($ext == 'zip') { ?> <td> <input type="checkbox" id="file-<?php echo $idx; ?> " name="file-<?php echo $idx; ?> " class="wppa-zip" checked="checked" /> <?php echo wppa_sanitize_file_name(basename($file)); ?> </td> <?php if ($ct == 3) { echo '</tr><tr>'; $ct = 0; } else { $ct++; } } $idx++; } ?> </tr> </table> </div> <?php } // Dispay the albums ( .amf files ) if ($albumcount > '0') { ?> <div style="border:1px solid gray; padding:4px; margin: 3px 0;" > <p><b> <?php _e('There are', 'wppa'); echo ' ' . $albumcount . ' '; _e('albumdefinitions in the depot.', 'wppa'); ?> <br/> </b></p> <table class="form-table wppa-table widefat" style="margin-bottom:0;" > <thead> <tr> <td> <input type="checkbox" id="all-amf" checked="checked" onchange="checkAll( 'all-amf', '.wppa-amf' )" /><b> <?php _e('Check/uncheck all', 'wppa'); ?> </b> </td> <?php if ($is_sub_depot) { ?> <td> <input type="checkbox" id="del-after-a" name="del-after-a" checked="checked" /><b> <?php _e('Remove from depot after successful import, or if the album already exists.', 'wppa'); ?> </b> </td> <?php } ?> </tr> </thead> </table> <table class="form-table wppa-table widefat" style="margin-top:0;" > <tr> <?php $ct = 0; $idx = '0'; foreach ($files as $file) { $ext = strtolower(substr(strrchr($file, "."), 1)); if ($ext == 'amf') { ?> <td> <input type="checkbox" id="file-<?php echo $idx; ?> " name="file-<?php echo $idx; ?> " class="wppa-amf" checked="checked" /> <?php echo basename($file); ?> <?php echo stripslashes(wppa_get_meta_name($file, '( ')); ?> </td> <?php if ($ct == 3) { echo '</tr><tr>'; $ct = 0; } else { $ct++; } } $idx++; } ?> </tr> </table> </div> <?php } // Display the single photos if ($photocount > '0') { ?> <div style="border:1px solid gray; padding:4px; margin: 3px 0;" > <p><b> <?php _e('There are', 'wppa'); echo ' ' . $photocount . ' '; if ($source_type == 'local') { if ($is_ngg) { _e('photos in the ngg gallery.', 'wppa'); } else { _e('photos in the depot.', 'wppa'); } } else { _e('possible photos found remote.', 'wppa'); } if (wppa_switch('wppa_resize_on_upload')) { echo ' '; _e('Photos will be downsized during import.', 'wppa'); } ?> <br/> </b></p> <p class="hideifupdate" > <?php _e('Default album for import:', 'wppa'); ?> <select name="wppa-photo-album" id="wppa-photo-album"> <?php echo wppa_album_select_a(array('path' => wppa_switch('wppa_hier_albsel'), 'selected' => get_option('wppa-photo-album-import-' . wppa_get_user(), '0'), 'addpleaseselect' => true, 'checkowner' => true, 'checkupload' => true)); ?> </select> <?php _e('Photos that have (<em>name</em>)[<em>album</em>] will be imported by that <em>name</em> in that <em>album</em>.', 'wppa'); ?> </p> <?php if (wppa_switch('wppa_watermark_on') && (wppa_switch('wppa_watermark_user') || current_user_can('wppa_settings'))) { ?> <p> <?php _e('Apply watermark file:', 'wppa'); ?> <select name="wppa-watermark-file" id="wppa-watermark-file"> <?php echo wppa_watermark_file_select(); ?> </select> <?php _e('Position:', 'wppa'); ?> <select name="wppa-watermark-pos" id="wppa-watermark-pos"> <?php echo wppa_watermark_pos_select(); ?> </select> </p> <?php } ?> <table class="form-table wppa-table widefat" style="margin-bottom:0;" > <thead> <tr> <td> <input type="checkbox" id="all-pho" <?php if ($is_sub_depot) { echo 'checked="checked"'; } ?> onchange="checkAll( 'all-pho', '.wppa-pho' )" /><b> <?php _e('Check/uncheck all', 'wppa'); ?> </b> </td> <?php if ($is_sub_depot) { ?> <td> <input type="checkbox" id="del-after-p" name="del-after-p" checked="checked" /><b> <?php _e('Remove from depot after successful import.', 'wppa'); ?> </b> </td> <?php } ?> <?php if ($is_ngg) { ?> <td> <input type="checkbox" id="cre-album" name="cre-album" checked="checked" value="<?php echo esc_attr(basename($source)); ?> " /><b> <?php echo sprintf(__('Import into album <i>%s</i>.', 'wppa'), basename($source)); ?> </b> <br /><small><?php _e('The album will be created if it does not exist', 'wppa'); ?> </small> </td> <td> <input type="checkbox" id="use-backup" name="use-backup" checked="checked" /><b> <?php _e('Use backup if available', 'wppa'); ?> </b> </td> <?php } ?> <td> <input type="checkbox" id="wppa-update" onchange="impUpd( this, '#submit' )" name="wppa-update"><b> <?php _e('Update existing photos', 'wppa'); ?> </b> </td> <td> <?php if (wppa_switch('wppa_void_dups')) { ?> <input type="hidden" id="wppa-nodups" name="wppa-nodups" value="true" /> <?php } else { ?> <input type="checkbox" id="wppa-nodups" name="wppa-nodups" checked="checked" ><b> <?php _e('Do not create duplicates', 'wppa'); ?> </b> <?php } ?> </td> <?php if (wppa_switch('wppa_import_preview')) { ?> <td> <input type="checkbox" id="wppa-zoom" onclick="wppa_setCookie('zoompreview', this.checked, '365')" ><b> <?php _e('Zoom previews', 'wppa'); ?> </b> <script type="text/javascript">if ( wppa_getCookie('zoompreview') == true ) { jQuery('#wppa-zoom').attr('checked', 'checked') }</script> </td> <?php } ?> </tr> </thead> </table> <table class="form-table wppa-table widefat" style="margin-top:0;" > <tr> <?php $ct = 0; $idx = '0'; if (is_array($files)) { foreach ($files as $file) { $ext = strtolower(substr(strrchr($file, "."), 1)); $meta = wppa_strip_ext($file) . 'pmf'; if (in_array($ext, $wppa_supported_photo_extensions)) { ?> <td id="td-file-<?php echo $idx; ?> " > <input type="checkbox" id="file-<?php echo $idx; ?> " name="file-<?php echo $idx; ?> " title="<?php echo $file; ?> " class= "wppa-pho" <?php if ($is_sub_depot) { echo 'checked="checked"'; } ?> /><span id="name-file-<?php echo $idx; ?> " > <?php echo wppa_sanitize_file_name(basename($file)); ?> <?php echo stripslashes(wppa_get_meta_name($meta, '( ')); echo stripslashes(wppa_get_meta_album($meta, '[')); ?> </span> <?php if (wppa_switch('wppa_import_preview')) { if ($wppa['is_remote']) { if (strpos($file, '//res.cloudinary.com/') !== false) { $img_url = dirname($file) . '/h_144/' . basename($file); } else { $img_url = $file; } } else { $img_url = str_replace(ABSPATH, home_url() . '/', $file); } ?> <img src="<?php echo $img_url; ?> " alt="N.A." style="max-height:48px;" onmouseover="if (jQuery('#wppa-zoom').attr('checked')) jQuery(this).css('max-height', '144px')" onmouseout="if (jQuery('#wppa-zoom').attr('checked')) jQuery(this).css('max-height', '48px')" /> <?php } ?> </td> <?php if ($ct == 3) { echo '</tr><tr>'; $ct = 0; } else { $ct++; } } $idx++; } } ?> </tr> </table> </div> <?php } // Display the videos if ($videocount > '0' && wppa_switch('enable_video')) { ?> <div style="border:1px solid gray; padding:4px; margin: 3px 0;" > <p><b> <?php _e('There are', 'wppa'); echo ' ' . $videocount . ' '; _e('videos in the depot.', 'wppa'); ?> <br/> </b></p> <p class="hideifupdate" > <?php _e('Album to import to:', 'wppa'); ?> <select name="wppa-video-album" id="wppa-video-album"> <?php echo wppa_album_select_a(array('path' => wppa_switch('wppa_hier_albsel'), 'selected' => get_option('wppa-video-album-import-' . wppa_get_user(), '0'), 'addpleaseselect' => true, 'checkowner' => true, 'checkupload' => true)); ?> </select> </p> <table class="form-table wppa-table widefat" style="margin-bottom:0;" > <thead> <tr> <td> <input type="checkbox" id="all-video" checked="checked" onchange="checkAll( 'all-video', '.wppa-video' )" /><b> <?php _e('Check/uncheck all', 'wppa'); ?> </b> </td> <?php if ($is_sub_depot) { ?> <td> <input type="checkbox" id="del-after-v" name="del-after-v" checked="checked" /><b> <?php _e('Remove from depot after successful import.', 'wppa'); ?> </b> </td> <?php } ?> </tr> </thead> </table> <table class="form-table wppa-table widefat" style="margin-top:0;" > <tr> <?php $ct = 0; $idx = '0'; if (is_array($files)) { foreach ($files as $file) { $ext = strtolower(substr(strrchr($file, "."), 1)); if (in_array($ext, $wppa_supported_video_extensions)) { ?> <td> <input type="checkbox" id="file-<?php echo $idx; ?> " name="file-<?php echo $idx; ?> " title="<?php echo $file; ?> " class="wppa-video" checked="checked" /><span id="name-file-<?php echo $idx; ?> " > <?php echo wppa_sanitize_file_name(basename($file)); ?> </span> </td> <?php if ($ct == 3) { echo '</tr><tr>'; $ct = 0; } else { $ct++; } } $idx++; } } ?> </tr> </table> </div> <?php } // Display the audios if ($audiocount > '0' && wppa_switch('enable_audio')) { ?> <div style="border:1px solid gray; padding:4px; margin: 3px 0;" > <p><b> <?php _e('There are', 'wppa'); echo ' ' . $audiocount . ' '; _e('audios in the depot.', 'wppa'); ?> <br/> </b></p> <p class="hideifupdate" > <?php _e('Album to import to:', 'wppa'); ?> <select name="wppa-audio-album" id="wppa-audio-album"> <?php echo wppa_album_select_a(array('path' => wppa_switch('wppa_hier_albsel'), 'selected' => get_option('wppa-audio-album-import-' . wppa_get_user(), '0'), 'addpleaseselect' => true, 'checkowner' => true, 'checkupload' => true)); ?> </select> </p> <table class="form-table wppa-table widefat" style="margin-bottom:0;" > <thead> <tr> <td> <input type="checkbox" id="all-audio" checked="checked" onchange="checkAll( 'all-audio', '.wppa-audio' )" /><b> <?php _e('Check/uncheck all', 'wppa'); ?> </b> </td> <?php if ($is_sub_depot) { ?> <td> <input type="checkbox" id="del-after-u" name="del-after-u" checked="checked" /><b> <?php _e('Remove from depot after successful import.', 'wppa'); ?> </b> </td> <?php } ?> </tr> </thead> </table> <table class="form-table wppa-table widefat" style="margin-top:0;" > <tr> <?php $ct = 0; $idx = '0'; if (is_array($files)) { foreach ($files as $file) { $ext = strtolower(substr(strrchr($file, "."), 1)); if (in_array($ext, $wppa_supported_audio_extensions)) { ?> <td> <input type="checkbox" id="file-<?php echo $idx; ?> " name="file-<?php echo $idx; ?> " title="<?php echo $file; ?> " class="wppa-audio" checked="checked" /><span id="name-file-<?php echo $idx; ?> " > <?php echo wppa_sanitize_file_name(basename($file)); ?> </span> </td> <?php if ($ct == 3) { echo '</tr><tr>'; $ct = 0; } else { $ct++; } } $idx++; } } ?> </tr> </table> </div> <?php } // Display the directories to be imported as albums. Do this in the depot only!! if ($is_depot && $dircount > '0') { ?> <div style="border:1px solid gray; padding:4px; margin: 3px 0;" > <p><b> <?php _e('There are', 'wppa'); echo ' ' . $dircount . ' '; _e('albumdirectories in the depot.', 'wppa'); ?> <br/> </b></p> <table class="form-table wppa-table widefat" style="margin-bottom:0;" > <thead> <tr> <td> <input type="checkbox" id="all-dir" checked="checked" onchange="checkAll( 'all-dir', '.wppa-dir' )" /><b> <?php _e('Check/uncheck all', 'wppa'); ?> </b> </td> </tr> </thead> </table> <table class="form-table wppa-table widefat" style="margin-top:0;" > <?php $ct = 0; $idx = '0'; foreach ($files as $dir) { if (basename($dir) == '.') { } elseif (basename($dir) == '..') { } elseif (is_dir($dir)) { ?> <tr> <td> <input type="checkbox" id="file-<?php echo $idx; ?> " name="file-<?php echo $idx; ?> " class= "wppa-dir" checked="checked" /> <b><?php echo wppa_sanitize_file_name(basename($dir)); ?> </b> <?php $subfiles = glob($dir . '/*'); $subdircount = '0'; if ($subfiles) { foreach ($subfiles as $subfile) { if (is_dir($subfile) && basename($subfile) != '.' && basename($subfile) != '..') { $subdircount++; } } } $sfcount = empty($subfiles) ? '0' : wppa_get_photocount($subfiles); echo ' Contains ' . $sfcount . ' files'; if ($subdircount) { echo ' and ' . $subdircount . ' sub directories.'; } ?> </td> </tr> <?php } $idx++; } ?> </table> </div> <?php } ?> <?php // Display the csv files if ($is_depot && $csvcount > '0') { ?> <div style="border:1px solid gray; padding:4px; margin: 3px 0;" > <p><b> <?php _e('There are', 'wppa'); echo ' ' . $csvcount . ' '; _e('csv files in the depot.', 'wppa'); ?> <br/> </b></p> <table class="form-table wppa-table widefat" style="margin-bottom:0;" > <thead> <tr> <td> <input type="checkbox" id="all-csv" checked="checked" onchange="checkAll( 'all-csv', '.wppa-csv' )" /><b> <?php _e('Check/uncheck all', 'wppa'); ?> </b> </td> <td> <input type="checkbox" id="del-after-c" name="del-after-c" checked="checked" disabled="disabled" /><b> <?php _e('Remove from depot after successful import.', 'wppa'); ?> </b> </td> </tr> </thead> </table> <table class="form-table wppa-table widefat" style="margin-top:0;" > <?php $ct = 0; $idx = '0'; foreach ($files as $csv) { if (is_file($csv) && strtolower(wppa_get_ext($csv) == 'csv')) { ?> <tr> <td> <input type="checkbox" id="file-<?php echo $idx; ?> " name="file-<?php echo $idx; ?> " class= "wppa-csv" checked="checked" /> <b><?php echo wppa_sanitize_file_name(basename($csv)) . ' (' . sprintf('%5.1f', filesize($csv) / 1024) . ' kb)'; ?> </b> </td> </tr> <?php } $idx++; } ?> </table> </div> <?php } ?> <?php // The submit button ?> <p> <script type="text/javascript"> function wppaVfyAlbum() { var csvs = jQuery( '.wppa-csv' ); if ( jQuery( '#wppa-update' ).attr( 'checked' ) != 'checked' ) { if ( ! parseInt( jQuery( '#wppa-photo-album' ).attr( 'value' ) ) && ! parseInt( jQuery( '#wppa-video-album' ).attr( 'value' ) ) && ! parseInt( jQuery( '#wppa-audio-album' ).attr( 'value' ) ) && csvs.length == 0 ) { alert( 'Please select an album first' ); return false; } } return true; } function wppaCheckInputVars() { var checks = jQuery( ':checked' ); var nChecks = checks.length; var nMax = <?php echo ini_get('max_input_vars'); ?> ; if ( nMax == 0 ) nMax = 100; if ( nChecks > nMax ) { alert ( 'There are '+nChecks+' boxes checked or selected, that is more than the maximum allowed number of '+nMax ); return false; } var dirs = jQuery( '.wppa-dir' ); var nDirsChecked = 0; if ( dirs.length > 0 ) { var i = 0; while ( i < dirs.length ) { if ( jQuery( dirs[i] ).attr( 'checked' ) == 'checked' ) { nDirsChecked++; } i++; } } var zips = jQuery( '.wppa-zip' ); var nZipsChecked = 0; if ( zips.length > 0 ) { var i = 0; while ( i < zips.length ) { if ( jQuery( zips[i] ).attr( 'checked' ) == 'checked' ) { nZipsChecked++; } i++; } } // If no dirs to import checked, there must be an album selected if ( 0 == nDirsChecked && 0 == nZipsChecked && ! wppaVfyAlbum() ) return false; return true; } </script> <input type="submit" onclick="return wppaCheckInputVars()" class="button-primary" id="submit" name="wppa-import-submit" value="<?php _e('Import', 'wppa'); ?> " /> <script type="text/javascript" > var wppaImportRuns = false; function wppaDoAjaxImport() { wppaImportRuns = true; var data = ''; data += 'wppa-update-check='+jQuery( '#wppa-update-check' ).attr( 'value' ); data += '&wppa-photo-album='+jQuery( '#wppa-photo-album' ).attr( 'value' ); data += '&wppa-video-album='+jQuery( '#wppa-video-album' ).attr( 'value' ); data += '&wppa-audio-album='+jQuery( '#wppa-audio-album' ).attr( 'value' ); data += '&wppa-watermark-file='+jQuery( '#wppa-watermark-file' ).attr( 'value' ); data += '&wppa-watermark-pos='+jQuery( '#wppa-watermark-pos' ).attr( 'value' ); if ( jQuery( '#cre-album' ).attr( 'checked' ) ) data += '&cre-album='+jQuery( '#cre-album' ).attr( 'value' ); if ( jQuery( '#use-backup' ).attr( 'checked' ) ) data += '&use-backup=on'; //+jQuery( '#use-backup' ).attr( 'value' ); if ( jQuery( '#wppa-update' ).attr( 'checked' ) ) data += '&wppa-update=on'; //+jQuery( '#wppa-update' ).attr( 'value' ); if ( jQuery( '#wppa-nodups' ).attr( 'checked' ) ) data += '&wppa-nodups=on'; //+jQuery( '#wppa-nudups' ).attr( 'value' ); if ( jQuery( '#del-after-p' ).attr( 'checked' ) ) data += '&del-after-p=on'; if ( jQuery( '#del-after-v' ).attr( 'checked' ) ) data += '&del-after-v=on'; if ( jQuery( '#del-after-u' ).attr( 'checked' ) ) data += '&del-after-u=on'; data += '&wppa-import-submit=ajax'; var files = jQuery( ':checked' ); var found = false; var i=0; var elm; var fulldata; for ( i=0; i<files.length; i++ ) { found = false; // assume done elm = files[i]; // Is it a file checkbox? var temp = elm.id.split( '-' ); if ( temp[0] != 'file' ) continue; // no fulldata = data+'&import-ajax-file='+elm.title; found = true; break; } // alert( data ); if ( ! found ) { wppaStopAjaxImport(); return; // nothing left } // found one, do it var oldhtml=jQuery( '#name-'+elm.id ).html(); var xmlhttp = wppaGetXmlHttp(); xmlhttp.onreadystatechange = function() { if ( xmlhttp.readyState == 4 ) { if ( xmlhttp.status!=404 ) { if ( jQuery( '#del-after-p' ).attr( 'checked' ) ) { elm.checked = ''; elm.disabled = 'disabled'; elm.title = ''; jQuery( '#name-'+elm.id ).html( ' <b>'+xmlhttp.responseText+'</b>' ); } else { elm.checked = ''; jQuery( '#name-'+elm.id ).html( ' <b>'+xmlhttp.responseText+'</b>' ); } if ( wppaImportRuns ) { setTimeout( 'wppaDoAjaxImport()', 100 ); } } else { jQuery( '#name-'+elm.id ).html( ' <b>Not found</b>' ); } } } var url = wppaAjaxUrl+'?action=wppa&wppa-action=import'; xmlhttp.open( 'POST',url,true ); xmlhttp.setRequestHeader( "Content-type","application/x-www-form-urlencoded" ); xmlhttp.send( fulldata ); jQuery( '#name-'+elm.id ).html( ' <b style="color:blue" >Working...</b>' ); jQuery( '#wppa-start-ajax' ).css( 'display', 'none' ); jQuery( '#wppa-stop-ajax' ).css( 'display', 'inline' ); } function wppaStopAjaxImport() { wppaImportRuns = false; jQuery( '#wppa-start-ajax' ).css( 'display', 'inline' ); jQuery( '#wppa-stop-ajax' ).css( 'display', 'none' ); } </script> <?php if (($photocount || $videocount || $audiocount) && !$albumcount && !$dircount && !$zipcount) { ?> <input id="wppa-start-ajax" type="button" onclick="if ( wppaVfyAlbum() ) { wppaDoAjaxImport() }" class="button-secundary" value="Start Ajax" /> <input id="wppa-stop-ajax" style="display:none;" type="button" onclick="wppaStopAjaxImport()" class="button-secundary" value="Stop Ajax" /> <?php } ?> </p> </form> <?php } else { if ($source_type == 'local') { wppa_ok_message(__('There are no importable files found in directory:', 'wppa') . ' ' . $source_url); } else { wppa_ok_message(__('There are no photos found or left to process at url:', 'wppa') . ' ' . $source_url); } } echo '<br /><b>'; _e('You can import the following file types:', 'wppa'); echo '</b><br />'; if (PHP_VERSION_ID >= 50207) { echo '<br />'; _e('Compressed file types: .zip', 'wppa'); } if (true) { echo '<br />'; _e('Photo file types:', 'wppa'); foreach ($wppa_supported_photo_extensions as $ext) { echo ' .' . $ext; } } if (wppa_switch('enable_video')) { echo '<br />'; _e('Video file types:', 'wppa'); foreach ($wppa_supported_video_extensions as $ext) { echo ' .' . $ext; } } if (wppa_switch('enable_audio')) { echo '<br />'; _e('Audio file types:', 'wppa'); foreach ($wppa_supported_audio_extensions as $ext) { echo ' .' . $ext; } } echo '<br />'; _e('WPPA+ file types: .amf .pmf', 'wppa'); echo '<br />'; _e('Directories with optional subdirs containig photos', 'wppa'); echo '<br />'; _e('Custom data files of type .csv', 'wppa'); echo '<br /><br />'; _e('Your depot directory is:', 'wppa'); echo '<b> .../' . WPPA_DEPOT . '/</b>'; } else { ?> <?php $url = wppa_dbg_url(get_admin_url() . 'admin.php?page=wppa_admin_menu'); ?> <p><?php _e('No albums exist. You must', 'wppa'); ?> <a href="<?php echo $url; ?> "><?php _e('create one', 'wppa'); ?> </a> <?php _e('beofre you can upload your photos.', 'wppa'); ?> </p><?php } if ($wppa['continue']) { wppa_warning_message(__('Trying to continue...', 'wppa')); echo '<script type="text/javascript">document.location=\'' . get_admin_url() . 'admin.php?page=wppa_import_photos&continue&nonce=' . wp_create_nonce('dirimport') . '\';</script>'; } ?> </div> <?php }