/** * ngg_convert_filestructure() - converter for old thumnail folder structure * * @return void */ function ngg_convert_filestructure() { global $wpdb; $gallerylist = $wpdb->get_results("SELECT * FROM {$wpdb->nggallery} ORDER BY gid ASC", OBJECT_K); if (is_array($gallerylist)) { $errors = array(); foreach ($gallerylist as $gallery) { $gallerypath = ABSPATH . $gallery->path; // old mygallery check, convert the wrong folder/ file name now if (@is_dir($gallerypath . '/tumbs')) { if (!@rename($gallerypath . '/tumbs', $gallerypath . '/thumbs')) { $errors[] = $gallery->path . '/thumbs'; } // read list of images $imageslist = nggAdmin::scandir($gallerypath . '/thumbs'); if (!empty($imageslist)) { foreach ($imageslist as $image) { $purename = substr($image, 4); if (!@rename($gallerypath . '/thumbs/' . $image, $gallerypath . '/thumbs/thumbs_' . $purename)) { $errors[] = $gallery->path . '/thumbs/thumbs_' . $purename; } } } } } if (!empty($errors)) { echo "<div class='error_inline'><p>" . __('Some folders/files could not renamed, please recheck the permission and rescan the folder in the manage gallery section.', 'nggallery') . "</p>"; foreach ($errors as $value) { echo __('Rename failed', 'nggallery') . ' : <strong>' . $value . "</strong><br />\n"; } echo '</div>'; } } }
/** * Upload function will be called via the Flash uploader * * @class nggAdmin * @param integer $galleryID * @return string $result */ function swfupload_image($galleryID = 0) { global $wpdb; if ($galleryID == 0) { return __('No gallery selected !', 'nggallery'); } // WPMU action if (nggWPMU::check_quota()) { return '0'; } // Check the upload if (!isset($_FILES['Filedata']) || !is_uploaded_file($_FILES['Filedata']['tmp_name']) || $_FILES['Filedata']['error'] != 0) { return __('Invalid upload. Error Code : ', 'nggallery') . $_FILES['Filedata']['error']; } // get the filename and extension $temp_file = $_FILES['Filedata']['tmp_name']; $filepart = nggGallery::fileinfo($_FILES['Filedata']['name']); $filename = $filepart['basename']; // check for allowed extension $ext = array('jpg', 'png', 'gif'); if (!in_array($filepart['extension'], $ext)) { return $_FILES[$key]['name'] . __('is no valid image file!', 'nggallery'); } // get the path to the gallery $gallerypath = $wpdb->get_var("SELECT path FROM {$wpdb->nggallery} WHERE gid = '{$galleryID}' "); if (!$gallerypath) { @unlink($temp_file); return __('Failure in database, no gallery path set !', 'nggallery'); } // read list of images $imageslist = nggAdmin::scandir(WINABSPATH . $gallerypath); // check if this filename already exist $i = 0; while (in_array($filename, $imageslist)) { $filename = $filepart['filename'] . '_' . $i++ . '.' . $filepart['extension']; } $dest_file = WINABSPATH . $gallerypath . '/' . $filename; // save temp file to gallery if (!@move_uploaded_file($_FILES["Filedata"]['tmp_name'], $dest_file)) { nggAdmin::check_safemode(WINABSPATH . $gallerypath); return __('Error, the file could not be moved to : ', 'nggallery') . $dest_file; } if (!nggAdmin::chmod($dest_file)) { return __('Error, the file permissions could not be set', 'nggallery'); } return '0'; }
/** * nggAdmin::import_gallery() * TODO: Check permission of existing thumb folder & images * * @class nggAdmin * @param string $galleryfolder contains relative path to the gallery itself * @return void */ static function import_gallery($galleryfolder, $gallery_id = NULL) { global $wpdb, $user_ID; // get the current user ID wp_get_current_user(); $created_msg = ''; // remove trailing slash at the end, if somebody use it $galleryfolder = untrailingslashit($galleryfolder); $fs = C_Fs::get_instance(); if (is_null($gallery_id)) { $gallerypath = $fs->join_paths($fs->get_document_root('content'), $galleryfolder); } else { $storage = C_Gallery_Storage::get_instance(); $gallerypath = $storage->get_gallery_abspath($gallery_id); } if (!is_dir($gallerypath)) { nggGallery::show_error(sprintf(__("Directory <strong>%s</strong> doesn`t exist!", 'nggallery'), esc_html($gallerypath))); return; } // read list of images $new_imageslist = nggAdmin::scandir($gallerypath); if (empty($new_imageslist)) { nggGallery::show_message(sprintf(__("Directory <strong>%s</strong> contains no pictures", 'nggallery'), esc_html($gallerypath))); return; } // take folder name as gallery name $galleryname = basename($galleryfolder); $galleryname = apply_filters('ngg_gallery_name', $galleryname); // check for existing gallery folder if (is_null($gallery_id)) { $gallery_id = $wpdb->get_var("SELECT gid FROM {$wpdb->nggallery} WHERE path = '{$galleryfolder}' "); } if (!$gallery_id) { // now add the gallery to the database $gallery_id = nggdb::add_gallery($galleryname, $galleryfolder, '', 0, 0, $user_ID); if (!$gallery_id) { nggGallery::show_error(__('Database error. Could not add gallery!', 'nggallery')); return; } else { do_action('ngg_created_new_gallery', $gallery_id); } $created_msg = sprintf(_n("Gallery <strong>%s</strong> successfully created!", 'Galleries <strong>%s</strong> successfully created!', 1, 'nggallery'), esc_html($galleryname)); } // Look for existing image list $old_imageslist = $wpdb->get_col("SELECT filename FROM {$wpdb->nggpictures} WHERE galleryid = '{$gallery_id}' "); // if no images are there, create empty array if ($old_imageslist == NULL) { $old_imageslist = array(); } // check difference $new_images = array_diff($new_imageslist, $old_imageslist); // all images must be valid files foreach ($new_images as $key => $picture) { // filter function to rename/change/modify image before $picture = apply_filters('ngg_pre_add_new_image', $picture, $gallery_id); $new_images[$key] = $picture; if (!@getimagesize($gallerypath . '/' . $picture)) { unset($new_images[$key]); @unlink($gallerypath . '/' . $picture); } } // add images to database $image_ids = nggAdmin::add_Images($gallery_id, $new_images); do_action('ngg_after_new_images_added', $gallery_id, $image_ids); //add the preview image if needed nggAdmin::set_gallery_preview($gallery_id); // now create thumbnails nggAdmin::do_ajax_operation('create_thumbnail', $image_ids, __('Create new thumbnails', 'nggallery')); //TODO:Message will not shown, because AJAX routine require more time, message should be passed to AJAX $message = $created_msg . sprintf(_n('%s picture successfully added', '%s pictures successfully added', count($image_ids), 'nggallery'), count($image_ids)); $message .= ' [<a href="' . admin_url() . 'admin.php?page=nggallery-manage-gallery&mode=edit&gid=' . $gallery_id . '" >'; $message .= __('Edit gallery', 'nggallery'); $message .= '</a>]'; nggGallery::show_message($message); return; }
/** * Upload function will be called via the Flash uploader * * @class nggAdmin * @param integer $galleryID * @return string $result */ static function swfupload_image($galleryID = 0) { global $nggdb; if ($galleryID == 0) { return __('No gallery selected !', 'nggallery'); } // WPMU action if (nggWPMU::check_quota()) { return '0'; } // Check the upload if (!isset($_FILES['Filedata']) || !is_uploaded_file($_FILES['Filedata']['tmp_name']) || $_FILES['Filedata']['error'] != 0) { return __('Invalid upload. Error Code : ', 'nggallery') . $_FILES['Filedata']['error']; } // get the filename and extension $temp_file = $_FILES['Filedata']['tmp_name']; $filepart = nggGallery::fileinfo($_FILES['Filedata']['name']); $filename = $filepart['basename']; // check for allowed extension $ext = apply_filters('ngg_allowed_file_types', array('jpeg', 'jpg', 'png', 'gif')); if (!in_array(strtolower($filepart['extension']), $ext)) { return esc_html($_FILES[$key]['name']) . __('is no valid image file!', 'nggallery'); } // get the path to the gallery $gallery = $nggdb->find_gallery((int) $galleryID); if (empty($gallery->path)) { @unlink($temp_file); return __('Failure in database, no gallery path set !', 'nggallery'); } // read list of images $imageslist = nggAdmin::scandir(WINABSPATH . $gallery->path); // check if this filename already exist $i = 0; while (in_array($filename, $imageslist)) { $filename = $filepart['filename'] . '_' . $i++ . '.' . $filepart['extension']; } $dest_file = WINABSPATH . $gallery->path . '/' . $filename; // save temp file to gallery if (!@move_uploaded_file($_FILES["Filedata"]['tmp_name'], $dest_file)) { nggAdmin::check_safemode(WINABSPATH . $gallery->path); return __('Error, the file could not be moved to : ', 'nggallery') . esc_html($dest_file); } if (!nggAdmin::chmod($dest_file)) { return __('Error, the file permissions could not be set', 'nggallery'); } return '0'; }