'); $value = str_replace('
', "
", $value);
$value = str_replace('
', "", $value); $value = str_replace('
', "", $value); return $value; } /** * @param array $medias [description] * * @return array [description] */ private function createMediasValues(array $medias, string $exportType, ?int $templateId, array $allMedias): array { $mediasValues = []; foreach ($medias as $media) { $name = ""; $value = ""; $twigKey = ""; $copyright = ""; $legend = ""; if (is_object($media)) { if (property_exists($media, 'name') && property_exists($media, 'twigKey') && property_exists($media, 'copyright') && property_exists($media, 'legend') && property_exists($media, 'fileName')) { $name = $media->name; $twigKey = $media->twigKey; $copyright = $media->copyright; $legend = $media->legend; if ($templateId) { $template = $this->templateRepo->findById($templateId); $templateMedia = $template->getMedias()->filter(function ($medTemplate) use ($media) { return $medTemplate->getPosition() == $media->position; }); foreach ($templateMedia as $med) { $value = $this->manageMediaData($exportType, $media, $allMedias, $med); } } else { throw new UnprocessableEntityMaestroException("No template id provided to manage object " . get_class($media)); } } else { throw new UnprocessableEntityMaestroException("Missing property in object " . get_class($media)); } } else if (is_array($media)) { if (!isset($media['name'], $media['copyright'], $media['legend'])) { if (isset($media["id"])) { $index = array_search($media["id"], array_column($allMedias, "id")); if (false !== $index) { $newMedia = $allMedias[$index]; $newMedia['link'] = $media['link']; $newMedia['name'] = $newMedia['originalName']; $media = $newMedia; } else { throw new UnprocessableEntityMaestroException("No media id found in array for id : " . $media["id"]); } $name = $media['name']; $copyright = $media['copyright']; $legend = $media['legend']; } } $value = $this->manageMediaData($exportType, $media); } else { throw new UnprocessableEntityMaestroException("Unhandled type : " . gettype($media)); } $nameCopyright = str_replace("PHOTO", "CREDIT", $name); $nameLegend = str_replace("PHOTO", "LEGEND", $name); if (!empty($value)) { !empty($twigKey) ? $mediasValues["medias"][$twigKey] = $value : $mediasValues["medias"][] = $value; } if (!empty($copyright)) { $mediaCopyrigth = "<" . $nameCopyright . ">" . $copyright . "" . $nameCopyright . ">"; !empty($twigKey) ? $mediasValues["copyright"][$twigKey] = $mediaCopyrigth : $mediasValues["copyright"][] = $mediaCopyrigth; } if (!empty($legend)) { $mediaLegend = "<" . $nameLegend . ">" . $legend . "" . $nameLegend . ">"; !empty($twigKey) ? $mediasValues["legend"][$twigKey] = $mediaLegend : $mediasValues["legend"][] = $mediaLegend; } } return $mediasValues; } private function manageMediaData(string $exportType, $media, array $allMedias = [], $med = null): string { $name = ""; $objectNameLink = ""; $mediaId = ""; $exportMediaId = ""; $isObject = true; if (is_object($media)) { $name = $media->name; $mediaId = $media->mediaId; $exportMediaId = $media->exportMediaId; if (isset($media->linkData) && isset($media->linkData["link"])) { if (isset($media->linkData["loadMetadata"]) && true === $media->linkData["loadMetadata"]) { $media = $this->generationService->getLinkMetadata($media); } $objectNameLink = $this->generationService->formatLinksFileName($media->linkData["link"]); } } else if (is_array($media)) { $isObject = false; if (isset($media['name']) && !empty($media['name']) && isset($media['loadMetadata']) && true !== ($media['loadMetadata'])) { $name = $media["name"]; } else if (isset($media["link"])) { if (isset($media["loadMetadata"]) && true === $media["loadMetadata"]) { $media = $this->generationService->getLinkMetadata($media); } if (isset($media["id"])) { $cleanName = $this->clearService->cleanFilesName([$media["name"]]); // Use real media name cleaned (like in $renamedMediasFiles in SendAction to match) instead extract thumb name from path if it's dam media with id $name = reset($cleanName); } else { $name = $this->generationService->formatLinksFileName($media["link"]); } } else { throw new UnprocessableEntityMaestroException("Cannot find media name !"); } $mediaId = $media['id']; // Id or null for media field $exportMediaId = isset($media['exportMediaId']) ? $media['exportMediaId'] : null; // Not in array for media field } if ($exportType == "xml") { $mediaInfo = null; if ($isObject) { $value = ""; if (isset($mediaId) && -1 !== $mediaId) { $value = "<" . $name . ' href="'; $mediaInfo = $this->getMediaInformation($media, $allMedias, $med); if ($mediaInfo && isset($mediaInfo['cadrage']) && $mediaInfo['cadrage']) { $value .= $this->mediaFilesLocation . strtolower($mediaInfo['name']) . '" w="' . $mediaInfo['width'] . '" h="' . $mediaInfo['height'] . '" posx="' . $mediaInfo['x'] . '" posy="' . $mediaInfo['y'] . '" rotation="' . $mediaInfo['rotation'] . '" miroir="' . $mediaInfo['miroir'] . '" do_cadrage="1">' . $name . '>'; } else { $value .= $this->mediaFilesLocation . strtolower($mediaInfo['name']) . '" do_cadrage="0">' . $name . '>'; } } else if (!empty($objectNameLink)) { $value .= $this->mediaFilesLocation . strtolower($objectNameLink) . '" do_cadrage="0">' . $name . '>'; } } else { // HERE WE JUST NEED TO CREATE AN HREF ARRAY NO BALISE NEEDED ! $value = $this->mediaFilesLocation . strtolower($name); } } else { $val = $mediaId; $crop = $exportMediaId; if (isset($mediaId) && -1 !== $mediaId) { $value = "mediaId__" . $val . "__cropId__" . (isset($crop) ? $crop : -1); } else { if ($isObject) { if (isset($media->linkData) && isset($media->linkData["link"])) { $value = $media->linkData["link"]; } else { $value = ""; } } else { $value = $media["link"]; } } if ($med) { if ($med->getWidth() > 0) { $value .= '" width="' . $med->getWidth() . 'px'; } if ($med->getHeight() > 0) { $value .= '" height="' . $med->getHeight() . 'px'; } } } return $value; } /** * * @return string [description] */ private function addBreakLine(): string { return "