Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/lib/internal/Customweb/Asset/Resolver/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/corals/old/lib/internal/Customweb/Asset/Resolver/Simple.php
<?php 
/**
  * You are allowed to use this API in your web application.
 *
 * Copyright (C) 2018 by customweb GmbH
 *
 * This program is licenced under the customweb software licence. With the
 * purchase or the installation of the software in your application you
 * accept the licence agreement. The allowed usage is outlined in the
 * customweb software licence which can be found under
 * http://www.sellxed.com/en/software-license-agreement
 *
 * Any modification or distribution is strictly forbidden. The license
 * grants you the installation in one application. For multiuse you will need
 * to purchase further licences at http://www.sellxed.com/shop.
 *
 * See the customweb software licence agreement for more details.
 *
 */



class Customweb_Asset_Resolver_Simple implements Customweb_Asset_IResolver {
	
	private $pathPrefix = null;
	
	private $urlPrefix = null;
	
	private $mimeTypes = array();
	
	/**
	 * Constructor
	 * 
	 * @param string $pathPrefix The path prefix to create a file input stream.
	 * @param string $urlPrefix (Optional) The URL prefix to create a URL. If null, the assets are private.
	 * @param array $types (Optional) The mime types supported by this resolver. If non given 
	 */
	public function __construct($pathPrefix, $urlPrefix = null, array $mimeTypes = array()) {
		if (empty($pathPrefix)) {
			throw new Exception("The given path prefix is empty.");
		}
		
		$this->pathPrefix = rtrim($pathPrefix, '/') . '/';
		$this->urlPrefix = $urlPrefix;
		$this->mimeTypes = $mimeTypes;
	}
	
	public function resolveAssetStream($identifier) {
		$filePath = $this->pathPrefix . ltrim($identifier, '/');
		if ($this->isSupportedMimeType($identifier)) {
			if (file_exists($filePath)) {
				return new Customweb_Core_Stream_Input_File($filePath);
			}
		}
		throw new Customweb_Asset_Exception_UnresolvableAssetException($identifier);
	}
	
	protected function isSupportedMimeType($identifier) {
		if (count($this->mimeTypes) <= 0) {
			return true;
		}
		$fileExtension = pathinfo($identifier, PATHINFO_EXTENSION);
		$mimeType = Customweb_Core_MimeType::getMimeType($fileExtension);
		if (in_array($mimeType, $this->mimeTypes)) {
			return true;
		}
		else {
			return false;
		}
	}
	
	public function resolveAssetUrl($identifier) {
		$this->resolveAssetStream($identifier);
		if ($this->urlPrefix === null) {
			throw new Customweb_Asset_Exception_NonPublicAssetException($identifier);
		}		
		return new Customweb_Core_Url($this->urlPrefix . $identifier);
	}
	
}

Spamworldpro Mini