Beispiel #1
0
	private function newItem($values) {
		// Local variables
		$files = new Files();
				
		// If an image and the URL was given, we download the image and store it
		if ((@$values['type'] == 'image') && ($url = @$values['url']) && (strlen($url) > 0)) {
			$file_id = $files->downloadFile($url, "download");
			$file = $files->getFile($file_id);
			$key = $file->key;
		}
		
		// If a file was uploaded, we process it
		else if (@$_FILES['file']['tmp_name']) {
			try {
				$file_id = $files->processFile($values['file'], $_FILES['file'], 'Posted file');
				$file = $files->getFile($file_id);
				$key = $file->key;
			}
			catch(Exception $e) {
				$this->addErrorMessage("Unknown error occured");
				return $this->_forward(@$values['type']);
			}
		}
		
		// If an image and file available, resize
		if ((@$values['type'] == 'image') && ($file_id > 0)) {
			$files->fitWidth($file_id, 240,  'small');
			$files->fitWidth($file_id, 500,  'medium');
			$files->fitWidth($file_id, 1024, 'large');
			$files->fitSquare($file_id, 75,  'thumbnails');
			$exif = $files->readExif($file_id);
		}
		
		// Process the date if available		
		$date_type = @$values['date_type'];
		if ($date_type == 'other') {
			$timestamp = Stuffpress_Date::strToTimezone($values['date'], $this->_properties->getProperty('timezone'));
		} 
		else if  ($date_type == 'taken' && $exif) {
			if (isset($exif['DateTimeOriginal'])) {
				$timestamp = Stuffpress_Date::strToTimezone($exif['DateTimeOriginal'], $this->_properties->getProperty('timezone'));
			} else {
				$timestamp = time();
			}
		}
		else {
			$timestamp = time();
		}
		
		// Process the tags if available
		$tags	= @explode(',', $values['tags']);
		
		// Prepare the values for the database
		$data = array();
		$data['published']  = @$timestamp;
		$data['type']	    = @$values['type'];
		$data['file']	    = @$key;
		$data['url']	    = @$values['url'];
		$data['title'] 		= @$values['title'];
		$data['link']  		= @$values['link'];
		$data['embed']  	= @$values['embed'];		
		$data['text']  		= @$values['text'];
		
		// Add or update the item
		$source		= StuffpressModel::forUser($this->_application->user->id);
		$data_table = new Data();
		$item_id 	= $source->addItem($data, $data['published'], $data['type'], $tags, false, false, $data['title']);
		$source_id 	= $source->getID();
		
		// fetch the new item
		$item   = $data_table->getItem($source_id, $item_id);
		
		// Get longitude if provided
		if (!empty($exif['GPSLongitude']) && count($exif['GPSLongitude']) == 3 && !empty($exif['GPSLongitudeRef'])) {
            $longitude = ($exif['GPSLongitudeRef']== 'W' ? '-' : '') . Stuffpress_Exif::exif_gpsconvert( $exif['GPSLongitude'] );
		} else {
			$longitude = @$values['longitude'];	
		}
		
		// Get latitude
        if (!empty($exif['GPSLatitude']) && count($exif['GPSLatitude']) == 3 && !empty($exif['GPSLatitudeRef'])) {
            $latitude = ($exif['GPSLatitudeRef']== 'S' ? '-' : '') . Stuffpress_Exif::exif_gpsconvert( $exif['GPSLatitude'] );
        } else {
 			$latitude  = @$values['latitude'];       	
        }

		// Set it
		if ($latitude && $longitude) {
			$data_table->setLocation($source_id, $item_id, $latitude, $longitude, 0);
		}
		
		// Send notification if twitter post is enabled
		if ($this->_properties->getProperty('twitter_auth') && $values['twitter_notify']) {
			$this->notifyTwitter($item);
		}
		
		// Ping blog search engines
		$this->ping();

		// Redirect to the timeline
		$username	= $this->_application->user->username;
		$url	= $this->getUrl($username, "/entry/" . $item->getSlug());

		// If a bookmarklet, we show the 'done screen'
		if ($this->_bookmarklet) {
			$this->view->user_url = $url;
			return $this->_forward('done');
		}
		
		return $this->_redirect($url);		
	}
Beispiel #2
0
    $lResult = $lDB->getResult();
    $lDB->disconnect();


    if (array_key_exists('ID', $lResult) && array_key_exists('DataContainer', $lResult))
    {
      $lID = $lResult['ID'];
      $lVideoID = $lResult['VideoID'];
      $lStatus = $lResult['Status'];
      $lStatusStr = Videos::$Status[$lStatus];
      $lDescr = $lResult['Description'];
      $lDataContainer = $lResult['DataContainer'];


      $lFile = new Files();
      $lFile->downloadFile($gUID, $lDataContainer);

      # Remove file and DB entry
      $lFile->removeFile($gUID, $lDataContainer);

      $lVideos = new Videos();
      $lVideos->removeVideo($lID);
    }
    else
    {
      Log::writeLog(1, $_SERVER["SCRIPT_NAME"], "User with ID $gUID can't download $gVID");
    }
  }

?>
 private function setKeyImage($story_id, $url)
 {
     $stories = new Stories();
     $files = new Files();
     $file_id = $files->downloadFile($url, "");
     $files->fitSquare($file_id, 50, 'thumbnails');
     $file = $files->getFile($file_id);
     $stories->setThumbnail($story_id, $file->key);
 }
 protected function _saveFileToDb($type, $url, $file = null)
 {
     $files = new Files();
     // the audio file should be handled as well
     if (($type == SourceItem::IMAGE_TYPE || $type == SourceItem::AUDIO_TYPE) && strlen($url) > 0) {
         $file_id = $files->downloadFile($url, "download");
         $file = $files->getFile($file_id);
         $key = $file->key;
         // There should be an exception handle here
         // to handle any possible exception from the processes above
     } else {
         if ($file) {
             try {
                 // Process new file
                 $file_id = $files->processFile($file['name'], $file, 'Posted file');
                 $file = $files->getFile($file_id);
                 $key = $file->key;
             } catch (Exception $e) {
                 $this->_buildResponse(Api_BaseController::HTTP_FAILED, 'Failed to process the data');
                 return false;
             }
         } else {
             $this->_buildResponse(Api_BaseController::HTTP_FAILED, 'Failed to process the data');
             return false;
         }
     }
     // If an image and file available, resize
     if ($type == SourceItem::IMAGE_TYPE && $file_id > 0) {
         $this->_ResizeFile($files, $file_id);
         //$exif = $files->readExif($file_id);
     }
     return $key;
 }