Example #1
0
 public static function factory(Storage $storage, $row)
 {
     $tempfile = new File($storage);
     $tempfile->setFileID($row["fileid"]);
     $tempfile->setFilename($row["filename"]);
     $tempfile->setExportFilename($row["exportfilename"]);
     $tempfile->setMimeType($row["mimetype"]);
     return $tempfile;
 }
 /**
  * Migrate a single file
  *
  * @param string $base Absolute base path (parent of assets folder)
  * @param File $file
  * @param string $legacyFilename
  * @return bool True if this file is imported successfully
  */
 protected function migrateFile($base, File $file, $legacyFilename)
 {
     // Make sure this legacy file actually exists
     $path = $base . '/' . $legacyFilename;
     if (!file_exists($path)) {
         return false;
     }
     // Copy local file into this filesystem
     $filename = $file->generateFilename();
     $result = $file->setFromLocalFile($path, $filename, null, null, array('conflict' => AssetStore::CONFLICT_OVERWRITE));
     // Move file if the APL changes filename value
     if ($result['Filename'] !== $filename) {
         $file->setFilename($result['Filename']);
     }
     // Save and publish
     $file->write();
     $file->copyVersionToStage(Versioned::DRAFT, Versioned::LIVE);
     return true;
 }
Example #3
0
 /**
  * @static
  * @param GitCommand $gitCommand
  * @param Branch $branch
  * @param string $lastBranchSynchronizationCommit
  * @return int 0 if succeed
  */
 public static function synchronize(GitCommand $gitCommand, Branch $branch, $lastBranchSynchronizationCommit = null)
 {
     $filesGit = $gitCommand->getDiffFilesFromBranch($branch->getRepository()->getGitDir(), $branch->getCommitReference(), $branch->getLastCommit());
     if (count($filesGit) > sfConfig::get('app_max_number_of_files_to_review', 4096)) {
         return count($filesGit);
     }
     $filesModel = FileQuery::create()->filterByBranchId($branch->getId())->find();
     if (count($filesModel) > 0) {
         $diffFilesFromLastSynch = $gitCommand->getDiffFilesFromBranch($branch->getRepository()->getGitDir(), !is_null($lastBranchSynchronizationCommit) ? $lastBranchSynchronizationCommit : $branch->getCommitReference(), $branch->getLastCommit(), false);
     }
     foreach ($filesModel as $fileModel) {
         /** @var $fileModel File */
         if (!array_key_exists($fileModel->getFilename(), $filesGit)) {
             $fileModel->delete();
         } else {
             $lastChangeCommit = $gitCommand->getLastModificationCommit($branch->getRepository()->getGitDir(), $branch->getName(), $fileModel->getFilename());
             if (isset($diffFilesFromLastSynch[$fileModel->getFilename()])) {
                 $fileModel->setReviewRequest(true)->setStatus(BranchPeer::A_TRAITER)->setCommitStatusChanged($lastChangeCommit);
             } else {
                 $fileModel->setReviewRequest(false);
             }
             if ($filesGit[$fileModel->getFilename()]['is-binary']) {
                 $fileModel->setIsBinary(true)->setNbAddedLines(0)->setNbDeletedLines(0);
             } else {
                 $fileModel->setIsBinary(false)->setNbAddedLines($filesGit[$fileModel->getFilename()]['added-lines'])->setNbDeletedLines($filesGit[$fileModel->getFilename()]['deleted-lines']);
             }
             $fileModel->setState($filesGit[$fileModel->getFilename()]['state'])->setLastChangeCommit($lastChangeCommit)->setCommitInfos($gitCommand->getCommitInfos($branch->getRepository()->getGitDir(), $lastChangeCommit, "%ce %s"))->setCommitReference($branch->getCommitReference())->save();
         }
         unset($filesGit[$fileModel->getFilename()]);
     }
     foreach ($filesGit as $fileGit) {
         $lastChangeCommit = $gitCommand->getLastModificationCommit($branch->getRepository()->getGitDir(), $branch->getName(), $fileGit['filename']);
         $file = new File();
         if ($fileGit['is-binary']) {
             $file->setIsBinary(true)->setNbAddedLines(0)->setNbDeletedLines(0);
         } else {
             $file->setIsBinary(false)->setNbAddedLines($fileGit['added-lines'])->setNbDeletedLines($fileGit['deleted-lines']);
         }
         $file->setFilename($fileGit['filename'])->setStatus(BranchPeer::A_TRAITER)->setState($fileGit['state'])->setBranchId($branch->getId())->setLastChangeCommit($lastChangeCommit)->setCommitInfos($gitCommand->getCommitInfos($branch->getRepository()->getGitDir(), $lastChangeCommit, "%ce %s"))->setCommitReference($branch->getCommitReference())->setReviewRequest(true)->save();
     }
     return 0;
 }
 public function saveImportForm($data, $form)
 {
     if (isset($data['imported_files']) && is_array($data['imported_files'])) {
         $_POST['uploaded_files'] = array();
         // If the user has set a custom upload folder, cut a new copy of the file when importing
         $custom_folder = $this->getUploadFolder() != "Uploads" ? Folder::findOrMake($this->getCleanUploadFolder()) : false;
         foreach ($data['imported_files'] as $file_id) {
             $file = DataObject::get_by_id("File", $file_id);
             if ($custom_folder && $file->ParentID != $custom_folder->ID) {
                 $new_path = Director::baseFolder() . '/' . $custom_folder->Filename . $file->Name;
                 copy($file->getFullPath(), $new_path);
                 $new_file = new File();
                 $new_file->setFilename($custom_folder->Filename . $file->Name);
                 $new_file->setName($file->Name);
                 $new_file->setParentID($custom_folder->ID);
                 $new_file->write();
                 $file = $new_file;
                 $file_id = $new_file->ID;
             }
             // If something other than File has been specified as the linked file class,
             // we need to "upgrade" the imported file to the correct class.
             if ($this->fileClassName != "File" && $file->ClassName != $this->fileClassName) {
                 $file = $file->newClassInstance($this->fileClassName);
                 $file->write();
             }
             $owner_id = $data['parentIDName'];
             if ($this->hasDataObject) {
                 $do_class = $data['dataObjectClassName'];
                 $idxfield = $data['fileFieldName'] . "ID";
                 $obj = new $do_class();
                 $obj->{$idxfield} = $file_id;
                 $obj->{$owner_id} = $data['controllerID'];
                 $obj->write();
                 $_POST['uploaded_files'][] = $obj->ID;
             } else {
                 if ($file = DataObject::get_by_id($this->fileClassName, $file_id)) {
                     $id_field = $this->controllerFieldName . "ID";
                     if ($file->hasField($owner_id)) {
                         $file->{$owner_id} = $this->controllerID;
                         $file->write();
                     }
                 }
             }
         }
         $form = $this->EditUploadedForm();
         return $this->customise(array('String' => is_string($form), 'DetailForm' => $form))->renderWith($this->templatePopup);
     }
 }
Example #5
0
	function setFilename($filename) {
		$this->setField('Title',pathinfo($filename, PATHINFO_BASENAME));
		parent::setFilename($filename);
	}
Example #6
0
 public function testAddingAFilename()
 {
     $file = new File();
     $file->setFilename('test');
     $this->assertSame('test', $file->getFilename());
 }
Example #7
0
 /**
  * @depends testGetFilename
  * @covers Versionable\Prospect\Response\File::setFilename
  * @covers Versionable\Prospect\Response\File::getFilename
  */
 public function testSetFilename()
 {
     $filename = 'test';
     $this->object->setFilename($filename);
     $this->assertEquals($filename, $this->object->getFilename());
 }
 public function loadTranscodedFiles()
 {
     // get (a) source file to deduct name etc from...
     $source = false;
     if (!$source && $this->SourceID) {
         $source = $this->Source();
     }
     if (!$source && $this->MP3ID) {
         $source = $this->MP3();
     }
     if (!$source && $this->OGGID) {
         $source = $this->OGG();
     }
     $ext = pathinfo($source->getFilename(), PATHINFO_EXTENSION);
     $aud_name = basename($source->getFilename(), "." . $ext);
     // with extension stripped
     $aud_path = Config::inst()->get('Transcoding', 'transcode_relative_audio_path_base');
     $mp3_path = "{$vid_path}{$vid_name}.mp3";
     $ogg_path = "{$vid_path}{$vid_name}.ogg";
     if (!$this->MP3ID && file_exists(BASE_PATH . "/" . $mp3_path)) {
         $file = new File();
         $file->setFilename($mp3_path);
         $file->write();
         $this->MP3ID = $file->ID;
     }
     if (!$this->OGGID && file_exists(BASE_PATH . "/" . $ogg_path)) {
         $file = new File();
         $file->setFilename($ogg_path);
         $file->write();
         $this->OGGID = $file->ID;
     }
     $this->write();
 }
 public function loadTranscodedFiles()
 {
     // get (a) source file to deduct name etc from...
     $source = false;
     if (!$source && $this->SourceID) {
         $source = $this->Source();
     }
     if (!$source && $this->MP4ID) {
         $source = $this->MP4();
     }
     if (!$source && $this->WEBMID) {
         $source = $this->WEBM();
     }
     if (!$source && $this->OGVID) {
         $source = $this->OGV();
     }
     $ext = pathinfo($source->getFilename(), PATHINFO_EXTENSION);
     $vid_name = basename($source->getFilename(), "." . $ext);
     // with extension stripped
     $vid_path = Config::inst()->get('Transcoding', 'transcode_relative_video_path_base');
     $poster_path = "{$vid_path}{$vid_name}-01.jpg";
     $mp4_path = "{$vid_path}{$vid_name}.mp4";
     $webm_path = "{$vid_path}{$vid_name}.webm";
     $ogv_path = "{$vid_path}{$vid_name}.ogv";
     if (!$this->PosterID && file_exists(BASE_PATH . "/" . $poster_path)) {
         $file = new Image();
         $file->setFilename($poster_path);
         $file->write();
         $this->PosterID = $file->ID;
     }
     if (!$this->MP4ID && file_exists(BASE_PATH . "/" . $mp4_path)) {
         $file = new File();
         $file->setFilename($mp4_path);
         $file->write();
         $this->MP4ID = $file->ID;
     }
     if (!$this->WEBMID && file_exists(BASE_PATH . "/" . $webm_path)) {
         $file = new File();
         $file->setFilename($webm_path);
         $file->write();
         $this->WEBMID = $file->ID;
     }
     if (!$this->OGVID && file_exists(BASE_PATH . "/" . $ogv_path)) {
         $file = new File();
         $file->setFilename($ogv_path);
         $file->write();
         $this->OGVID = $file->ID;
     }
     $this->write();
 }