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); }
$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; }