<?php 
/*------------------------------------------------
 * Обмен Хорошоп с 1С v.8.*               20261212
 * Copyright © FinBoss 2026
 * finboss.ua@gmail.com 
 *
 * обработка файлов import и offers
 *
 * License: Commercial open source software (COSS) 
 *------------------------------------------------
 */

	header('Content-Type: text/html; charset=utf-8');

	// контроль доступа по IP
	$a_allow = false;
	if (is_file('.allowed_ip')){
		$a_ips = file('.allowed_ip');
		
		foreach ($a_ips as $a_ip){
			$a_ip = trim($a_ip);
			if (strpos($a_ip, '*') !== false){
				
				// process 127.0.*.*
				
				$remote = explode('.', $_SERVER['REMOTE_ADDR']);
				$a = explode('.', $a_ip);
				
				$true_count = 0;
				for ($i=0;$i<4;$i++){
					switch ($i){
						case 0:
						case 1:
							if ($remote[$i] != $a[$i]){
								break 2;
							}else{
								$true_count++;
							}
							break;
						case 2:
						case 3:
							if ($a[$i] == '*'){
								// пропускаем
								$true_count++;
							}else{
								if ($remote[$i] != $a[$i]){
									break 2;
								}else{
									$true_count++;
								}
							}
							
					}
				}
				if ($true_count == 4){
					$a_allow = true;
					break;
				}
				
			}else{
				if ($_SERVER['REMOTE_ADDR'] == trim($a_ip)){
					$a_allow = true;
					break;
				}
			}
		}
		
	}
	if ($a_allow === false){
		die('доступ для IP '.$_SERVER['REMOTE_ADDR'].' заблоковано');
	}
	
	error_reporting (E_ALL);
	date_default_timezone_set ('Europe/Kiev');
	
	$path_parts = pathinfo(__FILE__);				//	используется для установки пути
	$cron_prefix = $path_parts['dirname'].'/';		//	используется для установки пути
	
	$config = array();
	
	$title = "Завантажувач файлів від 1С v.8x в Хорошоп";
	
	if (isset($_GET['kill']) AND $_GET['kill'] == 'input_files'){
		$path = explode(DIRECTORY_SEPARATOR, $path_parts['dirname']);
		$this_dir = array_pop($path);
		if (strpos(config_get('hs_loader_1c_dir'), substr($this_dir, 0, 6)) === 0){
			// удаление входных файлов
			@unlink($cron_prefix.'../'.config_get('hs_loader_1c_dir').'/import.xml');
			@unlink($cron_prefix.'../'.config_get('hs_loader_1c_dir').'/offers.xml');
		}
	}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" >
<title><?php echo $title; ?></title>
</head>
<body style="font-family:Trebuchet MS; font-size: 10pt;" bgcolor="#FEF4EB">

<table width="100%" bgcolor="#416e98">
<tr valign="middle">
<td><span style="font-size:25px; color:#FFF; font-family:Trebuchet MS"><?php echo $title; ?></span></td>
<td align="right"></td>
</tr>
</table>
<center>
<br/>

<table width="70%">
<tr valign="middle">
<td align="center"><a href="setup_uk.php?token=<?php echo time() ?>" target="_blank">Налаштування</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center"><a href="photos/upload_photo.php?token=<?php echo time() ?>" target="_blank">Завантажити фото товарів</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr valign="middle">
<td align="center"><a href="show_parameters_1c_by_cat_uk.php?token=<?php echo time() ?>" target="_blank">Показати характеристики товарів у файлі import.xml</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr valign="middle">
<td align="center"><a href="show_modifications_1c_by_cat_uk.php?token=<?php echo time() ?>" target="_blank">Показати модифікації товарів у файлі offers.xml</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<?php 

if (is_file($cron_prefix.'../'.config_get('hs_loader_1c_dir').'/import.xml')
		OR is_file($cron_prefix.'../'.config_get('hs_loader_1c_dir').'/offers.xml')
		){

	
?>
<tr>
<td align="center">
<a href="horoshop_loader_1c_uk.php?start=now&token=<?php echo time() ?>" target="_blank">Запустити завантажувач</a>
</td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center">
<a href="index.php?kill=input_files&token=<?php echo time() ?>">Видалити вхідні файли</a>
</td>
</tr>
<?php 
}else{
?>
<tr>
<td align="center">
В папці <?php echo config_get('hs_loader_1c_dir'); ?> немає файлів для обробки
</td>
</tr>
<?php 
}
?>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center"><a href="log/index.php?token=<?php echo time() ?>" target="_blank">Звіти</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center"><a href="show_products_uk.php?token=<?php echo time() ?>" target="_blank">Інформація про категорії Хорошопу</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center">
<form method="POST" action="show_products_uk.php?token=<?php echo time() ?>" target="_blank">
	Артикул <input type="text" name="article" /> <input type="submit" name="link" value="Інформація про товар" />
</form>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center"><a href="show_license.php?token=<?php echo time() ?>" target="_blank">Інформація про ліцензию</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center"><a href="phpinfo.php?token=<?php echo time() ?>" target="_blank">Інформація про сервер</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center"><a href="../<?php echo(str_replace('/input', '', config_get('hs_loader_1c_dir')))?>/index.php?token=<?php echo time() ?>">Перейти до модуля Синхронізація з 1C v.8x для Хорошоп</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
</table>

</center>
</body>
</html>
<?php 

function config_get($key){
	
	global $config, $cron_prefix;
	
	if (isset($config[$key])){
		return $config[$key];
	}else{
		
		$data = file($cron_prefix.'horoshop_loader_1c_uk.cfg.php', FILE_IGNORE_NEW_LINES);
		
		foreach ($data as $string){
			if ($string[0] == '$'){
				list($parameter, $comment) = explode('//', $string);
				list($variable, $value) = explode('=', trim($parameter), 2);
				$value = substr(trim($value), 0, -1);  // удаляем ;
				$value = str_replace("'", '', trim($value));
				if (strpos($variable, '_textarea') == false){
					if (strpos($variable, 'oc_loader_1c_option_') == false){
						if (strpos($variable, '_bool') == false){
							$config[substr($variable, 1)] = $value;
						}else{
							if ($value == 'true'){
								$config[str_replace('_bool', '', substr($variable, 1))] = 1;
							}else{
								$config[str_replace('_bool', '', substr($variable, 1))] = 0;
							}
						}
					}else{
						$config['oc_loader_1c_option_'.$value] = $value;
					}
				}else{
					$base = str_replace('_textarea', '', substr($variable, 1));
					$config[$base] = $value;
				}
			}
		}
		
		$config['hs_loader_1c_dir']='20261210/input'; //Путь к папке с входными файлами$hs_loader_1c_dir='20191210/input'; //Путь к папке с входными файлами
		
		$config['oc_loader_1c_status']='1';							// статус
		
		$config['oc_loader_1c_cache']='';
		
		if (isset($config[$key])){
			return $config[$key];
		}else{
			return false;
		}
	}
}

