HEX
Server: LiteSpeed
System: Linux php-prod-3.spaceapp.ru 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: sarli3128 (1010)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/retile.ru/public_html/catalog/model/extension/module/uni_download.php
<?php
class ModelExtensionModuleUniDownload extends Model {	
	public function getDownloads($product_id, $start, $limit) {
		$uniset = $this->config->get('config_unishop2');
		$status = $uniset['product']['download_tab']['status'];
		
		if ($start < 0) {
			$start = 0;
		}

		if ($limit < 1) {
			$limit = 50;
		}
		
		$result = [];
		
		if($status) {
			
			$implode = [];

			$order_statuses = $this->config->get('config_complete_status');

			foreach ($order_statuses as $order_status_id) {
				$implode[] = "o.order_status_id = '".(int)$order_status_id."'";
			}
			
			if(!$implode && $status > 2) {
				return $result;
			}
			
			$sql = "SELECT d.download_id, d.date_added, dd.name, d.filename, d.mask FROM";
			
			if($status > 2) {
				$sql .= " `".DB_PREFIX."order` o LEFT JOIN `".DB_PREFIX."order_product` op ON (o.order_id = op.order_id) LEFT JOIN `".DB_PREFIX."product_to_download` p2d ON (op.product_id = p2d.product_id)";
			} else {
				$sql .= " `".DB_PREFIX."product_to_download` p2d";
			}
			
			$sql .= " LEFT JOIN `".DB_PREFIX."download` d ON (p2d.download_id = d.download_id) LEFT JOIN `".DB_PREFIX."download_description` dd ON (d.download_id = dd.download_id) WHERE";
			
			if($status > 2) {
				$sql .= " o.customer_id = '".(int)$this->customer->getId()."' AND (".implode(" OR ", $implode).") AND";
			}
			
			$sql .= " p2d.product_id = '".(int)$product_id."' AND dd.language_id = '".(int)$this->config->get('config_language_id') . "'ORDER BY d.date_added DESC LIMIT ".(int)$start.", ".(int)$limit;
			
			$query = $this->db->query($sql);
			
			if($query->rows) {
				$result = $query->rows;
			}
		}
		
		return $result;
	}
	
	public function getDownload($product_id, $download_id) {
		$uniset = $this->config->get('config_unishop2');
		$status = $uniset['product']['download_tab']['status'];
		
		$result = [];
		
		if($status) {

			$implode = [];

			$order_statuses = $this->config->get('config_complete_status');

			foreach ($order_statuses as $order_status_id) {
				$implode[] = "o.order_status_id = '".(int)$order_status_id."'";
			}
			
			if(!$implode && $status > 2) {
				return $result;
			}
		
			$sql = "SELECT d.filename, d.mask FROM";
		
			if($status > 2) {
				$sql .= " `".DB_PREFIX."order` o LEFT JOIN `".DB_PREFIX."order_product` op ON (o.order_id = op.order_id) LEFT JOIN `".DB_PREFIX."product_to_download` p2d ON (op.product_id = p2d.product_id)";
			} else {
				$sql .= " `".DB_PREFIX."product_to_download` p2d";
			}
		
			$sql .= " LEFT JOIN `".DB_PREFIX."download` d ON (p2d.download_id = d.download_id) WHERE";
		
			if($status > 2) {
				$sql .= " o.customer_id = '".(int)$this->customer->getId()."' AND (".implode(" OR ", $implode).") AND";
			}
			
			$sql .= " p2d.product_id = '".(int)$product_id."' AND d.download_id = '".(int)$download_id."'";
		
			$query = $this->db->query($sql);
			
			if($query->row) {
				$result = $query->row;
			}
		}
		
		return $result;
	}
}
?>