Пример #1
0
 /**
  * Move images from one folder to another
  * 
  * @class nggAdmin
  * @param array|int $pic_ids ID's of the images
  * @param int $dest_gid destination gallery
  * @return void
  */
 function move_images($pic_ids, $dest_gid)
 {
     $errors = '';
     $count = 0;
     if (!is_array($pic_ids)) {
         $pic_ids = array($pic_ids);
     }
     // Get destination gallery
     $destination = nggdb::find_gallery($dest_gid);
     $dest_abspath = WINABSPATH . $destination->path;
     if ($destination == null) {
         nggGallery::show_error(__('The destination gallery does not exist', 'nggallery'));
         return;
     }
     // Check for folder permission
     if (!is_writeable($dest_abspath)) {
         $message = sprintf(__('Unable to write to directory %s. Is this directory writable by the server?', 'nggallery'), $dest_abspath);
         nggGallery::show_error($message);
         return;
     }
     // Get pictures
     $images = nggdb::find_images_in_list($pic_ids);
     foreach ($images as $image) {
         $i = 0;
         $tmp_prefix = '';
         $destination_file_name = $image->filename;
         // check if the filename already exist, then we add a copy_ prefix
         while (file_exists($dest_abspath . '/' . $destination_file_name)) {
             $tmp_prefix = 'copy_' . $i++ . '_';
             $destination_file_name = $tmp_prefix . $image->filename;
         }
         $destination_path = $dest_abspath . '/' . $destination_file_name;
         $destination_thumbnail = $dest_abspath . '/thumbs/thumbs_' . $destination_file_name;
         // Move files
         if (!@rename($image->imagePath, $destination_path)) {
             $errors .= sprintf(__('Failed to move image %1$s to %2$s', 'nggallery'), '<strong>' . $image->filename . '</strong>', $destination_path) . '<br />';
             continue;
         }
         // Move backup file, if possible
         @rename($image->imagePath . '_backup', $destination_path . '_backup');
         // Move the thumbnail, if possible
         @rename($image->thumbPath, $destination_thumbnail);
         // Change the gallery id in the database , maybe the filename
         if (nggdb::update_image($image->pid, $dest_gid, $destination_file_name)) {
             $count++;
         }
     }
     if ($errors != '') {
         nggGallery::show_error($errors);
     }
     $link = '<a href="' . admin_url() . 'admin.php?page=nggallery-manage-gallery&mode=edit&gid=' . $destination->gid . '" >' . $destination->title . '</a>';
     $messages = sprintf(__('Moved %1$s picture(s) to gallery : %2$s .', 'nggallery'), $count, $link);
     nggGallery::show_message($messages);
     return;
 }
Пример #2
0
 /**
  * Method "ngg.editImage"
  * Edit a existing Image
  * 
  * @since 1.7.3
  * 
  * @param array $args Method parameters.
  * 			- int blog_id
  *	    	- string username
  *	    	- string password
  *	    	- int Image ID
  *	    	- string alt/title text
  *	    	- string description
  *	    	- int exclude from gallery (0 or 1)
  * @return true if success
  */
 function editImage($args)
 {
     global $ngg;
     require_once dirname(dirname(__FILE__)) . '/admin/functions.php';
     // admin functions
     $this->escape($args);
     $blog_ID = (int) $args[0];
     $username = $args[1];
     $password = $args[2];
     $id = (int) $args[3];
     $alttext = $args[4];
     $description = $args[5];
     $exclude = (int) $args[6];
     if (!($user = $this->login($username, $password))) {
         return $this->error;
     }
     if (!($image = nggdb::find_image($id))) {
         return new IXR_Error(404, __("Invalid image ID"));
     }
     if (!current_user_can('NextGEN Manage gallery') && !nggAdmin::can_manage_this_gallery($image->author)) {
         return new IXR_Error(401, __('Sorry, you must be able to edit this image'));
     }
     if (!empty($alttext)) {
         $result = nggdb::update_image($id, false, false, $description, $alttext, $exclude);
     }
     if (!$result) {
         return new IXR_Error(500, __('Sorry, could not update the image'));
     }
     return true;
 }