<?php 
/*------------------------------------------------
 * Обмен Хорошоп с 1С v.8.*               20191212
 * Copyright © FinBoss 2018
 * 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С в Хорошоп";
	
	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.php" target="_blank">Настройка</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center"><a href="photos/upload_photo.php" target="_blank">Закачать фото товаров</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.php?start=now" target="_blank">Запустить загрузчик</a>
</td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center">
<a href="index.php?kill=input_files">Удалить входные файлы</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" target="_blank">Отчеты</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center"><a href="show_products.php" target="_blank">Информация о категориях Хорошоп</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center">
<form method="POST" action="show_products.php">
	Артикул <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" target="_blank">Информация о лицензии</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center"><a href="phpinfo.php" target="_blank">Информация о сервере</a></td>
</tr>
<tr>
<td align="center"><hr/></td>
</tr>
<tr>
<td align="center"><a href="../20191210/index.php">Перейти к модулю Синхронизация с 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.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']='20191210/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;
		}
	}
}

