<?
@session_start();
$base_path='../';
require_once('../connect/connect.php');
include_once('../lib/lib.php');
require('pdk.php');

$Action='field.php';

if($_REQUEST['id_catalog']) $id_catalog = intval($_REQUEST['id_catalog']);

if($_REQUEST['field_typ']) $field_typ=intval($_REQUEST['field_typ']); 

if($_GET['id_field']) 
	{
	$id_field=intval($_GET['id_field']);
	$r=mysql_query("SELECT * FROM field WHERE id_field='".$id_field."'");
	$rr=mysql_fetch_array($r);

	$id_catalog = $rr['id_catalog'];
	$field_typ = $rr['field_typ'];

	$field_admin = $rr['field_admin'];

	$field = $rr['field'];
	$field_no = $rr['field_no'];

	$field_tab = $rr['field_tab'];

	$field_search = $rr['field_search'];

	$field_search_typ = $rr['field_search_typ'];

	$field_form = $rr['field_form'];

	$field_error = $rr['field_error'];

	$field_spisok = $rr['field_spisok'];

	$field_sel_check = $rr['field_sel_check'];

	$field_format = $rr['field_format'];
	$field_znak = $rr['field_znak'];

	$field_d_1 = $rr['field_d_1'];
	$field_d_2 = $rr['field_d_2'];
	$field_intval_spis = str_replace(",","\n",$rr['field_intval_spis']);
	
	$field_suff = $rr['field_suff'];
	
	$field_min = $rr['field_min'];
	$field_max = $rr['field_max'];
	$field_min_max_err = $rr['field_min_max_err'];
	
	$field_zag = $rr['field_zag'];
	$field_zag_pref = $rr['field_zag_pref'];
	$field_zag_suff = $rr['field_zag_suff'];
	
	}

if($id_catalog) 
	{
	$r_catalog=mysql_query("SELECT * FROM catalog WHERE id_catalog='".$id_catalog."'");
	$rr_catalog=mysql_fetch_array($r_catalog);

	if(file_exists('../plugin/board/field_typ.php')) 
	include_once('../plugin/board/field_typ.php');
	else exit();
	}


if($_POST['add_fld'])
	{
	$zapr="ALTER TABLE board ADD ".$_POST['field_new']." 
	".$arr_typ_field[$_POST['field_typ']][2]." AFTER ".$_POST['field_after'];
	if(mysql_query($zapr))
		{
		if($arr_typ_field[$_POST['field_typ']][7]==1)
		mysql_query("ALTER TABLE ".$database.".board ADD INDEX ( ".$_POST['field_new']." )"); 
		mysql_query("OPTIMIZE TABLE board");
		}
	}

if ($_POST["hiddel"] && $_POST["id_field"]) 
	{ 
	if($_POST["del"])
		{
		mysql_query ("DELETE FROM field WHERE id_field='".$_POST["id_field"]."'") or die(mysql_error());
		
		$cou_f=mysql_query("SELECT COUNT(id_field) as cou FROM field WHERE id_catalog='".$id_catalog."'");
		$r_cou_f=mysql_fetch_array($cou_f);
		mysql_query("UPDATE catalog SET count_field='".intval($r_cou_f[0])."' WHERE id_catalog='".$id_catalog."'");
		}

	include_once('_svod_catalog.php');
	echo "<HTML><HEAD><meta http-equiv='Refresh' charset='utf-8' content='0; URL=catalog.php?id_catalog=".$id_catalog."'></HEAD></HTML>";
	exit();
	}

if ($_POST["edit"] || $_POST['add']) 
	{
	$id_field=$_POST['id_field'];
	$field_admin = htmlspecialchars(trim($_POST['field_admin']));
	if(!$field_admin) $err .='Укажите поле<br>';

	$field = htmlspecialchars(trim($_POST['field']));
	if($_POST['field_no']) $field_no=1; else $field_no=0;
	
	$field_tab = htmlspecialchars(trim($_POST['field_tab']));

	$field_search = htmlspecialchars(trim($_POST['field_search']));
	if(isset($_POST['field_search_typ']))
		{
		$field_search_typ = $_POST['field_search_typ'];
		if(!$field_search_typ)
		$err .= 'Не указан тип поиска<br>';
		}
	
	$field_form = htmlspecialchars(trim($_POST['field_form']));

	$field_error = htmlspecialchars(trim($_POST['field_error']));

	$field_suff = htmlspecialchars(trim($_POST['field_suff']));
	
	$field_min_max_err = htmlspecialchars(trim($_POST['field_min_max_err']));
	$field_min = intval($_POST['field_min']);
	$field_max = intval($_POST['field_max']);
	
	$field_spisok = intval($_POST['field_spisok']);
	if(($field_typ==5 || $field_typ==6 || $field_typ==7) && !$field_spisok) $err .= 'Укажите список<br>';
	
	$field_sel_check = intval($_POST['field_sel_check']);

	$field_format = intval(trim($_POST['field_format']));
	$field_znak = intval(trim($_POST['field_znak']));

	$field_d_1 = intval(trim($_POST['field_d_1']));
	$field_d_2 = intval(trim($_POST['field_d_2']));
	
	$field_intval_spis = '';
	
	if($field_typ != 32)
		{
		$arr_intval = explode("\n", trim($_POST['field_intval_spis']));
		if($arr_intval)
			{
			foreach ($arr_intval as $arr_int)
				{
				if(floatval(trim($arr_int)))
					{
					if(!$int || ($int && !in_array(floatval(trim($arr_int)), $int)))
					$int[]=floatval(trim($arr_int));
					}
				}
			if($int)
				{
				sort($int);
				$field_intval_spis = implode(",",$int);
				}
			}
		}
	elseif($field_typ == 32)
		{
		$arr_intval = explode("\n", $_POST['field_intval_spis']);
		if($arr_intval)
			{
			foreach ($arr_intval as $arr_int)
				{
				if(trim($arr_int) && (strpos($arr_int, ">")!==false || strpos($arr_int, "<")!==false || strpos($arr_int, "-")!==false))
					{
					$int[]=trim($arr_int);
					}
				}
			if($int)
				{
				$field_intval_spis = implode(",",$int);
				}
			}
		}
		
		
	$field_intval_spis = trim ($field_intval_spis);
	
	//if(isset($_POST['field_intval_spis']) && !$field_intval_spis) $err .= "Не указан ни один элемент списка, либо указаны только нулевые значения";

	$field_field = $_POST['field_field'];
	$field_field_two = $_POST['field_field_two'];
	
	if($_POST['field_zag']) $field_zag=1; else $field_zag=0;
	$field_zag_pref = htmlspecialchars($_POST['field_zag_pref']);
	$field_zag_suff = htmlspecialchars($_POST['field_zag_suff']);
	}


if($_POST["edit"] && $_POST["id_field"])
	{
	if(!$err)
		{
		mysql_query("UPDATE field SET 
		field_admin='".$field_admin."', 
		field='".$field."', 
		field_no='".$field_no."', 
		field_tab='".$field_tab."', 
		field_search='".$field_search."', 
		field_search_typ='".$field_search_typ."', 
		field_form='".$field_form."', 
		field_error='".$field_error."', 
		field_spisok='".$field_spisok."', 
		field_sel_check = '".$field_sel_check."',
		field_format='".$field_format."', 
		field_znak='".$field_znak."', 
		field_d_1='".$field_d_1."', 
		field_d_2='".$field_d_2."',
		field_intval_spis='".$field_intval_spis."',
		field_suff='".$field_suff."',
		field_min='".$field_min."',
		field_max='".$field_max."',
		field_min_max_err='".$field_min_max_err."',
		field_zag='".$field_zag."',
		field_zag_pref='".$field_zag_pref."',
		field_zag_suff='".$field_zag_suff."'
		
		WHERE id_field='".$id_field."'");
	
		include_once('_svod_catalog.php');
		echo "<HTML><HEAD><meta http-equiv='Refresh' charset='utf-8' content='0; URL=catalog.php?id_catalog=".$id_catalog."'></HEAD></HTML>";
		exit();
		}
	}

if ($_POST["add"] && $_POST["id_catalog"]) 
	{ 
	if(!$id_catalog) $err .='Не определен каталог<br>';

	if(!$err)
		{
		$spec=$arr_typ_field[$field_typ][5];
		$field_tp=$arr_typ_field[$field_typ][3];

		$rm=mysql_query("SELECT field_num FROM field WHERE id_catalog='".$id_catalog."' ORDER BY field_num DESC LIMIT 1");
		$rrm=mysql_fetch_array($rm);
		$num=$rrm['field_num']+1;
	
		mysql_query("INSERT INTO field (
		field_admin,
		field, 
		field_no,
		field_tab,
		field_search, 
		field_search_typ, 
		field_form, 
		field_error, 
		field_spisok, 
		field_sel_check,
	
		field_format,
		field_znak,
		field_d_1, 
		field_d_2, 
		field_intval_spis,
		
		id_catalog,
		field_typ, 
		field_tp, 
		field_num,
		field_field,
		field_field_two,
		spec,
		field_suff,
		field_min,
		field_max,
		field_min_max_err,
		field_zag,
		field_zag_pref,
		field_zag_suff
		) VALUES (
		'".$field_admin."', 
		'".$field."', 
		'".$field_no."', 
		'".$field_tab."', 
		'".$field_search."', 
		'".$field_search_typ."', 
		'".$field_form."', 
		'".$field_error."', 
		'".$field_spisok."', 
		'".$field_sel_check."',
	
		'".$field_format."', 
		'".$field_znak."', 
		'".$field_d_1."', 
		'".$field_d_2."',
		'".$field_intval_spis."',
	
		'".$id_catalog."',
		'".$field_typ."',
		'".$field_tp."',
		'".$num."',
		'".$field_field."',
		'".$field_field_two."',
		'".$spec."',
		'".$field_suff."',
		'".$field_min."',
		'".$field_max."',
		'".$field_min_max_err."',
		'".$field_zag."',
		'".$field_zag_pref."',
		'".$field_zag_suff."'
		)");
	
		$cou_f=mysql_query("SELECT COUNT(id_field) as cou FROM field WHERE id_catalog='".$id_catalog."'");
		$r_cou_f=mysql_fetch_array($cou_f);
		mysql_query("UPDATE catalog SET count_field='".intval($r_cou_f[0])."' WHERE id_catalog='".$id_catalog."'");
	
		include_once('_svod_catalog.php');
		echo "<HTML><HEAD><meta http-equiv='Refresh' charset='utf-8' content='0; URL=catalog.php?id_catalog=".$id_catalog."'></HEAD></HTML>";
		exit();
		}
	}

if($rr['field'])
$titl="Редактирование поля: ".$rr['field'];
else
$titl="Добавления поля";

require ('top.php'); 


if($_REQUEST['add'])
	{
	echo '<h3>СПРАВКА</h3>';

	$list_f = mysql_list_fields ($database, 'board');
	$n = mysql_num_fields($list_f);

	for($i=0; $i<$n; $i++)
		{
		$a = mysql_field_name($list_f, $i);
		$b = explode($arr_typ_field[$field_typ][3], $a);
		if(count($b)>1)
			{
			$arr_field[] = $a;
			$arr_num[] = $b[1];
			}
		}

	if($arr_num) 
		{
		$max=max($arr_num); 
		$field_after = $arr_typ_field[$field_typ][3].$max;
		$field_new = $arr_typ_field[$field_typ][3].($max+1);
		}
	else 
		{
		$field_after = 'id_catalog';
		if($arr_typ_field[$field_typ][5]=='sp' || $arr_typ_field[$field_typ][5]=='dp')
		$field_new = $arr_typ_field[$field_typ][3];
		else
		$field_new = $arr_typ_field[$field_typ][3].'1';
		}
	
	echo 'Доступные поля для типа <font color='.$arr_typ_field[$field_typ][1].'>'.$arr_typ_field[$field_typ][0].'</font> в таблице '.$catalog_typ.': <br>';	

	if(!$arr_field) 
	echo '<font color=red>Нет доступных полей</font><br>';

	else
		{
		foreach($arr_field as $af)	
			{
			echo '<font color=green>'.$af."</font><br>";
			}


		echo 'Занятые поля для данного типа в текущем каталоге: <br>';	

		$q="SELECT * FROM field WHERE (field_field  REGEXP '[[:<:]]".$arr_typ_field[$field_typ][3]."' OR field_field_two  REGEXP '[[:<:]]".$arr_typ_field[$field_typ][3]."') AND id_catalog='".$id_catalog."'";
		$r1=mysql_query($q);


		while ($rr1=mysql_fetch_array($r1))
			{
			if($rr1['field_field'])
			$arr_tab[] = $rr1['field_field'];
			if($rr1['field_field_two'])
			$arr_tab[] = $rr1['field_field_two'];
			}

		if($arr_tab)
			{
			foreach($arr_tab as $at)	
				{
				echo '<font color=green>'.$at.'</font><br>';
				}
			if($arr_field && $arr_typ_field[$field_typ][5]=='sp') 
			exit ('Поле типа <font color='.$arr_typ_field[$field_typ][1].'>'.$arr_typ_field[$field_typ][0].'</font> можно добалять в единственном экземпляре и это поле уже занято');
			}
		else echo '<font color=green>Нет занятых полей</font><br>';


		if($arr_tab)
		$new = array_diff($arr_field, $arr_tab);
		else
		$new = $arr_field;

		if($new)
		$count_new=count($new);
		else $count_new=0;

		echo 'Свободные поля для данного типа в текущем каталоге: <br>';	
		if($new)
			{
			foreach($new as $an)	
				{
				$new_n[]=$an;
				echo '<font color=green>'.$an.'</font><br>';
				}
			} 
		else
		echo '<font color=green>Нет свободных полей</font><br>';	
		}

		if($arr_typ_field[$field_typ][4]==2 && $count_new<$arr_typ_field[$field_typ][4])
		echo 'Для данного типа <font color='.$arr_typ_field[$field_typ][1].'>'.$arr_typ_field[$field_typ][0].'</font> необходимо наличие 2 свободных полей<br>';	

		if($count_new<$arr_typ_field[$field_typ][4])
			{
			echo 'Резюме: <font color=red>Не хватает полей</font><br>';	
			?>
			<form name="add_field_tabl" method="post">
			<input name="add" type="hidden" value="1">
			<input name="id_catalog" type="hidden" value="<? echo $id_catalog; ?>">
			<input name="field_typ" type="hidden" value="<? echo $field_typ; ?>">
			<input name="catalog_typ" type="hidden" value="<? echo $catalog_typ; ?>">
			<input name="field_new" type="hidden" value="<?=$field_new?>">
			<input name="field_after" type="hidden" value="<?=$field_after?>">
			<input class="submit"  type="submit" name="add_fld" value="Добавить поле в таблицу <?=$catalog_typ?>">
			</form>
			<?
			exit();
			}
		else
			{
			$field_field=$new_n[0];
			if($arr_typ_field[$field_typ][4]==2)
			$field_field_two=$new_n[1];
			else
			$field_field_two='';
			}
		echo '<br><br>';
		} 

		if($err) echo '<p><font color=red>'.$err.'</font></p>';


		if ($_REQUEST['edit'] || $_REQUEST['add'])
			{
			?>
			<form action="<? echo $Action; ?>" method="post" name="form_edit" >
			<input name="id_field" type="hidden" value="<? echo $id_field; ?>">
			<input name="id_catalog" type="hidden" value="<? echo $id_catalog; ?>">
			<input name="field_typ" type="hidden" value="<? echo $field_typ; ?>">
	
			<input name="field_field" type="hidden" value="<? echo $field_field; ?>">
			<input name="field_field_two" type="hidden" value="<? echo $field_field_two; ?>">
	
			<fieldset>
			<legend>Название административное</legend>
			<input name="field_admin" type="text" value="<? echo $field_admin; ?>" size="40">
			</fieldset>
	
			<br>
			<fieldset>
			<legend>Название для индивидуальной страницы</legend>
			<font color=green>(если оставить это окно пустым, то на индивидуальной странице поле не будет выводиться)</font>
			<br>
			<input name="field" type="text" value="<? echo $field; ?>" size="40">
			<br>
			<input name="field_no" type="checkbox" value="1" <? if($field_no) echo 'checked'; ?> >
			Не выводить название поля на индивидуальной странице
			</fieldset>
	
			<br>
			<fieldset>
			<legend>Название для табличного вывода</legend>
			<font color=green>(если оставить это окно пустым, то в таблице поле не будет выводиться)</font>
			<br>
			<input name="field_tab" type="text" value="<? echo $field_tab; ?>" size="40">
			</fieldset>
	
			<br>
			<fieldset>
			<legend>Название для формы добавления</legend>
			<input name="field_form" type="text" value="<? echo $field_form; ?>" size="40">
			</fieldset>
	
			<br>
			<fieldset>
			<legend>Сообщение об ошибке добавления</legend>
			<font color=green>(если оставить это окно пустым, то поле будет НЕобязательным для заполнения)</font>
			<br>
			<input name="field_error" type="text" value="<? echo $field_error; ?>" size="40">
			</fieldset>
	
			<br>
			<fieldset>
			<legend>Название для формы поиска</legend>
			<font color=green>(если оставить это окно пустым, то в поиске поле не будет участвовать)</font>
			<br>
			<input name="field_search" type="text" value="<? echo $field_search; ?>" size="40">
			</fieldset>
			
			<br>
			<fieldset>
			<legend>Настройка автозаголовка объявления</legend>
			<font color=green>(если галочка не включена, то поле не будет участвовать в формировании автозаголовка)</font>
			<br>
			<input name="field_zag" type="checkbox" value="1" <? if($field_zag) echo 'checked'; ?> >
			<br>
			Префикс
			<input name="field_zag_pref" type="text" value="<? echo $field_zag_pref; ?>" size="20">
			Суффикс
			<input name="field_zag_suff" type="text" value="<? echo $field_zag_suff; ?>" size="20">
			
			</fieldset>
			
	
			<? include_once('../plugin/board/field_'.$field_typ.'.php');?>
	
			<br>
			<? 
			if($_REQUEST['add']) 
				{ 
				?>
				<input class="submit"  type="submit" name="add" value="Добавить">
				<? 
				} 
			else 
				{
				?>
				<input class="submit"  type="submit" name="edit" value="Изменить">
				<? 
				} 
			?>
			</form>
			<?
			}


		if($_GET['pdt'] && $id_field)
			{
			echo '<table width=250 bordercolor=red border=1 cellSpacing=0 cellPadding=5><tr><td>
			<p>Вы действительно хотите удалить поле <b>'.$field.'</b> ?</p>';
			?>
			<form action="<? echo $Action; ?>" method="post" name="form_del" >
 			 <input name="id_field" type="hidden" value="<?=$id_field?>">
 			 <input name="id_catalog" type="hidden" value="<?=$id_catalog?>">
 			 <input class="submit" type="submit" name="del" value="ДА">
 			 <input class="submit" type="submit" name="not" value="НЕТ">
 			 <input type="hidden" name="hiddel" value="1">
			</form>
			<?
			echo '</td></tr></table>';
			}


require ('bottom.php'); 
?>