/** * Add infos for front : urls of thumbnails and html value of media. * * @param MediaInterface $media * * @return MediaInterface */ private function addInfosForFront(MediaInterface $media) { $mediaManager = $this->getMediaManager(); $media->setUrls(array('original' => $mediaManager->getUrl($media), '500x400' => $mediaManager->getUrl($media, '500x400'), '78x44_focus' => $mediaManager->getUrl($media, '78x44_focus'))); $media->setHtml($mediaManager->getHtml($media)); return $media; }
/** * Update the focus after update. * * @param MediaInterface $media */ public function updateFocus(MediaInterface $media) { if ($this->direction == 'x') { $media->setFocusLeft(100 - $media->getFocusLeft()); } elseif ($this->direction == 'y') { $media->setFocusTop(100 - $media->getFocusTop()); } }
/** * Apply the filter. * * @param string $aliasName */ public function apply($aliasName = null) { $reset = false; if ($aliasName === null) { $aliasName = $this->mediaManager->getOriginalDir(); $reset = true; } $this->updateFile($this->image); $this->updateFocus($this->media); $fs = $this->mediaManager->getFilesystemManipulator(); $fs->saveContent($aliasName . '/' . $this->media->getReference(), $this->image->get($this->media->getExtension())); $this->mediaManager->setSizeWidthAndHeight($this->media)->save($this->media); if ($reset === true) { $this->mediaManager->reset($this->media); } }
/** * Update the focus after update. * * @param MediaInterface $media */ public function updateFocus(MediaInterface $media) { if ($this->angle == 90) { $focusLeft = 100 - $media->getFocusTop(); $focusTop = $media->getFocusLeft(); } elseif ($this->angle == -90) { $focusLeft = $media->getFocusTop(); $focusTop = 100 - $media->getFocusLeft(); } $media->setFocusLeft($focusLeft); $media->setFocusTop($focusTop); }
/** * Update the focus after update. * * @param MediaInterface $media */ public function updateFocus(MediaInterface $media) { $originalFocusLeftPx = $media->getFocusLeft() * $media->getWidth() / 100; $newFocusLeftPx = $originalFocusLeftPx - $this->x; $newFocusLeft = $newFocusLeftPx * 100 / $this->w; if ($newFocusLeft < 0) { $newFocusLeft = 0; } if ($newFocusLeft > 100) { $newFocusLeft = 100; } $media->setFocusLeft($newFocusLeft); $originalFocusTopPx = $media->getFocusTop() * $media->getHeight() / 100; $newFocusTopPx = $originalFocusTopPx - $this->y; $newFocusTop = $newFocusTopPx * 100 / $this->h; if ($newFocusTop < 0) { $newFocusTop = 0; } if ($newFocusTop > 100) { $newFocusTop = 100; } $media->setFocusTop($newFocusTop); }
/** * Save media. * * @param MediaInterface $media * @param bool $flush * * @return bool If return false (when add new file), the error is in $error attribute */ public function save($media, $flush = true) { if ($media->getFile() !== null) { if ($this->saveFile($media) === false) { return false; } } if ($media->getFocusIsEdited() === true) { $this->reset($media, true); $media->setFocusIsEdited(false); } $media->setUpdatedAt(new \Datetime()); parent::save($media, $flush); return true; }