Пример #1
0
 function uploadPhoto()
 {
     $cur = common_current_user();
     if (empty($cur)) {
         return;
     }
     try {
         $imagefile = ImageFile::fromUpload('photofile');
     } catch (Exception $e) {
         $this->showForm($e->getMessage());
         return;
     }
     if ($imagefile === null) {
         $this->showForm(_('No file uploaded.'));
         return;
     }
     $title = $this->trimmed('phototitle');
     $photo_description = $this->trimmed('photo_description');
     common_log(LOG_INFO, 'upload path : ' . $imagefile->filepath);
     $filename = $cur->nickname . '-' . common_timestamp() . sha1_file($imagefile->filepath) . image_type_to_extension($imagefile->type);
     move_uploaded_file($imagefile->filepath, INSTALLDIR . '/file/' . $filename);
     photo_make_thumbnail($filename);
     $uri = 'http://' . common_config('site', 'server') . '/file/' . $filename;
     $thumb_uri = 'http://' . common_config('site', 'server') . '/file/thumb.' . $filename;
     $profile_id = $cur->id;
     $album = GNUsocialPhotoAlbum::getKV('album_id', $this->trimmed('album'));
     if ($album->profile_id != $profile_id) {
         $this->showForm(_('Error: This is not your album!'));
         return;
     }
     GNUsocialPhoto::saveNew($profile_id, $album->album_id, $thumb_uri, $uri, 'web', false, $title, $photo_description);
 }
 function onStartHandleFeedEntry($activity)
 {
     common_log(LOG_INFO, 'photo plugin: onEndAtomPubNewActivity');
     $oprofile = Ostatus_profile::ensureActorProfile($activity);
     foreach ($activity->objects as $object) {
         if ($object->type == ActivityObject::PHOTO) {
             $uri = $object->largerImage;
             $thumb_uri = $object->thumbnail;
             $profile_id = $oprofile->profile_id;
             $source = 'unknown';
             // TODO: put something better here.
             common_log(LOG_INFO, 'uri : ' . $uri);
             common_log(LOG_INFO, 'thumb_uri : ' . $thumb_uri);
             // It's possible this is validated elsewhere, but I'm not sure and
             // would rather be safe.
             $uri = filter_var($uri, FILTER_SANITIZE_URL);
             $thumb_uri = filter_var($thumb_uri, FILTER_SANITIZE_URL);
             $uri = filter_var($uri, FILTER_VALIDATE_URL);
             $thumb_uri = filter_var($thumb_uri, FILTER_VALIDATE_URL);
             if (empty($thumb_uri)) {
                 // We need a thumbnail, so if we aren't given one, use the actual picture for now.
                 $thumb_uri = $uri;
             }
             if (!empty($uri) && !empty($thumb_uri)) {
                 GNUsocialPhoto::saveNew($profile_id, $thumb_uri, $uri, $source, false);
             } else {
                 common_log(LOG_INFO, 'bad URI for photo');
             }
             return false;
         }
     }
     return true;
 }