<?php
namespace App\Controller;
use App\Helpers\AuthHelper;
use App\Tools\StaticImportMethods;
use Carbon\Carbon;
use Cocur\Slugify\Slugify;
use Exception;
use Google\Service\Compute\Image;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat\FractionFormatter;
use Pimcore\Controller\FrontendController;
use Pimcore\Event\Model\AssetEvent;
use Pimcore\Event\Model\DataObjectEvent;
use Pimcore\Model\Asset;
use Pimcore\Model\DataObject;
use Pimcore\Model\DataObject\Family;
use Pimcore\Model\DataObject\Folder;
use Pimcore\Model\DataObject\Product;
use Pimcore\Model\DataObject\Product\Listing;
use Pimcore\Model\DataObject\Sector;
use Pimcore\Model\DataObject\SubFamily;
use Pimcore\Model\Element\ValidationException;
use Pimcore\Tool\Storage;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use pcrov\JsonReader\JsonReader;
use function Symfony\Component\String\s;
use function Symfony\Component\Translation\t;
use Pimcore\Twig\Extension\ImageThumbnailExtension;
class AssetController extends FrontendController
{
/**
* Updates fragment using title
* @param AssetEvent $event
*/
public function onAssetPostAdd(AssetEvent $event)
{
$asset = $event->getAsset();
if ($asset instanceof Asset\Text) {
$this->onCsvPostAdd($asset);
}
/*
elseif ($asset instanceof Asset\Image) {
$this->onImagePostAdd($asset);
}
*/
}
/**
* @throws Exception
*/
public function onAssetPreUpdate(AssetEvent $event): void
{
$asset = $event->getAsset();
if ($asset instanceof Asset\Image || $asset instanceof Asset\Document) {
$this->onImagePreUpdate($asset);
}
}
private function onCsvPostAdd(Asset\Text $text)
{
return;
}
/*
private function onImagePostAdd(Asset\Image $image)
{
file_put_contents("../shared/webdav/onSales/items/{$image->getFilename()}", $image->getData());
file_put_contents("../shared/webdav/onSales/thumbnails400/{$image->getFilename()}", $image->getThumbnail("thumbnail400")->getStream());
file_put_contents("../shared/webdav/onSales/thumbnails1200/{$image->getFilename()}", $image->getThumbnail('thumbnail1200')->getStream());
}
*/
/**
* @throws Exception
*/
private function onImagePreUpdate(Asset $image): void
{
$assetName = pathinfo($image->getKey(), PATHINFO_FILENAME);
if (str_contains($assetName, '_')) {
$assetName = substr($assetName, 0, strpos($assetName, '_'));
}
$parentFolder = Asset\Service::createFolderByPath('Data/Products/' . $assetName)->save();
// Controlla se esiste giĆ un asset con lo stesso nome nel percorso di destinazione
$existingAsset = Asset::getByPath($parentFolder->getFullPath() . '/' . $image->getFilename());
if ($existingAsset && $existingAsset->getId() !== $image->getId()) {
// Elimina il file vecchio (duplicato)
$existingAsset->delete();
}
$image->setParentId($parentFolder->getId());
}
}