<?php
namespace DrukattBundle\EventListener;
use Pimcore\Event\Model\Asset\ResolveUploadTargetEvent;
use Pimcore\Model\DataObject\Client;
use Pimcore\Model\DataObject\ClientEquipment;
use Pimcore\Model\DataObject\Concrete;
class ClientEquipmentAssetListener
{
public function onResolveUploadTarget (ResolveUploadTargetEvent $event) {
$context = $event->getContext();
if ($context["containerType"] == "object") {
$objectId = $context["objectId"];
$clientEquipment = ClientEquipment::getById($objectId);
if ($clientEquipment) {
$client = $this->findParentClient($clientEquipment);
if (!empty($client) && !empty($client->getUploadpath())) {
//$fieldname = $context["fieldname"];
$targetPath = $client->getUploadpath()->getRealFullPath() . '/' . $clientEquipment->getKey();
$parent = \Pimcore\Model\Asset\Service::createFolderByPath($targetPath);
if ($parent) {
$event->setParentId($parent->getId());
}
}
}
}
}
/**
* @return Client
*/
private function findParentClient(Concrete $object) {
if (empty($object)) {
return null;
}
if ($object instanceof Client) {
return $object;
}
return $this->findParentClient($object->getParent());
}
}