当前位置: 首页>>代码示例>>PHP>>正文


PHP FD::image方法代码示例

本文整理汇总了PHP中FD::image方法的典型用法代码示例。如果您正苦于以下问题:PHP FD::image方法的具体用法?PHP FD::image怎么用?PHP FD::image使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在FD的用法示例。


在下文中一共展示了FD::image方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: createCover

 /**
  * Some desc
  *
  * @since	1.0
  * @access	public
  * @param	string
  * @return
  */
 public function createCover($file, $inputName)
 {
     // Load our own image library
     $image = FD::image();
     // Generates a unique name for this image.
     $name = $file['name'];
     // Load up the file.
     $image->load($file['tmp_name'], $name);
     // Ensure that the image is valid.
     if (!$image->isValid()) {
         // @TODO: Add some logging here.
         echo JText::_('PLG_FIELDS_AVATAR_VALIDATION_INVALID_IMAGE');
         exit;
     }
     // Get the storage path
     $storage = SocialFieldsUserCoverHelper::getStoragePath($inputName);
     // Create a new avatar object.
     $photos = FD::get('Photos', $image);
     // Create avatars
     $sizes = $photos->create($storage);
     // We want to format the output to get the full absolute url.
     $base = basename($storage);
     $result = array();
     foreach ($sizes as $size => $value) {
         $row = new stdClass();
         $row->title = $file['name'];
         $row->file = $value;
         $row->path = JPATH_ROOT . '/media/com_easysocial/tmp/' . $base . '/' . $value;
         $row->uri = rtrim(JURI::root(), '/') . '/media/com_easysocial/tmp/' . $base . '/' . $value;
         $result[$size] = $row;
     }
     return $result;
 }
开发者ID:BetterBetterBetter,项目名称:B3App,代码行数:41,代码来源:ajax.php

示例2: cache

 /**
  * Stores a given image link into the local cache
  *
  * @since	1.2.11
  * @access	public
  * @param	string
  * @return
  */
 public function cache($imageLink)
 {
     // Check if settings is enabled
     if (!$this->config->get('links.cache.images')) {
         return false;
     }
     // Generate a unique name for this file
     $name = md5($imageLink) . '.png';
     // Get the storage path
     $storageFolder = FD::cleanPath($this->config->get('links.cache.location'));
     $storage = JPATH_ROOT . '/' . $storageFolder . '/' . $name;
     $storageURI = rtrim(JURI::root(), '/') . '/' . $storageFolder . '/' . $name;
     $exists = JFile::exists($storage);
     // If the file is already cached, skip this
     if ($exists) {
         return $storageURI;
     }
     // Crawl the image now.
     $connector = FD::get('Connector');
     $connector->addUrl($imageLink);
     $connector->connect();
     // Get the result and parse them.
     $contents = $connector->getResult($imageLink);
     // Store the file to a temporary directory first
     $tmpFile = SOCIAL_TMP . '/' . $name;
     JFile::write($tmpFile, $contents);
     // Load the image now
     $image = FD::image();
     $image->load($tmpFile);
     // Ensure that image is valid
     if (!$image->isValid()) {
         JFile::delete($tmpFile);
         return false;
     }
     // Delete the temporary file.
     JFile::delete($tmpFile);
     // Unset the image now since we don't want to use asido to resize
     unset($image);
     // Store the file now into our cache storage.
     JFile::write($storage, $contents);
     return $storageURI;
 }
开发者ID:ppantilla,项目名称:bbninja,代码行数:50,代码来源:links.php

示例3: upload

 public function upload()
 {
     // Get the ajax library
     $ajax = FD::ajax();
     // Get the file
     $tmp = JRequest::getVar($this->inputName, '', 'FILES');
     $file = array();
     foreach ($tmp as $k => $v) {
         $file[$k] = $v['file'];
     }
     // Check if it is a valid file
     if (empty($file['tmp_name'])) {
         return $ajax->reject(JText::_('PLG_FIELDS_AVATAR_ERROR_INVALID_FILE'));
     }
     // Get user access
     $access = FD::access($this->uid, SOCIAL_TYPE_CLUSTERS);
     // Check if the filesize is too large
     $maxFilesize = $access->get('photos.maxsize');
     $maxFilesizeBytes = (int) $maxFilesize * 1048576;
     if ($file['size'] > $maxFilesizeBytes) {
         return $ajax->reject(JText::sprintf('COM_EASYSOCIAL_PHOTOS_UPLOAD_ERROR_FILE_SIZE_LIMIT_EXCEEDED', $maxFilesize . 'mb'));
     }
     // Load up the image library so we can get the appropriate extension
     $image = FD::image();
     $image->load($file['tmp_name']);
     // Copy this to temporary location first
     $tmpPath = SocialFieldsUserAvatarHelper::getStoragePath($this->inputName);
     $tmpName = md5($file['name'] . $this->inputName . FD::date()->toMySQL()) . $image->getExtension();
     $source = $file['tmp_name'];
     $target = $tmpPath . '/' . $tmpName;
     $state = JFile::copy($source, $target);
     if (!$state) {
         return $ajax->reject(JText::_('PLG_FIELDS_AVATAR_ERROR_UNABLE_TO_MOVE_FILE'));
     }
     $tmpUri = SocialFieldsUserAvatarHelper::getStorageURI($this->inputName);
     $uri = $tmpUri . '/' . $tmpName;
     return $ajax->resolve($file, $uri, $target);
 }
开发者ID:knigherrant,项目名称:decopatio,代码行数:38,代码来源:ajax.php

示例4: processPhotos

 private function processPhotos()
 {
     $config = FD::config();
     $db = FD::db();
     $sql = $db->sql();
     $query = 'select c.`uid` as `esgroupid`, b.`groupid`, a.*';
     $query .= ' from `#__community_photos` as a';
     $query .= ' inner join `#__community_photos_albums` as b on a.`albumid` = b.`id` and b.`type` = ' . $db->Quote('group');
     $query .= ' inner join `#__social_migrators` as c on b.`groupid` = c.`oid` and c.`element` = ' . $db->Quote('groups') . ' and c.`component` = ' . $db->Quote('com_community');
     $query .= ' where not exists ( ';
     $query .= '		select b.`id` from `#__social_migrators` as b';
     $query .= ' 			where a.`id` = b.`oid` and b.`element` = ' . $db->Quote('groupphotos') . ' and b.`component` = ' . $db->Quote($this->name);
     $query .= ' )';
     $query .= ' and a.`storage` = ' . $db->Quote('file');
     $query .= ' ORDER BY a.`id` ASC';
     $query .= ' LIMIT ' . $this->limit;
     $sql->raw($query);
     $db->setQuery($sql);
     $jsPhotos = $db->loadObjectList();
     if (count($jsPhotos) <= 0) {
         return null;
     }
     foreach ($jsPhotos as $jsPhoto) {
         if (!$jsPhoto->published) {
             // photos not published. do not migrate.
             // log into mgirator
             $this->log('groupphotos', $jsPhoto->id, -1);
             $this->info->setInfo('Photo with id \'' . $jsPhoto->id . '\' is currently in unpublished or delete state. Photo migration process aborted.');
             continue;
         }
         $imagePath = JPATH_ROOT . '/' . $jsPhoto->original;
         if (!JFile::exists($imagePath)) {
             // files from originalphotos not found. let try to get it from photos folder instead.
             // images/photos/84/1/e03fbd75d6e8f5fe0e542665.jpg
             $imagePath = JPATH_ROOT . '/' . $jsPhoto->image;
         }
         if (!JFile::exists($imagePath)) {
             // both image from originalphotos and photos folder not found. Lets give up.
             // log into mgirator
             $this->log('groupphotos', $jsPhoto->id, -1);
             $this->info->setInfo('Photo with id \'' . $jsPhoto->id . '\' not found in the server. Photo migration process aborted.');
             continue;
         }
         // lets get this photo album
         $esAlbumId = $this->processJSPhotoAlbum($jsPhoto);
         // lets copy this file to tmp folder 1st.
         $tmp = JFactory::getConfig()->get('tmp_path');
         $tmpImageFile = $tmp . '/' . md5(JFactory::getDate()->toSql());
         JFile::copy($imagePath, $tmpImageFile);
         $esPhoto = FD::table('Photo');
         $esPhoto->uid = $jsPhoto->esgroupid;
         $esPhoto->type = SOCIAL_TYPE_GROUP;
         $esPhoto->user_id = $jsPhoto->creator;
         $esPhoto->album_id = $esAlbumId;
         // we use the filename as the title instead of caption.
         $fileName = JFile::getName($imagePath);
         $esPhoto->title = $fileName;
         $esPhoto->caption = $jsPhoto->caption;
         $esPhoto->created = $jsPhoto->created;
         $esPhoto->assigned_date = $jsPhoto->created;
         $esPhoto->ordering = $this->getPhotoOrdering($esAlbumId);
         $esPhoto->featured = '0';
         $esPhoto->state = $jsPhoto->published ? '1' : '0';
         // Let's test if exif exists
         $exif = FD::get('Exif');
         // Load the iamge object
         $image = FD::image();
         $image->load($tmpImageFile);
         // Detect the photo caption and title if exif is available.
         if ($exif->isAvailable() && $image->hasExifSupport()) {
             // Load the image
             $exif->load($tmpImageFile);
             $title = $exif->getTitle();
             $caption = $exif->getCaption();
             $createdAlias = $exif->getCreationDate();
             if ($createdAlias) {
                 $esPhoto->assigned_date = $createdAlias;
             }
             if ($title) {
                 $esPhoto->title = $title;
             }
             if ($caption) {
                 $esPhoto->caption = $caption;
             }
         }
         $esPhoto->store();
         // Get the photos library
         $photoLib = FD::get('Photos', $image);
         $storage = $photoLib->getStoragePath($esAlbumId, $esPhoto->id);
         $paths = $photoLib->create($storage);
         // Create metadata about the photos
         foreach ($paths as $type => $fileName) {
             $meta = FD::table('PhotoMeta');
             $meta->photo_id = $esPhoto->id;
             $meta->group = SOCIAL_PHOTOS_META_PATH;
             $meta->property = $type;
             $meta->value = $storage . '/' . $fileName;
             $meta->store();
         }
         // add photo stream
//.........这里部分代码省略.........
开发者ID:knigherrant,项目名称:decopatio,代码行数:101,代码来源:jomsocialgroup.php

示例5: crop

 /**
  * Crops an image
  *
  * @since	1.0
  * @access	public
  * @param	string
  * @return	SocialImage
  */
 public function crop($top = null, $left = null, $width = null, $height = null)
 {
     // Use the current image that was already loaded
     $image = $this->image;
     // Get the width and height of the photo
     $imageWidth = $image->getWidth();
     $imageHeight = $image->getHeight();
     if (!is_null($top) && !is_null($left) && !is_null($width) && !is_null($height)) {
         $actualX = $imageWidth * $left;
         $actualY = $imageHeight * $top;
         $actualWidth = $imageWidth * $width;
         $actualHeight = $imageHeight * $height;
         // Now we'll need to crop the image
         $image->crop($actualX, $actualY, $actualWidth, $actualHeight);
     } else {
         // If caller didn't provide a crop ratio, we crop the avatar to square
         // Get the correct positions
         if ($imageWidth > $imageHeight) {
             $x = ($imageWidth - $imageHeight) / 2;
             $y = 0;
             $image->crop($x, $y, $imageHeight, $imageHeight);
         } else {
             $x = 0;
             $y = ($imageHeight - $imageWidth) / 2;
             $image->crop($x, $y, $imageWidth, $imageWidth);
         }
     }
     // We want to store the temporary image somewhere so that the image library could manipulate this file.
     $tmpImagePath = md5(FD::date()->toMySQL()) . $image->getExtension();
     $jConfig = FD::jconfig();
     // Save the temporary cropped image
     $tmpImagePath = $jConfig->getValue('tmp_path') . '/' . $tmpImagePath;
     // Now, we'll want to save this temporary image.
     $image->save($tmpImagePath);
     // Unset the image to free up some memory
     unset($image);
     // Reload the image again to get the correct resource pointing to the cropped image.
     $image = FD::image();
     $image->load($tmpImagePath);
     $this->image = $image;
     return $tmpImagePath;
 }
开发者ID:BetterBetterBetter,项目名称:B3App,代码行数:50,代码来源:avatar.php

示例6: uploadPhoto

 public function uploadPhoto($log_usr = 0, $type = null)
 {
     // Get current logged in user.
     $my = FD::user($log_usr);
     // Get user access
     $access = FD::access($my->id, SOCIAL_TYPE_USER);
     // Load up the photo library
     $lib = FD::photo($log_usr, $type);
     // Define uploader options
     $options = array('name' => 'file', 'maxsize' => $lib->getUploadFileSizeLimit());
     // Get uploaded file
     $file = FD::uploader($options)->getFile();
     // Load the iamge object
     $image = FD::image();
     $image->load($file['tmp_name'], $file['name']);
     // Detect if this is a really valid image file.
     if (!$image->isValid()) {
         return "invalid image";
     }
     // Load up the album's model.
     $albumsModel = FD::model('Albums');
     // Create the default album if necessary
     $album = $albumsModel->getDefaultAlbum($log_usr, $type, SOCIAL_ALBUM_STORY_ALBUM);
     // Bind photo data
     $photo = FD::table('Photo');
     $photo->uid = $log_usr;
     $photo->type = $type;
     $photo->user_id = $my->id;
     $photo->album_id = $album->id;
     $photo->title = $file['name'];
     $photo->caption = '';
     $photo->state = 1;
     $photo->ordering = 0;
     // Set the creation date alias
     $photo->assigned_date = FD::date()->toMySQL();
     // Trigger rules that should occur before a photo is stored
     $photo->beforeStore($file, $image);
     // Try to store the photo.
     $state = $photo->store();
     // Load the photos model
     $photosModel = FD::model('Photos');
     // Get the storage path for this photo
     $storage = FD::call('Photos', 'getStoragePath', array($album->id, $photo->id));
     // Get the photos library
     $photoLib = FD::get('Photos', $image);
     $paths = $photoLib->create($storage);
     // Create metadata about the photos
     if ($paths) {
         foreach ($paths as $type => $fileName) {
             $meta = FD::table('PhotoMeta');
             $meta->photo_id = $photo->id;
             $meta->group = SOCIAL_PHOTOS_META_PATH;
             $meta->property = $type;
             $meta->value = $storage . '/' . $fileName;
             $meta->store();
             // We need to store the photos dimension here
             list($width, $height, $imageType, $attr) = getimagesize(JPATH_ROOT . $storage . '/' . $fileName);
             // Set the photo dimensions
             $meta = FD::table('PhotoMeta');
             $meta->photo_id = $photo->id;
             $meta->group = SOCIAL_PHOTOS_META_WIDTH;
             $meta->property = $type;
             $meta->value = $width;
             $meta->store();
             $meta = FD::table('PhotoMeta');
             $meta->photo_id = $photo->id;
             $meta->group = SOCIAL_PHOTOS_META_HEIGHT;
             $meta->property = $type;
             $meta->value = $height;
             $meta->store();
         }
     }
     // After storing the photo, trigger rules that should occur after a photo is stored
     //$photo->afterStore( $file , $image );
     //$sphoto = new SocialPhotos($photo_obj->id);
     return $photo;
 }
开发者ID:bellodox,项目名称:com_api-plugins,代码行数:77,代码来源:share.php

示例7: newInstance

 public function newInstance()
 {
     $image = FD::image();
     $image->load($this->meta->path, $this->meta->name);
     return $image;
 }
开发者ID:knigherrant,项目名称:decopatio,代码行数:6,代码来源:image.php

示例8: create

 /**
  * Creates the necessary images to be used as an avatar.
  *
  * @since	1.0
  * @access	public
  * @param	string		The target location to store the avatars
  * @param	Array		An array of excluded sizes.
  * @return
  */
 public function create($path, $exclusion = array(), $overrideFileName = '')
 {
     // Files array store a list of files
     // created for this photo.
     $files = array();
     // Create stock image
     $filename = $this->generateFilename('stock', $overrideFileName);
     $file = $path . '/' . $filename;
     $files['stock'] = $filename;
     $this->image->copy(JPATH_ROOT . $path . '/' . $filename);
     // Create original image
     $filename = $this->generateFilename('original');
     $file = JPATH_ROOT . $path . '/' . $filename;
     $files['original'] = $filename;
     $this->image->rotate(0);
     // Fake an operation queue
     $this->image->save($file);
     // Use original image as source image
     // for all other image sizes.
     $sourceImage = FD::image()->load($file);
     // Create the rest of the image sizes
     foreach (self::$sizes as $name => $size) {
         if (in_array($name, $exclusion)) {
             continue;
         }
         // Clone an instance of the source image.
         // Otherwise subsequent resizing operations
         // in this loop would end up using the image
         // instance that was resized by the previous loop.
         $image = $sourceImage->cloneImage();
         $filename = $this->generateFilename($name, $overrideFileName);
         $file = JPATH_ROOT . $path . '/' . $filename;
         $files[$name] = $filename;
         // Resize image
         $method = $size['mode'];
         $image->{$method}($size['width'], $size['height']);
         // Save image
         $image->save($file);
         // Free up memory
         unset($image);
     }
     return $files;
 }
开发者ID:knigherrant,项目名称:decopatio,代码行数:52,代码来源:photos.php

示例9: onRegisterOAuthAfterSave

 /**
  * Processes before the user account is created when user signs in with oauth.
  *
  * @since	1.0
  * @access	public
  * @param	string
  * @return
  */
 public function onRegisterOAuthAfterSave(&$data, &$oauthClient, SocialUser &$user)
 {
     $cover = isset($data['cover']) ? $data['cover'] : '';
     // If cover is not provided, skip this.
     if (!$cover) {
         return;
     }
     // Get the cover URL
     $coverUrl = $cover->url;
     // Get the session object.
     $uid = SocialFieldsUserCoverHelper::genUniqueId($this->inputName);
     // Get the user object.
     $user = FD::user();
     // Store the cover internally first.
     $tmpPath = SOCIAL_TMP . '/' . $uid . '_cover';
     $tmpFile = $tmpPath . '/' . $uid;
     // Now we need to get the image data.
     $connector = FD::connector();
     $connector->addUrl($coverUrl);
     $connector->connect();
     $contents = $connector->getResult($coverUrl);
     jimport('joomla.filesystem.file');
     if (!JFile::write($tmpFile, $contents)) {
         FD::logError(__FILE__, __LINE__, 'AVATAR: Unable to store oauth cover to tmp folder, ' . $tmpPath);
         return;
     }
     // Ensure that the image is valid.
     if (!SocialFieldsUserCoverHelper::isValid($tmpFile)) {
         FD::logError(__FILE__, __LINE__, 'AVATAR: Invalid image provided for cover ' . $tmpFile);
         return;
     }
     // Create the default album for this cover.
     $album = SocialFieldsUserCoverHelper::getDefaultAlbum($user->id);
     // Once the album is created, create the photo object.
     $photo = SocialFieldsUserCoverHelper::createPhotoObject($user->id, SOCIAL_TYPE_USER, $album->id, $data['oauth_id'], true);
     // Set the new album with the photo as the cover.
     $album->cover_id = $photo->id;
     $album->store();
     // Generates a unique name for this image.
     $name = md5($data['oauth_id'] . $this->inputName . FD::date()->toMySQL());
     // Load our own image library
     $image = FD::image();
     // Load up the file.
     $image->load($tmpFile, $name);
     // Load up photos library
     $photos = FD::get('Photos', $image);
     $storage = $photos->getStoragePath($album->id, $photo->id);
     // Create avatars
     $sizes = $photos->create($storage);
     foreach ($sizes as $size => $path) {
         // Now we will need to store the meta for the photo.
         $meta = SocialFieldsUserCoverHelper::createPhotoMeta($photo, $size, $path);
     }
     // Once all is done, we just need to update the cover table so the user
     // will start using this cover now.
     $coverTable = FD::table('Cover');
     $state = $coverTable->load(array('uid' => $user->id, 'type' => SOCIAL_TYPE_USER));
     // User does not have a cover.
     if (!$state) {
         $coverTable->uid = $user->id;
         $coverTable->type = SOCIAL_TYPE_USER;
         $coverTable->y = $cover->offset_y;
     }
     // Set the cover to pull from photo
     $coverTable->setPhotoAsCover($photo->id);
     // Save the cover.
     $coverTable->store();
 }
开发者ID:BetterBetterBetter,项目名称:B3App,代码行数:76,代码来源:cover.php

示例10: getImageObject

 /**
  * Gets the image object
  *
  * @since   1.0
  * @access  public
  * @param   string
  * @return
  */
 public function getImageObject($type)
 {
     $path = $this->getPath($type);
     if (!JFile::exists($path)) {
         return false;
     }
     $image = FD::image();
     $image->load($path);
     return $image;
 }
开发者ID:ppantilla,项目名称:bbninja,代码行数:18,代码来源:photo.php

示例11: createAvatarFromFile

 /**
  * Allows caller to create an avatar by posted the $_FILE data
  *
  * @since   1.0
  * @access  public
  * @param   string
  * @return
  */
 public function createAvatarFromFile()
 {
     // Check for request forgeries
     FD::checkToken();
     // Only registered users should be allowed to upload photos
     FD::requireLogin();
     // Get the current view
     $view = $this->getCurrentView();
     $config = FD::config();
     // Get the unique item id
     $uid = JRequest::getInt('uid');
     $type = JRequest::getCmd('type');
     // Get current user.
     $my = FD::user();
     if (!$uid && !$type) {
         $view->setMessage(JText::_('COM_EASYSOCIAL_PHOTOS_INVALID_ID_PROVIDED'), SOCIAL_MSG_ERROR);
         return $view->call('createAvatar');
     }
     // Load up the photo library
     $lib = FD::photo($uid, $type);
     // Set uploader options
     $options = array('name' => 'avatar_file', 'maxsize' => $lib->getUploadFileSizeLimit());
     // Get uploaded file
     $file = FD::uploader($options)->getFile();
     // If there was an error getting uploaded file, stop.
     if ($file instanceof SocialException) {
         $view->setMessage($file);
         return $view->call('createAvatar');
     }
     // Load the image
     $image = FD::image();
     $image->load($file['tmp_name'], $file['name']);
     // Check if there's a profile photos album that already exists.
     $albumModel = FD::model('Albums');
     // Retrieve the default album for this node.
     $album = $lib->getDefaultAlbum();
     $photo = FD::table('Photo');
     $photo->uid = $uid;
     $photo->type = $type;
     $photo->user_id = $my->id;
     $photo->album_id = $album->id;
     $photo->title = $file['name'];
     $photo->caption = '';
     $photo->ordering = 0;
     // Set the creation date alias
     $photo->assigned_date = FD::date()->toMySQL();
     // We need to set the photo state to "SOCIAL_PHOTOS_STATE_TMP"
     $photo->state = SOCIAL_PHOTOS_STATE_TMP;
     // Try to store the photo first
     $state = $photo->store();
     // Bind any exif data if there are any.
     // Only bind exif data for jpg files (if want to add tiff, then do add it here)
     if ($image->hasExifSupport()) {
         $photo->mapExif($file);
     }
     if (!$state) {
         $view->setMessage(JText::_('COM_EASYSOCIAL_PHOTOS_ERROR_CREATING_IMAGE_FILES'), SOCIAL_MSG_ERROR);
         return $view->call('createAvatar');
     }
     // Push all the ordering of the photo down
     $photosModel = FD::model('photos');
     $photosModel->pushPhotosOrdering($album->id, $photo->id);
     // Render photos library
     $photoLib = FD::get('Photos', $image);
     $storage = $photoLib->getStoragePath($album->id, $photo->id);
     $paths = $photoLib->create($storage);
     // Create metadata about the photos
     foreach ($paths as $type => $fileName) {
         $meta = FD::table('PhotoMeta');
         $meta->photo_id = $photo->id;
         $meta->group = SOCIAL_PHOTOS_META_PATH;
         $meta->property = $type;
         $meta->value = $storage . '/' . $fileName;
         $meta->store();
     }
     // Retrieve the original photo again.
     $image = $photo->getImageObject('original');
     return $view->call('createAvatar', $photo);
 }
开发者ID:ppantilla,项目名称:bbninja,代码行数:87,代码来源:photos.php

示例12: processAvatar

 private function processAvatar()
 {
     $config = FD::config();
     $db = FD::db();
     $sql = $db->sql();
     $query = 'select a.*, c.uid as `eseventid`';
     $query .= ' from `#__community_events` as a';
     $query .= ' inner join `#__social_migrators` as c on a.`id` = c.`oid` and c.`element` = ' . $db->Quote('events') . ' and c.`component` = ' . $db->Quote('com_community');
     $query .= ' where not exists ( ';
     $query .= '		select b.`id` from `#__social_migrators` as b';
     $query .= ' 			where a.`id` = b.`oid` and b.`element` = ' . $db->Quote('eventavatar') . ' and b.`component` = ' . $db->Quote($this->name);
     $query .= ' )';
     $query .= ' ORDER BY a.`id` ASC';
     $query .= ' LIMIT ' . $this->limit;
     $sql->raw($query);
     $db->setQuery($sql);
     $jsEvents = $db->loadObjectList();
     if (count($jsEvents) <= 0) {
         return null;
     }
     foreach ($jsEvents as $jsEvent) {
         if (!$jsEvent->avatar) {
             // no need to process further.
             $this->log('eventavatar', $jsEvent->id, $jsEvent->id);
             $this->info->setInfo('Event ' . $jsEvent->id . ' is using default avatar. no migration is needed.');
             continue;
         }
         $imagePath = JPATH_ROOT . '/' . $jsEvent->avatar;
         $tmp = explode('/', $imagePath);
         $filename = $tmp[count($tmp) - 1];
         if (!JFile::exists($imagePath)) {
             $this->log('eventavatar', $jsEvent->id, $jsEvent->id);
             $this->info->setInfo('Event ' . $jsEvent->id . ' the avatar image file is not found from the server. Process aborted.');
             continue;
         }
         // lets copy this file to tmp folder 1st.
         $tmp = JFactory::getConfig()->get('tmp_path');
         $tmpImageFile = $tmp . '/' . md5(JFactory::getDate()->toSql());
         JFile::copy($imagePath, $tmpImageFile);
         $image = FD::image();
         $image->load($tmpImageFile);
         $avatar = FD::avatar($image, $jsEvent->eseventid, SOCIAL_TYPE_EVENT);
         // Check if there's a profile photos album that already exists.
         $albumModel = FD::model('Albums');
         // Retrieve the group's default album
         $album = $albumModel->getDefaultAlbum($jsEvent->eseventid, SOCIAL_TYPE_EVENT, SOCIAL_ALBUM_PROFILE_PHOTOS);
         $album->user_id = $jsEvent->creator;
         $album->store();
         $photo = FD::table('Photo');
         $photo->uid = $jsEvent->eseventid;
         $photo->user_id = $jsEvent->creator;
         $photo->type = SOCIAL_TYPE_EVENT;
         $photo->album_id = $album->id;
         $photo->title = $filename;
         $photo->caption = '';
         $photo->ordering = 0;
         // We need to set the photo state to "SOCIAL_PHOTOS_STATE_TMP"
         $photo->state = SOCIAL_PHOTOS_STATE_TMP;
         // Try to store the photo first
         $state = $photo->store();
         // Push all the ordering of the photo down
         $photosModel = FD::model('photos');
         $photosModel->pushPhotosOrdering($album->id, $photo->id);
         // Render photos library
         $photoLib = FD::get('Photos', $image);
         $storage = $photoLib->getStoragePath($album->id, $photo->id);
         $paths = $photoLib->create($storage);
         // Create metadata about the photos
         foreach ($paths as $type => $fileName) {
             $meta = FD::table('PhotoMeta');
             $meta->photo_id = $photo->id;
             $meta->group = SOCIAL_PHOTOS_META_PATH;
             $meta->property = $type;
             $meta->value = $storage . '/' . $fileName;
             $meta->store();
         }
         // Create the avatars now, but we do not want the store function to create stream.
         // so we pass in the option. we will create the stream ourown.
         $options = array('addstream' => false);
         $avatar->store($photo, $options);
         // @Add stream item when a new event avatar is uploaded
         // get the cover update date.
         $uploadDate = $this->getMediaUploadDate('events.avatar.upload', $jsEvent->id);
         if (!$uploadDate) {
             // if empty, then lets just use event creation date.
             $uploadDate = $jsEvent->created;
         }
         $photo->addPhotosStream('uploadAvatar', $uploadDate);
         // log into mgirator
         $this->log('eventavatar', $jsEvent->id, $photo->id);
         $this->info->setInfo('Event avatar ' . $jsEvent->id . ' is now migrated into EasySocial.');
     }
     return $this->info;
 }
开发者ID:knigherrant,项目名称:decopatio,代码行数:94,代码来源:jomsocialevent.php

示例13: addPhotoAlbum

 public function addPhotoAlbum($log_usr = 0, $album_id)
 {
     $my = FD::user();
     // Load up the configuration
     $config = FD::config();
     // Load the album table
     $album = FD::table('Album');
     $album->load($album_id);
     // Check if the album id provided is valid
     if (!$album->id || !$album->id) {
         return "album not valid";
     }
     // Get the uid and the type
     $uid = $album->uid;
     $type = $album->type;
     // Load the photo library
     $lib = FD::photo($uid, $type);
     // Set uploader options
     $options = array('name' => 'file', 'maxsize' => $lib->getUploadFileSizeLimit());
     // Get uploaded file
     $file = FD::uploader($options)->getFile();
     // If there was an error getting uploaded file, stop.
     if ($file instanceof SocialException) {
         return false;
     }
     // Load the image object
     $image = FD::image();
     $image->load($file['tmp_name'], $file['name']);
     // Detect if this is a really valid image file.
     if (!$image->isValid()) {
         return false;
     }
     // Bind the photo data now
     $photo = FD::table('Photo');
     $photo->uid = $uid;
     $photo->type = $type;
     $photo->user_id = $album->uid;
     $photo->album_id = $album->id;
     $photo->title = $file['name'];
     $photo->caption = '';
     $photo->ordering = 0;
     $photo->state = SOCIAL_STATE_PUBLISHED;
     // Set the creation date alias
     $photo->assigned_date = FD::date()->toMySQL();
     // Cleanup photo title.
     $photo->cleanupTitle();
     // Trigger rules that should occur before a photo is stored
     $photo->beforeStore($file, $image);
     // Try to store the photo.
     $state = $photo->store();
     if (!$state) {
         return false;
     }
     // If album doesn't have a cover, set the current photo as the cover.
     //~ if (!$album->hasCover()) {
     //~ $album->cover_id    = $photo->id;
     //~
     //~ // Store the album
     //~ $album->store();
     //~ }
     // Get the photos library
     $photoLib = FD::get('Photos', $image);
     // Get the storage path for this photo
     $storageContainer = FD::cleanPath($config->get('photos.storage.container'));
     $storage = $photoLib->getStoragePath($album->id, $photo->id);
     $paths = $photoLib->create($storage);
     // We need to calculate the total size used in each photo (including all the variants)
     $totalSize = 0;
     // Create metadata about the photos
     if ($paths) {
         foreach ($paths as $type => $fileName) {
             $meta = FD::table('PhotoMeta');
             $meta->photo_id = $photo->id;
             $meta->group = SOCIAL_PHOTOS_META_PATH;
             $meta->property = $type;
             // do not store the container path as this path might changed from time to time
             $tmpStorage = str_replace('/' . $storageContainer . '/', '/', $storage);
             $meta->value = $tmpStorage . '/' . $fileName;
             $meta->store();
             // We need to store the photos dimension here
             list($width, $height, $imageType, $attr) = getimagesize(JPATH_ROOT . $storage . '/' . $fileName);
             // Set the photo size
             $totalSize += filesize(JPATH_ROOT . $storage . '/' . $fileName);
             // Set the photo dimensions
             $meta = FD::table('PhotoMeta');
             $meta->photo_id = $photo->id;
             $meta->group = SOCIAL_PHOTOS_META_WIDTH;
             $meta->property = $type;
             $meta->value = $width;
             $meta->store();
             $meta = FD::table('PhotoMeta');
             $meta->photo_id = $photo->id;
             $meta->group = SOCIAL_PHOTOS_META_HEIGHT;
             $meta->property = $type;
             $meta->value = $height;
             $meta->store();
         }
     }
     // Set the total photo size
     $photo->total_size = $totalSize;
//.........这里部分代码省略.........
开发者ID:yalive,项目名称:com_api-plugins,代码行数:101,代码来源:uploadHelper.php

示例14: processAvatar

 private function processAvatar()
 {
     $db = FD::db();
     $sql = $db->sql();
     $query = 'select a.*';
     $query .= ' from `#__comprofiler` as a';
     $query .= ' where not exists ( ';
     $query .= '		select b.`id` from `#__social_migrators` as b';
     $query .= ' 			where a.`user_id` = b.`oid` and b.`element` = ' . $db->Quote('avatar') . ' and b.`component` = ' . $db->Quote($this->name);
     $query .= ' )';
     $query .= ' and a.`avatar` is not null';
     $query .= ' and a.`avatarapproved` = 1';
     $query .= ' ORDER BY a.`user_id` ASC';
     $query .= ' LIMIT ' . $this->limit;
     $sql->raw($query);
     $db->setQuery($sql);
     $cbAvatars = $db->loadObjectList();
     if (count($cbAvatars) <= 0) {
         return null;
     }
     foreach ($cbAvatars as $cbAvatar) {
         if (!$cbAvatar->avatar) {
             // no need to process further.
             $this->log('avatar', $cbAvatar->user_id, $cbAvatar->user_id);
             $this->info->setInfo('User ' . $cbAvatar->user_id . ' is using default avatar. no migration is needed.');
             continue;
         }
         $userid = $cbAvatar->user_id;
         // images/avatar/c7a88f6daec02aea3fd3bc4e.jpg
         $imagePath = JPATH_ROOT . '/images/comprofiler/' . $cbAvatar->avatar;
         $tmp = explode('/', $imagePath);
         $filename = $tmp[count($tmp) - 1];
         if (!JFile::exists($imagePath)) {
             $this->log('avatar', $cbAvatar->user_id, $cbAvatar->user_id);
             $this->info->setInfo('User ' . $cbAvatar->user_id . ' the avatar image file is not found from the server. Process aborted.');
             continue;
         }
         // lets copy this file to tmp folder 1st.
         $tmp = JFactory::getConfig()->get('tmp_path');
         $tmpImageFile = $tmp . '/' . md5(JFactory::getDate()->toSql());
         JFile::copy($imagePath, $tmpImageFile);
         $image = FD::image();
         $image->load($tmpImageFile);
         $avatar = FD::avatar($image, $userid, SOCIAL_TYPE_USER);
         // Check if there's a profile photos album that already exists.
         $albumModel = FD::model('Albums');
         // Retrieve the user's default album
         $album = $albumModel->getDefaultAlbum($userid, SOCIAL_TYPE_USER, SOCIAL_ALBUM_PROFILE_PHOTOS);
         // we need to update the album user_id to this current user.
         $album->user_id = $userid;
         $album->store();
         $photo = FD::table('Photo');
         $photo->uid = $userid;
         $photo->type = SOCIAL_TYPE_USER;
         $photo->user_id = $userid;
         $photo->album_id = $album->id;
         $photo->title = $filename;
         $photo->caption = '';
         $photo->ordering = 0;
         // We need to set the photo state to "SOCIAL_PHOTOS_STATE_TMP"
         $photo->state = SOCIAL_PHOTOS_STATE_TMP;
         // Try to store the photo first
         $state = $photo->store();
         // Push all the ordering of the photo down
         $photosModel = FD::model('photos');
         $photosModel->pushPhotosOrdering($album->id, $photo->id);
         // Render photos library
         $photoLib = FD::get('Photos', $image);
         $storage = $photoLib->getStoragePath($album->id, $photo->id);
         $paths = $photoLib->create($storage);
         // Create metadata about the photos
         foreach ($paths as $type => $fileName) {
             $meta = FD::table('PhotoMeta');
             $meta->photo_id = $photo->id;
             $meta->group = SOCIAL_PHOTOS_META_PATH;
             $meta->property = $type;
             $meta->value = $storage . '/' . $fileName;
             $meta->store();
         }
         // Create the avatars now, but we do not want the store function to create stream.
         // so we pass in the option. we will create the stream ourown.
         $options = array('addstream' => false);
         $avatar->store($photo, $options);
         // add photo privacy
         $this->addItemPrivacy('photos.view', $photo->id, SOCIAL_TYPE_PHOTO, $cbAvatar->user_id, '0');
         // add photo stream
         $photo->addPhotosStream('uploadAvatar', $cbAvatar->lastupdatedate);
         // log into mgirator
         $this->log('avatar', $cbAvatar->user_id, $cbAvatar->user_id);
         $this->info->setInfo('User avatar ' . $cbAvatar->user_id . ' is now migrated into EasySocial.');
     }
     //end foreach
     return $this->info;
 }
开发者ID:knigherrant,项目名称:decopatio,代码行数:94,代码来源:cb.php

示例15: cache

 /**
  * Stores a given image link into the local cache
  *
  * @since	1.2.11
  * @access	public
  * @param	string
  * @return
  */
 public function cache($imageLink)
 {
     // Check if settings is enabled
     if (!$this->config->get('links.cache.images')) {
         return false;
     }
     // Try to load any existing cached image from the db
     $linkImage = FD::table('LinkImage');
     $exists = $linkImage->load(array('source_url' => $imageLink));
     // If this already exists, skip this altogether
     if ($exists) {
         return $linkImage->internal_url;
     }
     // Generate a unique name for this file
     $fileName = md5($imageLink) . '.png';
     // Get the storage path
     $container = FD::cleanPath($this->config->get('links.cache.location'));
     $storage = JPATH_ROOT . '/' . $container . '/' . $fileName;
     // Check if the file already exists
     $exists = JFile::exists($storage);
     // If the file is already cached, delete it
     if ($exists) {
         JFile::delete($storage);
     }
     // Crawl the image now.
     $connector = FD::get('Connector');
     $connector->addUrl($imageLink);
     $connector->connect();
     // Get the result and parse them.
     $contents = $connector->getResult($imageLink);
     // Store the file to a temporary directory first
     $tmpFile = SOCIAL_TMP . '/' . $fileName;
     JFile::write($tmpFile, $contents);
     // Load the image now
     $image = FD::image();
     $image->load($tmpFile);
     // Ensure that image is valid
     if (!$image->isValid()) {
         JFile::delete($tmpFile);
         return false;
     }
     // Delete the temporary file.
     JFile::delete($tmpFile);
     // Unset the image now since we don't want to use asido to resize
     unset($image);
     // Store the file now into our cache storage.
     JFile::write($storage, $contents);
     $linkImage->source_url = $imageLink;
     $linkImage->internal_url = $fileName;
     $linkImage->store();
     return $fileName;
 }
开发者ID:BetterBetterBetter,项目名称:B3App,代码行数:60,代码来源:links.php


注:本文中的FD::image方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。