Example #1
0
 /**
  * @param Skill $skill
  * @param mixed $data
  */
 protected function postSave(Skill $skill, $data)
 {
     SkillQuery::disableVersioning();
     // calculate
     $calculator = new Calculator();
     $calculator->calculate($skill);
     $calculator->getModifiedGenerationSkills()->each(function (Skill $skill) {
         LineageQuery::create()->filterBySkillId($skill->getId())->delete();
     });
     $calculator->getModifiedSkills()->each(function (Skill $skill) {
         $skill->save();
     });
     // set sequence picture
     if (isset($data['meta']) && isset($data['meta']['filename'])) {
         $module = $this->getServiceContainer()->getModuleManager()->load('gossi/trixionary');
         $destpath = $module->getSequencePath($skill);
         $dest = new File($destpath);
         if ($dest->exists()) {
             $dest->delete();
         }
         $file = new File($module->getUploadPath()->append($data['meta']['filename']));
         $file->move($destpath);
         $skill->setSequencePictureUrl($module->getSequenceUrl($skill));
         $skill->save();
     }
     SkillQuery::enableVersioning();
     // activity
     $user = $this->getServiceContainer()->getAuthManager()->getUser();
     $user->newActivity(array('verb' => $this->isNew ? Activity::VERB_CREATE : Activity::VERB_AUTHOR, 'object' => $skill, 'target' => $skill->getSport()));
 }
Example #2
0
 /**
  * @param Picture $picture
  * @param array $data
  */
 protected function postSave(Picture $picture, array $data)
 {
     if (isset($data['meta']) && isset($data['meta']['filename'])) {
         $module = $this->getServiceContainer()->getModuleManager()->load('gossi/trixionary');
         $file = new File($module->getUploadPath()->append($data['meta']['filename']));
         $slugifier = new Slugify();
         $filename = sprintf('%s-%u.%s', $slugifier->slugify($picture->getAthlete()), $picture->getId(), $file->getExtension());
         $filepath = $module->getPicturesPath($picture->getSkill())->append($filename);
         $file->move($filepath);
         // create thumb folder
         $thumbspath = $module->getPicturesPath($picture->getSkill())->append('thumbs');
         $dir = new Directory($thumbspath);
         if (!$dir->exists()) {
             $dir->make();
         }
         // create thumb
         $imagine = new Imagine();
         $image = $imagine->open($filepath->toString());
         $max = max($image->getSize()->getWidth(), $image->getSize()->getHeight());
         $width = $image->getSize()->getWidth() / $max * self::THUMB_MAX_SIZE;
         $height = $image->getSize()->getHeight() / $max * self::THUMB_MAX_SIZE;
         $size = new Box($width, $height);
         $thumbpath = $thumbspath->append($filename);
         $image->thumbnail($size)->save($thumbpath->toString());
         // save to picture
         $picture->setUrl($module->getPicturesUrl($picture->getSkill()) . '/' . $filename);
         $picture->setThumbUrl($module->getPicturesUrl($picture->getSkill()) . '/thumbs/' . $filename);
         $picture->save();
     }
     // activity
     $user = $this->getServiceContainer()->getAuthManager()->getUser();
     $user->newActivity(array('verb' => $this->isNew ? Activity::VERB_UPLOAD : Activity::VERB_EDIT, 'object' => $picture, 'target' => $picture->getSkill()));
 }
Example #3
0
 /**
  * @expectedException phootwork\file\exception\FileException
  */
 public function testMoveWithFailure()
 {
     $dir = new Directory($this->root->url() . '/dir');
     $dir->make(0555);
     $file = new File($this->root->url() . '/composer.json');
     $file->write('{}');
     $file->move(new Path($this->root->url() . '/dir/composer.json'));
 }
Example #4
0
 /**
  * @param Video $video
  * @param array $data
  */
 protected function postSave(Video $video, array $data)
 {
     if (isset($data['meta']) && isset($data['meta']['filename']) && !empty($data['meta']['filename'])) {
         $module = $this->getServiceContainer()->getModuleManager()->load('gossi/trixionary');
         $file = new File($module->getUploadPath()->append($data['meta']['filename']));
         $filename = $video->getFilename();
         $filepath = $module->getVideosPath($video->getSkill())->append($filename);
         $file->move($filepath);
         $video->setUrl($module->getVideosUrl($video->getSkill()) . '/' . $filename);
         $video->save();
     }
     if ($video->getReference()) {
         $video->getReference()->addSkill($video->getSkill());
         $video->save();
     }
     // activity
     $user = $this->getServiceContainer()->getAuthManager()->getUser();
     $user->newActivity(array('verb' => $this->isNew ? Activity::VERB_UPLOAD : Activity::VERB_EDIT, 'object' => $video, 'target' => $video->getSkill()));
 }