<?phpnamespace 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()); }}