<?php
///////////////////////////////////////////////////////////////////////////////////////////
///Script PHP/MYSQL of management of classifieds ads developed by Script PAG
///Script PAG all rights reserved. Use under license. http://www.script-pag.com
///////////////////////////////////////////////////////////////////////////////////////////

############################################################

require_once __DIR__.'/includes_adm/all_fns_adm.php';

///////////////////////////////////
//Check if the super admin is connected
//////////////////////////////////

if(!empty($_SESSION['valid_admin']))
$valid_admin = $_SESSION['valid_admin'];

if(!check_super_admin())
redirect('index.php');

///////////////////////////////////
//Validation of the action
//////////////////////////////////

if(!empty($_GET['act']))
{
	if($_GET['act'] >= 1 && $_GET['act'] <= 5)
	$act = (int) $_GET['act'];
	
	else redirect('index.php');
	
	if(isset($_GET['succes']) && $_GET['succes'] == 2)
	{
		get_nb_ads();
		unlink('../template/map/sql_map.php');
	}
}
else redirect('index.php');

///////////////////////////////////
//Initializing variable $error
//////////////////////////////////

$error = '';

///////////////////////////////////
//Upload theme
//////////////////////////////////

if($act == 1)
{
	$zip_name = '';
	
	if(isset($_FILES['template']) && $_FILES['template']['error'] == 0)
	{
		if ($_FILES['template']['size'] <= 1073741824*3) 
		{
			$extensions_allowed = array('zip');  
			$extension_downloaded = strtolower(substr(strrchr($_FILES['template']['name'], '.'), 1) ); 
			
			if (in_array($extension_downloaded, $extensions_allowed))
			{
				$zip_name = $_FILES['template']['name'];
				move_uploaded_file($_FILES['template']['tmp_name'], '../' . basename($_FILES['template']['name'])); 
				
				$zip = new ZipArchive;
	
				if($zip->open('../'. $zip_name) === TRUE) 
				{
				    $zip->extractTo('../');
				    $zip->close();
				    
				    $i = 1;
				    
				    while($i <= 100)
				    {
					    if(!file_exists('../template_backup_'. $i))
					    {	
					    	rename('../template', '../template_backup_'. $i);
					    	break;
					    }
					    
					    $i++;
					}
					
					$folder = str_replace('.zip', '', $zip_name);
				    rename('../'. $folder, '../template');
				    
				    unlink('../'. $zip_name);
				    
				    if(empty($error))
					redirect('template.php?act=1&succes=1&menu=25');
				}
			}
			else $error = 4;
		}
		else $error = 2;
	}
	elseif(isset($_FILES['template']) AND $_FILES['template']['error'] != 0)
	$error = 1;
}

///////////////////////////////////
//Upload map
//////////////////////////////////

if($act == 2)
{
	$zip_name = '';
	
	if(isset($_FILES['map']) && $_FILES['map']['error'] == 0)
	{
		if ($_FILES['map']['size'] <= 1073741824*3) 
		{
			$extensions_allowed = array('zip');
			$extension_downloaded = strtolower(substr(strrchr($_FILES['map']['name'], '.'), 1) );
			
			if (in_array($extension_downloaded, $extensions_allowed))
			{
				$zip_name = $_FILES['map']['name'];
				move_uploaded_file($_FILES['map']['tmp_name'], '../template/' . basename($_FILES['map']['name']));
				
				$zip = new ZipArchive;
	
				if($zip->open('../template/'. $zip_name) === TRUE) 
				{
				    $zip->extractTo('../template/');
				    $zip->close();
				    
				    $i = 1;
				    
				    while($i <= 100)
				    {
					    if(!file_exists('../template/map_backup_'. $i))
					    {	
						    if(file_exists('../template/map'))
					    	rename('../template/map', '../template/map_backup_'. $i);
					    	
					    	break;
					    }
					    
					    $i++;
					}
				    
				    $folder = str_replace('.zip', '', $zip_name);
				    rename('../template/'. $folder, '../template/map');
				    
				    unlink('../template/'. $zip_name);
				    
				    require_once('../template/map/sql_map.php');
				    
				    create_cache_reg();
				    create_cache_counties();
				    get_nb_ads();
				    
				    if(empty($error))
					redirect('template.php?act=2&succes=2&menu=25');
				}
			}
			else $error = 4;
		}
		else $error = 2;
	}
	elseif(isset($_FILES['map']) AND $_FILES['map']['error'] != 0)
	$error = 1;
}

///////////////////////////////////
//Update CSS map
//////////////////////////////////  

if(count($_POST) > 1 && $act == 4)
{
	if(empty($_POST['fillover']) || empty($_POST['fillout']))
	$error = 1;
	
	elseif(preg_match("#^[0-9]+$#", $_POST['column_number']) != true)
	$error = 2;
	
	if(empty($error))
	{
		update_cache_map($_POST);
		redirect('template.php?act=4&succes=1&menu=25');
	}
} else if($act == 4) {
	require_once(__DIR__.'/../includes/cache/cache_lang.php');
	foreach($cache_lang as $lang) {
		if($lang['code_lang'] == $_SESSION['lang']) {
			require_once(__DIR__.'/../includes/language/'.$lang['name_lang'].'.php');
			break;
		}
	}
}

///////////////////////////////////
//Update CSS Template
//////////////////////////////////  

if($act == 5)
{
	$edition = file_get_contents('../template/css/design.css');
	
	if(isset($_POST['css'])) 
	{
		file_put_contents('../template/css/design.css', $_POST['css']);
		
		if(function_exists('opcache_invalidate'))
		opcache_invalidate('../template/css/design.css');
		
		redirect('template.php?act=5&succes=1&menu=25');
	}
}

///////////////////////////////////
//Close database connexion
//////////////////////////////////

$conn = null;

///////////////////////////////////
//Display view
//////////////////////////////////

$view = array();

if($act == 1 || $act == 2) 
$view[] = 'template_adm/tpl_template_theme_adm.php';

elseif($act == 3) 
$view[] = 'template_adm/tpl_template_img_adm.php';

elseif($act == 4)
$view[] = 'template_adm/tpl_template_css_map_adm.php';

else $view[] = 'template_adm/tpl_template_css_adm.php';

require_once __DIR__.'/template_adm/tpl_layout_adm.php';