Source of file ImageCachedExtension.php
Size: 3,431 Bytes - Last Modified: 2021-12-23T10:49:22+00:00
/var/www/docs.ssmods.com/process/src/src/Symbiote/ContentServiceAssets/ImageCachedExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | <?php namespace Symbiote\ContentServiceAssets; use ContentService; /** * Services cached resized images from the external source. */ class ImageCachedExtension extends \DataExtension { private $service; public function __construct(ContentService $service) { $this->service = $service; parent::__construct(); } public function updateURL(&$url) { $cached = $this->owner; /** @var \CdnImage_Cached $cached */ $filename = $cached->getFilename(); $storeIn = $this->owner->targetStore(); if (!$storeIn) { return; } $pointer = null; if ($this->owner->ResampledPointer) { $pointer = $this->owner->ResampledPointer; } if (!$pointer) { //////////////////////////////////// /* THE FOLLOWING IS LEGACY AND SHOULD BE REMOVED LATER - CdnImage has obsoleted it */ //////////////////////////////////// $asset = ContentServiceAsset::get()->filter('Filename', $filename)->first(); if(!$asset) { $asset = new ContentServiceAsset(); $asset->Filename = $filename; $asset->SourceID = $this->owner->SourceID; $asset->ParentID = $this->owner->ParentID; $mtime = strtotime($this->owner->LastEdited); $writer = $this->service->getWriterFor($asset, 'FilePointer', $storeIn); if ($writer) { if (file_exists($cached->getFullPath())) { // likely that cached image never got built correctly. $name = \Controller::join_links(dirname($filename), $mtime, basename($filename)); $writer->write(fopen($cached->getFullPath(), 'r'), $name); $asset->FilePointer = $writer->getContentId(); // @TODO Cleanup local system copy; see note further below $reader = $writer->getReader(); if ($reader && $reader->exists()) { singleton('ContentDeliveryService')->removeLocalFile($cached->getFullPath()); } $asset->write(); $reader = $writer->getReader(); if ($reader && $reader->exists()) { singleton('ContentDeliveryService')->removeLocalFile($cached->getFullPath()); } } else { $asset = null; } } else { $asset = null; } } if ($asset) { $pointer = $asset->FilePointer; } //////////////////////////////////// /* End obsolete code */ //////////////////////////////////// } if ($pointer) { $reader = $this->service->getReader($pointer); if ($reader) { if ($this->owner->CanViewType && $this->owner->getViewType() != \CDNFile::ANYONE_PERM) { return; } else { $controller = \Controller::has_curr() ? \Controller::curr() : null; if ($controller instanceof \LeftAndMain) { return; } $url = $reader->getURL(); } } } } } |