<?php
namespace Transformation\TransformationListenerBundle\EventListener;
use Symfony\Component\EventDispatcher\GenericEvent;
use Pimcore\Event\Model\ElementEventInterface;
use Pimcore\Event\Model\AssetEvent;
use Pimcore\Event\Model\VersionEvent;
use Pimcore\Event\Model\DataObjectEvent;
use Pimcore\Event\Model\RedirectEvent;
use Pimcore\Model\DataObject\Product;
use Pimcore\Model\User;
use Pimcore\Model\DataObject;
use Pimcore\Model\Asset;
use Pimcore\Model\DataObject\ImageTifToJpeg;
use Pimcore\Tool;
use Pimcore\Db;
use Pimcore\Event\BundleManager\PathsEvent;
use Pimcore\Model\DataObject\Service;
class TifftoJpegListener {
public const PATH = '/Test/';
public function addJSFiles(PathsEvent $event)
{
$event->setPaths(
array_merge(
$event->getPaths(),
[
'/static/js/startup.js'
]
)
);
}
public function onPostUpdate (AssetEvent $e)
{
$Pid = $e->getasset()->getid();
// foreach ($Pid as $assetid) {
// $i = implode("", $Pid);
// dd($i);
// $i = 6082;
$asset = Asset::getById($Pid, 1);
$hostUrl = Tool::getHostUrl();
// dd($hostUrl);
if ($asset instanceof Asset\Image) {
$path = $asset->getFileSystemPath();
$filename = $asset->getFilename();
$filePath = pathinfo($filename, PATHINFO_FILENAME);
// dd($filePath);
$fileExtension = pathinfo($filename, PATHINFO_EXTENSION);
// dd($fileExtension);
if( $fileExtension == 'tiff' || $fileExtension == 'tif'){
try {
$img = new \Imagick($path);
$img->setFormat('jpeg');
$img->scaleImage(2000,0);
file_put_contents('/var/www/html/pimcoreman/web/var/assets/TransformedImages/' . $filePath . '.jpeg', $img);
$transformedPath = $hostUrl. '/TransformedImages/'. $filePath.'.jpeg';
$targetPath = "/MasterData/ImagePath";
$keyname = $this->getSafeFilename($targetPath, $filename);
$newThumbnailPath = ImageTifToJpeg::create();
$newThumbnailPath->setParentId('5978');
$newThumbnailPath->setAssetID($Pid);
$newThumbnailPath->setPublished(true);
$newThumbnailPath->setAssetPathTransformed($transformedPath);
$newThumbnailPath->setKey(\Pimcore\Model\Element\Service::getValidKey($keyname, 'object'));
$newThumbnailPath->save();
echo $i."\n";
} catch (Throwable $e){
echo 'error on ' . $i;
}
// die();
}
}
// }
// $Pid = $e->getversion();
// dd($Pid);
// $object = Asset::getById($Pid,1);
// dd($object);
// if(is_null($object) == false){
// $user = \Pimcore\Tool\Admin::getCurrentuser();
// // dd($user);
// if(is_null($user) == false){
// if(!empty($user->getRoles()) == True){
// if($user->getRoles()[0] == "19"){
// if ($object->getstatus() == 'Ready_for_Magento' || $object->getstatus() == 'Published') {
// $object->setStatus('InProgress');
// $object->save();
// }
// else{
// $object;
// }
// }
// elseif($user->getRoles()[0] == "17"){
// if ($object->getstatus() == 'Ready_for_Magento' && $object->getfeedStatus()=='sent') {
// $object->setfeedStatus('');
// $object->save();
// }
// elseif($object->getstatus()=='Published'){
// $object->setStatus('InProgress');
// $object->save();
// }
// else{
// $object;
// }
// }
// else{
// if ($object->getstatus() == 'Ready_for_Magento' && $object->getfeedStatus()=='sent') {
// $object->setfeedStatus('');
// $object->save();
// }
// elseif($object->getstatus()=='Published') {
// $object->setStatus('InProgress');
// $object->save();
// } else {
// $object;
// }
// }
// }
// else{
// if ($object->getstatus() == 'Ready_for_Magento' && $object->getfeedStatus()=='sent') {
// $object->setfeedStatus('');
// $object->save();
// }
// elseif($object->getstatus()=='Published') {
// $object->setStatus('InProgress');
// $object->save();
// } else {
// $object;
// }
// }
// }
// else{
// $object;
// }
// }
}
protected function getSafeFilename ($targetPath, $filename)
{
$originalFilename = $filename;
$count = 1;
while (true) {
if (Service::pathExists($targetPath . '/' . $filename)) {
$filename = $originalFilename . "_" . $count;
$count++;
} else {
return $filename;
}
}
}
}