65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Nextend\Framework\Image;
 | 
						|
 | 
						|
use Nextend\Framework\Asset\Js\Js;
 | 
						|
use Nextend\Framework\Filesystem\Filesystem;
 | 
						|
use Nextend\Framework\Image\Joomla\JoomlaImage;
 | 
						|
use Nextend\Framework\Image\WordPress\WordPressImage;
 | 
						|
use Nextend\Framework\Misc\Base64;
 | 
						|
use Nextend\Framework\Pattern\SingletonTrait;
 | 
						|
use Nextend\Framework\ResourceTranslator\ResourceTranslator;
 | 
						|
 | 
						|
class Image {
 | 
						|
 | 
						|
    use SingletonTrait;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @var AbstractPlatformImage
 | 
						|
     */
 | 
						|
    private static $platformImage;
 | 
						|
 | 
						|
    public function __construct() {
 | 
						|
        self::$platformImage = new WordPressImage();
 | 
						|
    }
 | 
						|
 | 
						|
    public static function init() {
 | 
						|
 | 
						|
        if (!self::$platformImage) {
 | 
						|
            new Image();
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public static function enqueueHelper() {
 | 
						|
        $parameters = array(
 | 
						|
            'siteKeywords'     => ResourceTranslator::getResourceIdentifierKeywords(),
 | 
						|
            'imageUrls'        => ResourceTranslator::getResourceIdentifierUrls(),
 | 
						|
            'protocolRelative' => ResourceTranslator::isProtocolRelative()
 | 
						|
        );
 | 
						|
 | 
						|
        $parameters['placeholderImage']         = '$ss3-frontend$/images/placeholder/image.png';
 | 
						|
        $parameters['placeholderRepeatedImage'] = '$ss3-frontend$/images/placeholder/image.png';
 | 
						|
 | 
						|
        Js::addFirstCode('new _N2.ImageHelper(' . json_encode($parameters) . ');');
 | 
						|
    }
 | 
						|
 | 
						|
    public static function initLightbox() {
 | 
						|
 | 
						|
        self::$platformImage->initLightbox();
 | 
						|
    }
 | 
						|
 | 
						|
    public static function onImageUploaded($filename) {
 | 
						|
 | 
						|
        self::$platformImage->onImageUploaded($filename);
 | 
						|
    }
 | 
						|
 | 
						|
    public static function SVGToBase64($image) {
 | 
						|
 | 
						|
        $ext = pathinfo($image, PATHINFO_EXTENSION);
 | 
						|
        if ($ext == 'svg' && ResourceTranslator::isResource($image)) {
 | 
						|
            return 'data:image/svg+xml;base64,' . Base64::encode(Filesystem::readFile(ResourceTranslator::toPath($image)));
 | 
						|
        }
 | 
						|
 | 
						|
        return ResourceTranslator::toUrl($image);
 | 
						|
    }
 | 
						|
} |