⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.1
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
olasjoys
/
src
/
Adapter
/
Product
/
Image
/
View File Name :
ProductImagePathFactory.php
<?php /** * Copyright since 2007 PrestaShop SA and Contributors * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://devdocs.prestashop.com/ for more information. * * @author PrestaShop SA and Contributors <contact@prestashop.com> * @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ declare(strict_types=1); namespace PrestaShop\PrestaShop\Adapter\Product\Image; use PrestaShop\PrestaShop\Core\Domain\Product\Image\ValueObject\ImageId; class ProductImagePathFactory { public const IMAGE_TYPE_SMALL_DEFAULT = 'small_default'; public const IMAGE_TYPE_MEDIUM_DEFAULT = 'medium_default'; public const IMAGE_TYPE_LARGE_DEFAULT = 'large_default'; public const IMAGE_TYPE_HOME_DEFAULT = 'home_default'; public const IMAGE_TYPE_CART_DEFAULT = 'cart_default'; public const DEFAULT_IMAGE_FORMAT = 'jpg'; /** * @var string */ private $temporaryImgDir; /** * @var string */ private $pathToBaseDir; /** * @var string */ private $contextLangIsoCode; /** * @param string $pathToBaseDir * @param string $temporaryImgDir * @param string $contextLangIsoCode */ public function __construct( string $pathToBaseDir, string $temporaryImgDir, string $contextLangIsoCode ) { // make sure one trailing slash is always there $this->temporaryImgDir = rtrim($temporaryImgDir, '/') . '/'; $this->pathToBaseDir = rtrim($pathToBaseDir, '/') . '/'; $this->contextLangIsoCode = $contextLangIsoCode; } /** * @param ImageId $imageId * @param string $extension * * @return string */ public function getPath(ImageId $imageId, string $extension = self::DEFAULT_IMAGE_FORMAT): string { $path = $this->getBaseImagePathWithoutExtension($imageId); return sprintf('%s.%s', $path, $extension); } /** * @param ImageId $imageId * @param string $type * @param string $extension * * @return string */ public function getPathByType(ImageId $imageId, string $type, string $extension = self::DEFAULT_IMAGE_FORMAT): string { $path = $this->getBaseImagePathWithoutExtension($imageId); return sprintf('%s-%s.%s', $path, $type, $extension); } /** * @param string $type * @param string|null $langIso if null, will use $contextLangIsoCode by default * * @return string */ public function getNoImagePath(string $type, ?string $langIso = null): string { if (!$langIso) { $langIso = $this->contextLangIsoCode; } return sprintf('%s%s-%s-%s.jpg', $this->pathToBaseDir, $langIso, 'default', $type); } /** * @param int $productId * * @return string */ public function getCachedCover(int $productId): string { return sprintf('%sproduct_%d.jpg', $this->temporaryImgDir, $productId); } /** * @param int $productId * @param int $shopId * * @return string */ public function getHelperThumbnail(int $productId, int $shopId): string { return sprintf('%sproduct_mini_%d_%d.jpg', $this->temporaryImgDir, $productId, $shopId); } /** * @param ImageId $imageId * * @return string */ public function getImageFolder(ImageId $imageId): string { $path = implode('/', str_split((string) $imageId->getValue())); return $this->pathToBaseDir . $path; } /** * @param ImageId $imageId * * @return string */ private function getBaseImagePathWithoutExtension(ImageId $imageId): string { return $this->getImageFolder($imageId) . '/' . $imageId->getValue(); } }