<?php
/* Обновление данных на карте
*/
function karta($p)
{
list($abs1, $s2) = explode("pages",getcwd( ));
if (isset($_REQUEST['p2']))   //  год
{$p2=trim($_REQUEST['p2']);
echo "<h3 style='text-align:center'>Данные из архива год ".$p2." на карту.</h3>"; 
$p2="/".$p2;
$p222=trim($_REQUEST['p2']);
}
else
{$p2="/Na~chalo";
$p222="";
echo "<h3 style='text-align:center'>Данные текущего года на карту.</h3>"; 
}
$iob=1;               // индекс обозначения в строке заголовков 
$isz=3;               // индекс строки заголовков в файле свойств  
$os="";
//--------
//объекты
//--------
$names="объект,индекс,top,left";
$otkuda=$abs1.'sampl/baza1/1s/1-4.txt';
$свойства = file($abs1."pages/100/contents/02,10,17_001/1s/0.txt");    // читаем файл свойств
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));           // строку заголовков+свойства на столбцы
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);                    // столбец на параметры 0 текст заголовка 1- обозначение
$объекты_поля100[$mms2[$iob]]=$i;                // установим  соответствие обозначение номер столбца   
}
$mnames=explode(",",$names);                     // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $объекты_поля100))  
{$os=$os. "<br>В таблице 'Объекты' в 100 нет обозначения ".$mnames[$i]."<br>";
}
}
//-------------
// объекты сын
//-------------
$names="coords";
$свойства = file($abs1."pages/100/contents/02,10,17_001/2s/0.txt");    // читаем файл свойств
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));           // строку заголовков+свойства на столбцы
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);                    // столбец на параметры 0 текст заголовка 1- обозначение
$объекты_сын_поля100[$mms2[$iob]]=$i;            // установим  соответствие обозначение номер столбца   
}
$mnames=explode(",",$names);                     // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $объекты_сын_поля100))  
{$os=$os. "<br>В таблице 'Объекты' сын в 100 нет обозначения ".$mnames[$i]."<br>";
}
}


//--------------------
// Уровни от АВТОМАТА
//--------------------
$names="индекс,наименование"; 
$свойства = file($abs1."pages/".$p2."/contents/16,08,18_007/1s/0.txt");
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$уровни_автомат_поля[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                 // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $уровни_автомат_поля))  
{$os=$os. "<br>В таблице 'Уровни автомат' нет обозначения ".$mnames[$i]."<br>";
}
}
//------------------------
// Уровни СЫН от АВТОМАТА
//------------------------
$names="дата,уровни"; 
$свойства = file($abs1."pages/".$p2."/contents/16,08,18_007/2s/0.txt");
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$уровни_автомат_сын_поля[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                         // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $уровни_автомат_сын_поля))  
{$os=$os. "<br>В таблице 'Уровни автомат сын' нет обозначения ".$mnames[$i]."<br>";
}
}
//---------------------
// Уровни от телеграмм
//---------------------
$names="индекс,наименование,от,до,точек_р"; 
$свойства = file($abs1."pages/".$p2."/contents/10,08,16_001/1s/0.txt");

$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$уровни_поля[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                          // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $уровни_поля))  
{$os=$os. "<br>В таблице 'Уровни' нет обозначения ".$mnames[$i]."<br>";
}
}
//------------------------
// Уровни СЫН от телеграмм
//------------------------
$names="дата,час,уровень,изменение,тренд_код,тренд_значение,20_час,ошибки";
$свойства = file($abs1."pages/".$p2."/contents/10,08,16_001/2s/0.txt");
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$уровни_сын_поля[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                 // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $уровни_сын_поля))  
{$os=$os. "В таблице 'Уровни' сын нет обозначения ".$mnames[$i]."<br>";
}
}
//------------
// посты
//------------
$names="индекс,пост,объект,судоход,пойма,неблаго,опасно,замер";
$свойства = file($abs1."pages/100/contents/02,11,17_002/1s/0.txt");
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$посты_поля100[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                 // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $посты_поля100))  
{$os=$os. "В таблице 'Посты' в 100 нет обозначения ".$mnames[$i]."<br>";
}
}
//-----------
// посты сын
//-----------
$names="граф,выход,нач,кон,max,min,место"; 
$свойства = file($abs1."pages/100/contents/02,11,17_002/2s/0.txt");
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$посты_сын_поля100[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                 // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $посты_сын_поля100))  
{$os=$os. "В таблице 'Посты' сын в 100 нет обозначения ".$mnames[$i]."<br>";
}
}
//-------
//гэс
//-------
$names="индвб,поствб"; 
$свойства = file($abs1."pages/100/contents/12,07,18_003/1s/0.txt");
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$гэс_поля100[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                 // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $гэс_поля100))  
{$os=$os. "В таблице 'ГЭС' в 100 нет обозначения ".$mnames[$i]."<br>";
}
}
//--------
//гэс сын
//--------
$names="нпу,умо,граф,выход,место"; 
$свойства = file($abs1."pages/100/contents/12,07,18_003/2s/0.txt");
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$гэс_сын_поля100[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                 // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $гэс_сын_поля100))  
{$os=$os. "В таблице 'ГЭС' сын в 100 нет обозначения ".$mnames[$i]."<br>";
}
}





//---------------------
// Уровни от гэс от телеграмм
//---------------------

$names="индекс,наименование,от,до,точек_гэс,ошибки"; 
$свойства = file($abs1."pages/".$p2."/contents/11,08,16_004/1s/0.txt");
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$уровни_гэс_поля[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                          // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $уровни_гэс_поля))  
{$os=$os. "В таблице 'гэс' нет обозначения ".$mnames[$i]."<br>";
}
}
//------------------------
// Уровни гэс СЫН от телеграмм
//------------------------
$names="дата,час,1HHHвб,ошибки";
$свойства = file($abs1."pages/".$p2."/contents/11,08,16_004/2s/0.txt");
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$уровни_гэс_сын_поля[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                 // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $уровни_гэс_сын_поля))  
{$os=$os. "В таблице 'гэс' сын нет обозначения ".$mnames[$i]."<br>";
}
}


//--------------------
// Уровни гэс от АВТОМАТА
//--------------------
$names="индекс,наименование"; 
$свойства = file($abs1."pages/".$p2."/contents/18,09,18_008/1s/0.txt");
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$уровни_автомат_гэс_поля[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                 // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $уровни_автомат_гэс_поля))  
{$os=$os. "В таблице 'Уровни автомат гэс' нет обозначения ".$mnames[$i]."<br>";
}
}
//------------------------
// Уровни гэс СЫН от АВТОМАТА
//------------------------
$names="дата,уровни"; 
$свойства = file($abs1."pages/".$p2."/contents/18,09,18_008/2s/0.txt");
$mms=explode("```",str_replace("\r\n","",$свойства[$isz]));
for ($i = 0; $i <= count($mms)-1; $i++)                                  
{$mms2=explode("/",$mms[$i]);
$уровни_автомат_гэс_сын_поля[$mms2[$iob]]=$i;
}
$mnames=explode(",",$names);                         // проверка наличия необходимых обозначении и т д
for ($i = 0; $i <= count($mnames)-1; $i++)                                  
{if (!array_key_exists ($mnames[$i], $уровни_автомат_гэс_сын_поля))  
{$os=$os. "В таблице 'Уровни автомат гэс сын' нет обозначения ".$mnames[$i]."<br>";
}
}

if ($os!="")
{echo $os;
echo "<h2>Обновление не завершено !</h2>";
return;
}
//********************
// места вставки
//********************
$inreki='<!--AREA-->';       // всплывающие рек
$inreki2='<!--EM-->';        // подписи рек
$inpunkt='<!--INPUT-->';     // поля пунктов
$inkrg='<!--КРГ-->';         // поля пунктов в красноярском прямоугольнике
$inssg='<!--СШГ-->';         // поля пунктов в саяно-шушенском прямоугольнике
$fkart=$abs1."/outside/kartas.html";
if  (file_exists($fkart))                                  // если есть шаблон
{
//*****************************************
// сформируем объекты: реки озера вдхр
//*****************************************
$area='';
$em='';
//file($abs1."pages/".$p2."/contents/18,09,18_008/2s/0.txt");
$ti=$abs1."pages/100/contents/02,10,17_001/1.txt";                 // объекты
$mti = file($ti); 	                                                // таблицу в массив
for ($i = 0; $i <= count($mti)-1; $i++) 
{$tiz=explode("```",str_replace("\r\n","",$mti[$i]));
if ($tiz[$объекты_поля100['top']]!="" and $tiz[$объекты_поля100['left']]!="")    // если введены координаты
{
$em=$em."<EM id=".$tiz[$объекты_поля100['индекс']]." style='top:".$tiz[$объекты_поля100['top']].
";left:".$tiz[$объекты_поля100['left']]."'>".str_replace(" ","&nbsp;",$tiz[$объекты_поля100['объект']])."</EM>"."\r\n";
}
$ti2=$abs1."pages/100/contents/02,10,17_001/".$tiz[0]."/1.txt";              // пункты  индексы  
if  (file_exists($ti2))                                // если есть данные (есть папка)
{$mti2 = file($ti2); 	                              // таблицу в массив
for ($i2 = 0; $i2 <= count($mti2)-1; $i2++) 
{
$tiz2=explode("```",str_replace("\r\n","",$mti2[$i2]));
$area=$area."<AREA title='".$tiz[1]."' nohref shape=poly coords=".str_replace(" ","", $tiz2[$объекты_сын_поля100['coords']]).">"."\r\n";  // coords
}}}
// сформируем асс массив ключ=индекс поста, значение=имя папки с уровнями ИЗ ТЕЛЕГРАММ
$ti3=$abs1."pages/".$p2."/contents/10,08,16_001/1.txt";                          // посты  уровни
$mti3 = file($ti3); 	                                  // таблицу в массив
$mtiz3=array();  
for ($i3 = 0; $i3 <= count($mti3)-1; $i3++) 
{$tiz3=explode("```",str_replace("\r\n","",$mti3[$i3]));
$mtiz3[$tiz3[$уровни_поля['индекс']]]=$tiz3[0];
}
// сформируем асс массив ключ=индекс поста, значение=имя папки с уровнями ОТ АВТОМАТА
$ti33=$abs1."pages/".$p2."/contents/16,08,18_007/1.txt";                         // посты  уровни АВТОМАТА
$mti33 = file($ti33); 	                              // таблицу в массив
$mtiz33=array();  
for ($i33 = 0; $i33 <= count($mti33)-1; $i33++) 
{$tiz33=explode("```",str_replace("\r\n","",$mti33[$i33]));
$mtiz33[$tiz33[$уровни_автомат_поля['индекс']]]=$tiz33[0];
}

// сформируем асс массив ключ=индекс поста, значение=имя папки с уровнями ГЭС ИЗ ТЕЛЕГРАММ
$ti3g=$abs1."pages/".$p2."/contents/11,08,16_004/1.txt";                         // ГЭС  уровни
$mti3g = file($ti3g); 	                              // таблицу в массив
$mtiz3g=array();  
for ($i3 = 0; $i3 <= count($mti3g)-1; $i3++) 
{$tiz3g=explode("```",str_replace("\r\n","",$mti3g[$i3]));
$mtiz3g[$tiz3g[$уровни_гэс_поля['индекс']]]=$tiz3g[0];
}
// сформируем асс массив ключ=индекс поста, значение=имя папки с уровнями ГЭС ОТ АВТОМАТА
$ti33g=$abs1."pages/".$p2."/contents/18,09,18_008/1.txt";                       // ГЭС  уровни АВТОМАТА
$mti33g = file($ti33g); 	                             // таблицу в массив
$mtiz33g=array();  
for ($i33 = 0; $i33 <= count($mti33g)-1; $i33++) 
{$tiz33g=explode("```",str_replace("\r\n","",$mti33g[$i33]));
$mtiz33g[$tiz33g[$уровни_автомат_гэс_поля['индекс']]]=$tiz33g[0];
}
if ($os!="")
{echo $os;
return;
}

//************************************************
// вывод постов и текущих данных по ним на карту
//*************************************************
$punkt='';         // посты ВСЕ
$punktkrg='';      // посты красноярского треугольника
$punktssg='';      // посты саянского треугольника
$punkt=$punkt."<div id=bc>";
$punktkrg=$punktkrg."<div id=kp>";
$punktssg=$punktssg."<div id=sp>";
// на карте показываем только те посты которые есть в таблицах "Уровни" и "Уровни автомат"
$point='';                                                           // количество выводимых точек на графике 
$ti=$abs1."pages/100/contents/02,11,17_002/1.txt";                              // посты
$mti = file($ti); 	                                     // таблицу в массив
for ($i = 0; $i <= count($mti)-1; $i++)                                // по всем постам
//for ($i = 21; $i <= 23; $i++)                                        // по всем постам
{
//echo $mti[$i]."<br>";
$tiz=explode("```",str_replace("\r\n","",$mti[$i]));
if (!array_key_exists ($tiz[$посты_поля100['индекс']], $mtiz3)
 and !array_key_exists ($tiz[$посты_поля100['индекс']], $mtiz33))    // если это пост не в списках
{continue;}                                                          // пропустим его
//*******************************************************************
// сформируем пустые теги по текущему посту
// $mti3-массив строк от телеграмм $mti33- массив строк от автомата
// по индексу найдем номер по номеру индекс по индексу номер по п
//*******************************************************************
$ti2=$abs1."pages/100/contents/02,11,17_002/".$tiz[0]."/1.txt";                     // html постов
if  (file_exists($ti2))                                       // если есть данные (есть папка)
{$mti2 = file($ti2); 	                                        // таблицу в массив
for ($i2 = 0; $i2 <= count($mti2)-1; $i2++)                             // для каждой html
{$tiz2=explode("```",str_replace("\r\n","",$mti2[$i2]));
if ($tiz2[$посты_сын_поля100['input']]!="")
{if (array_key_exists ($tiz[$уровни_поля['индекс']], $mtiz33))         // если это пост не в списке уровней от телеграмм
{$input="<INPUT title='".$tiz[$посты_поля100['пост']].";".$tiz[$уровни_поля['индекс']].";".$tiz[$посты_поля100['объект']]."' style='".$tiz2[$посты_сын_поля100['input']]."' CHECKED type=checkbox>"."\r\n";
}
else
{$input="<INPUT title='".$tiz[$посты_поля100['пост']].";".$tiz[$уровни_поля['индекс']]."; ".$tiz[$посты_поля100['объект']]."' style='".$tiz2[$посты_сын_поля100['input']]."' CHECKED type=radio>"."\r\n";
}
}
if ($tiz2[$посты_сын_поля100['b']]!="")
{$b="<b  style='".$tiz2[$посты_сын_поля100['b']]."'>".$tiz[$посты_поля100['пост']]."</b>\r\n";
}
else
{$b="";}

if ($tiz2[$посты_сын_поля100['a']]!="")
{$a="<a id=".$tiz[$посты_поля100['индекс']]." title='".$tiz[$посты_поля100['пост']]."' href=# style='".
$tiz2[$посты_сын_поля100['a']]."'><i>d</i><i>n</i><i>t</i><i>a</i>???</a>";
}
//********************************************
//      МЕСТА РАЗМЕЩЕНИЯ ДАННЫХ В ТЕГЕ А:
// 1 <i>d</i> - опасные уровни: пойма;неблаго;опасно
// 2 <i>n</i> - навигация: уровень;от;до
// 3 <i>t</i> - уровни от телеграмм:  дата(час:мин=уровень{+-изменение уровня} час:мин=уровень{<-}итд)дата(<-) итд 
// 4 <i>a</i> - уровни от автоматов:  дата(час:мин=уровень час:мин=уровень итд)дата(<-) итд 
//*************************
//  ОПАСНЫЕ УРОВНИ
//*************************
if ($tiz[$посты_поля100['опасно']]!="" or $tiz[$посты_поля100['неблаго']]!="" or $tiz[$посты_поля100['пойма']]!="")
{$ou=$tiz[$посты_поля100['пойма']].";".$tiz[$посты_поля100['неблаго']].";".$tiz[$посты_поля100['опасно']];
}
$a=str_replace(">d<",">".$ou."<",$a);

//****************************
//  НАВИГАЦИЯ
//***************************
$su="";
//уровень судоходства
if ($tiz[$посты_поля100['судоход']]!="")
{$su=$tiz[$посты_поля100['судоход']].";";}
else
{$su=";";}
// интервалы судоходства
if ($tiz[$посты_поля100['от']]!="" and $tiz[$посты_поля100['до']]!="" )
{$su=$su.$tiz[$посты_поля100['от']].";".$tiz[$посты_поля100['до']];
$a=str_replace(">n<",">".$su."<",$a);
}
//*************************************************************
//   ФОРМИРУЕМ ДАННЫЕ ИЗ ТЕЛЕГРАММ ПО ТЕКУЩЕМУ ПОСТУ ДЛЯ КАРТЫ
//*************************************************************
$pur="";                                                                 // последний уровень
$tur="";
if (array_key_exists ($tiz[$уровни_автомат_поля['индекс']], $mtiz3))     // если это пост в списке уровней от автоматов
{$strup=$mti3[$mtiz3[$tiz[$уровни_поля['индекс']]]-1];                    // строка уровней
$mstrup=explode("```",str_replace("\r\n","",$strup));
$point=$mstrup[$уровни_поля['точек_р']];                                 // количество выводимых точек 
       // имя файла с уровнями
$fu=str_replace("1.txt",$mtiz3[$tiz[$посты_поля100['индекс']]]."/1.txt",$ti3);
if  (file_exists($fu) and count($fu)>0)                                   // файл существует и не пустой
{$mti5 = file($fu); 	                                                  // таблицу уровней в массив
// если заданы даты определим от и до как порядковые номера
$ot=-1;  // от не найдена как N
$do=-1;  // до не найдена как N
if ($mstrup[$уровни_поля['от']]!="" and $mstrup[$уровни_поля['до']]!="")
{$dot=$mstrup[$уровни_поля['от']];
$ddo=$mstrup[$уровни_поля['до']];
for ($i5 = 0; $i5 <= count($mti5)-1; $i5++) 
{if (strpos($mti5[$i5], $dot))
{$ot=$i5;}
if (strpos($mti5[$i5], $ddo))
{$do=$i5;}
}
if ($ot==-1 or $do==-1 or ($ot>$do))
{echo "<br>".$tiz[$уровни_поля['индекс']]." ".$tiz[$уровни_поля['индекс']+1].", ".$dot."-".$ddo."  'от' и 'до' не определяется ! График построем по 'Точек'".$ot."-".$do;
}
}

if ($ot==-1 or $do==-1)
{$nur=1;
if ($point>=count($mti5))
{$ot=0;}
else
{$ot=count($mti5)-$point;
}
$do=count($mti5)-1;
}

//*******************************************
// в асс массив текущие уровни
//******************************************
$ddat=array();  
for ($i5 = $ot; $i5 <= $do; $i5++) 
{
$mtiz5=explode("```",str_replace("\r\n","",$mti5[$i5]));
if ($mtiz5[$уровни_сын_поля['тренд_код']]==1)
{$ukp="+";}
else if ($mtiz5[$уровни_сын_поля['тренд_код']]==2)
{$ukp="-";}
else
{$ukp="";
}
$zur=ltrim($mtiz5[$уровни_сын_поля['уровень']],'0');
list($d, $m,$g) = explode(".",$mtiz5[$уровни_сын_поля['дата']]); 
if ($mtiz5[$уровни_сын_поля['тренд_код']]==0)
{$ddat[$g.$m.$d]=$tur.$mtiz5[$уровни_сын_поля['дата']]."(".$mtiz5[$уровни_сын_поля['час']].":00=".$zur.$ukp.")";
}
else
{$ddat[$g.$m.$d]=$tur.$mtiz5[$уровни_сын_поля['дата']]."(".$mtiz5[$уровни_сын_поля['час']].":00=".$zur.$ukp.$mtiz5[$уровни_сын_поля['изменение']].")";
}
$pur=$zur;
}

//*******************************************
// в асс массив предидущие уровни 20 час
//******************************************
for ($i5 = $ot; $i5 <= $do; $i5++) 
{$mtiz5=explode("```",str_replace("\r\n","",$mti5[$i5]));
$mmd=explode(".",$mtiz5[$уровни_сын_поля['дата']]);
$cur_date = date('Y-m-d', strtotime($mmd[2].$mmd[1].$mmd[0] ));
$date = new DateTime($cur_date);
$date->modify('-1 day');
$dat=$date->format('d.m.Y');
list($d, $m,$g) = explode(".",$dat);
$kL=$g.$m.$d;
if (array_key_exists ($kL, $ddat))       // если есть добавим
{$ms=$ddat[$kL];
$ddat[$kL]=str_replace(")", " 20:00=".$mtiz5[$уровни_сын_поля['20_час']].")",$ms);
}
else                                       // если нет пишем
{$ddat[$kL]=$dat."(20:00=".$mtiz5[$уровни_сын_поля['20_час']].")";
}}
ksort($ddat);                                    // отсортируем по ключу  (по времени N пп) тк возможны повторения
reset($ddat);                                    // на начало  
// ограничим количество точек 1 годом 
if (count($ddat)>366)
{$ot2=count($ddat)-366;}
else
{$ot2=0;}
for ($i5 = $ot2; $i5 <= count($ddat)-1; $i5++)       // индекс+год+мес+день+час
{$wss=current($ddat); 
$tur=$tur.$wss;
next($ddat);   
}}}
if ($tur=="")
{$a=str_replace(">t<","><",$a);
}
else
{$a=str_replace(">t<",">".$tur."<",$a);
}

//**********************************************************
//   ФОРМИРУЕМ ДАННЫЕ АВТОМАТА ПО ТЕКУЩЕМУ ПОСТУ ДЛЯ КАРТЫ
//**********************************************************
$fza="";
if (array_key_exists ($tiz[$уровни_автомат_поля['индекс']], $mtiz33))  // если это пост в списке уровней от автоматов
{$fu=str_replace("/1.txt","/".$mtiz33[$tiz[$уровни_автомат_поля['индекс']]]."/1.txt",$ti33);
if  (file_exists($fu) and count($fu)>0)                                   // файл существует и не пустой
{$mti5 = file($fu); 	                                                  // таблицу уровней в массив
$strup=$mti33[$mtiz33[$tiz[$уровни_автомат_поля['индекс']]]-1];           // строка уровней
$mstrup=explode("```",str_replace("\r\n","",$strup));
$point=$mstrup[$уровни_автомат_поля['точек_а']];                          // количество выводимых дней 
if (count($mti5)>0)
{$nur=1;
// если заданы даты определим от и до как порядковые номера
$ot=-1;  // от не найдена как N
$do=-1;  // до не найдена как N
if ($mstrup[$уровни_автомат_поля['от_а']]!="" and $mstrup[$уровни_автомат_поля['до_а']]!="")
{$dot=$mstrup[$уровни_автомат_поля['от_а']];
$ddo=$mstrup[$уровни_автомат_поля['до_а']];
for ($i5 = 0; $i5 <= count($mti5)-1; $i5++) 
{if (strpos($mti5[$i5], $dot))
{$ot=$i5;}
if (strpos($mti5[$i5], $ddo))
{$do=$i5;}
}
if ($ot==-1 or $do==-1 or ($ot>$do))
{echo "<br>Автомат ".$tiz[$уровни_автомат_поля['индекс']]." ".$tiz[$уровни_автомат_поля['индекс']+1].", ".$dot."-".$ddo." 'от' и 'до' не определяются ! График построем по 'Точек'".$ot."-".$do;
}
}
if ($ot==-1 or $do==-1)
{$nur=1;
if ($point>=count($mti5))
{$ot=0;}
else
{$ot=count($mti5)-$point;
}
$do=count($mti5)-1;
}


$kolt=0;
for ($i5 = $ot; $i5 <= $do; $i5++) 
{$mtiz5=explode("```",str_replace("\r\n","",$mti5[$i5]));
$fza=$fza.$mtiz5[$уровни_автомат_сын_поля['дата']]."(".$mtiz5[$уровни_автомат_сын_поля['уровни']].")";
$kolt=$kolt+count(explode(" ",$mtiz5[$уровни_автомат_сын_поля['уровни']]));
if ($kolt>432)
{echo $tiz[$уровни_автомат_поля['индекс']]." Количество точек принято =".$kolt."!<br>";
break;}
}}}
}
if ($fza=="")
{$a=str_replace(">a<","><",$a);}
else
{$a=str_replace(">a<",">".$fza."<",$a);
if ($pur=="")
{$mpur=explode("=",str_replace("\r\n","",$fza));
$pur=str_replace(")","",$mpur[count($mpur)-1]); 
}}
//////////////
if ($pur!="")   // последний уровень есть
{$a=str_replace("???",$pur,$a);
}

$ins=$input.$b.$a;
if ($tiz2[$посты_сын_поля100['место']]==1)          // если ВСЕ
{$punkt=$punkt.$ins;
}
else if ($tiz2[$посты_сын_поля100['место']]==2)     // если КРАСНОЯРСК
{$punktkrg=$punktkrg.$ins;
}
else if ($tiz2[$посты_сын_поля100['место']]==3)     // если САЯНСКИЙ
{$punktssg=$punktssg.$ins;}
}}}

////////////////////////////////////////
$ti=$abs1."pages/100/contents/12,07,18_003/1.txt";                                // гэс
$mti = file($ti); 	                                       // таблицу в массив
for ($i = 0; $i <= count($mti)-1; $i++)                                // по всем гэс
{$tiz=explode("```",str_replace("\r\n","",$mti[$i]));
if (!array_key_exists ($tiz[$гэс_поля100['индвб']], $mtiz3g)
 and !array_key_exists ($tiz[$гэс_поля100['индвб']], $mtiz33g))        // если это гэс не в списках
{continue;}                                                            // пропустим его
//*******************************************************************
// сформируем пустые теги по текущему гэс
// $mti3g-массив строк от телеграмм $mti33g- массив строк от автомата
// по индексу найдем номер по номеру индекс по индексу номер по п
//*******************************************************************
$ti2=$abs1."pages/100/contents/12,07,18_003/".$tiz[0]."/1.txt";                    // файл сына  гэс из 100
if  (file_exists($ti2))                                      // если есть данные (есть папка)
{$mti2 = file($ti2); 	                                        // таблицу в массив
for ($i2 = 0; $i2 <= count($mti2)-1; $i2++)                             // для каждой строки сына
{$tiz2=explode("```",str_replace("\r\n","",$mti2[$i2]));                 // на столбцы   
if ($tiz2[$гэс_сын_поля100['input']]!="")                               // если есть координаты точки
{if (array_key_exists ($tiz[$уровни_гэс_поля['индвб']], $mtiz33g))      
// если это пост в списке уровней от автоматов вид точки галочка
{$input="<INPUT title='".$tiz[$гэс_поля100['поствб']]."; ".$tiz[$гэс_поля100['объектвб']]."' style='".
$tiz2[$гэс_сын_поля100['input']]."' CHECKED type=checkbox>"."\r\n";     
}
else   // если нет вид точка
{$input="<INPUT title='".$tiz[$гэс_поля100['поствб']]."; ".$tiz[$гэс_поля100['объектвб']]."' style='".
$tiz2[$гэс_сын_поля100['input']]."' CHECKED type=radio>"."\r\n";
}}
if ($tiz2[$гэс_сын_поля100['b']]!="")
{$b="<b  style='".$tiz2[$гэс_сын_поля100['b']]."'>".$tiz[$гэс_поля100['поствб']]."</b>\r\n";
}
else
{
$b="";

}




if ($tiz2[$гэс_сын_поля100['a']]!="")
{$a="<a id=".$tiz[$гэс_поля100['индвб']]." title='".$tiz[$гэс_поля100['поствб']]."' href=# style='".
$tiz2[$гэс_сын_поля100['a']]."'><i></i><i></i><i>t</i><i>a</i>???</a>";
}



////
//*************************************************************
//   ФОРМИРУЕМ ДАННЫЕ ИЗ ТЕЛЕГРАММ ПО ТЕКУЩЕМУ ГЭС ДЛЯ КАРТЫ
//*************************************************************
$pur="";                                                                 // последний уровень
$tur="";
if (array_key_exists ($tiz[$уровни_автомат_гэс_поля['индекс']], $mtiz3g))  // если это пост в списке уровней от автоматов
{$strup=$mti3g[$mtiz3g[$tiz[$уровни_гэс_поля['индекс']]]-1];                    // строка уровней
$mstrup=explode("```",str_replace("\r\n","",$strup));
$point=$mstrup[$уровни_гэс_поля['точек_гэс']];                                 // количество выводимых точек 
$fu=str_replace("1.txt",$mtiz3g[$tiz[$гэс_поля100['индвб']]]."/1.txt",$ti3g);       // имя файла с уровнями
if  (file_exists($fu)  and count($fu)>0)                                                    // файл существует
{$mti5 = file($fu); 	                                                  // таблицу уровней в массив
$nur=1;
// если заданы даты определим от и до как порядковые номера
$ot=-1;  // от не найдена как N
$do=-1;  // до не найдена как N
if ($mstrup[$уровни_гэс_поля['от']]!="" and $mstrup[$уровни_гэс_поля['до']]!="")
{$dot=$mstrup[$уровни_гэс_поля['от']];
$ddo=$mstrup[$уровни_гэс_поля['до']];
for ($i5 = 0; $i5 <= count($mti5)-1; $i5++) 
{if (strpos($mti5[$i5], $dot))
{$ot=$i5;}
if (strpos($mti5[$i5], $ddo))
{$do=$i5;}
}
if ($ot==-1 or $do==-1 or ($ot>$do))
{echo "<br>".$tiz[$уровни_гэс_поля['индекс']]." ".$tiz[$уровни_гэс_поля['индекс']+1].", ".$dot."-".$ddo."  'от' и 'до' не определяется ! График построем по 'Точек'".$ot."-".$do;}
}
if ($ot==-1 or $do==-1)
{$nur=1;
if ($point>=count($mti5))
{$ot=0;}
else
{$ot=count($mti5)-$point;
}
$do=count($mti5)-1;
}





//*******************************************
// в асс массив текущие уровни
//******************************************
$ddat=array();  
for ($i5 = $ot; $i5 <= $do; $i5++) 
{$mtiz5=explode("```",str_replace("\r\n","",$mti5[$i5]));
$zur=ltrim($mtiz5[$уровни_гэс_сын_поля['1HHHвб']],'0');
list($d, $m,$g) = explode(".",$mtiz5[$уровни_гэс_сын_поля['дата']]); 
$ddat[$g.$m.$d]=$tur.$mtiz5[$уровни_гэс_сын_поля['дата']]."(".$mtiz5[$уровни_гэс_сын_поля['час']].":00=".$zur.")";
}
$pur=$zur;
ksort($ddat);                                    // отсортируем по ключу  (по времени N пп) тк возможны повторения
reset($ddat);                                    // на начало  
for ($i5 = 0; $i5 <= count($ddat)-1; $i5++)       // индекс+год+мес+день+час
{$wss=current($ddat); 
$tur=$tur.$wss;
next($ddat);   
}}}
if ($tur=="")
{$a=str_replace(">t<","><",$a);
}
else
{$a=str_replace(">t<",">".$tur."<",$a);
}
if ($pur!="")   // последний уровень есть
{$a=str_replace("???",$pur,$a);
}
$ins=$input.$b.$a;
//**********************************************************
//   ФОРМИРУЕМ ДАННЫЕ АВТОМАТА ПО ТЕКУЩЕЙ ГЭС ДЛЯ КАРТЫ
//**********************************************************
$fza="";
//$уровни_автомат_гэс_поля
if (array_key_exists ($tiz[$уровни_автомат_гэс_поля['индекс']], $mtiz33g))  // если это пост в списке уровней от автоматов
{$fu=str_replace("/1.txt","/".$mtiz33g[$tiz[$уровни_автомат_гэс_поля['индекс']]]."/1.txt",$ti33g);

if  (file_exists($fu) and count($fu)>0)                                   // файл существует и не пустой
{$mti5 = file($fu); 	                                                  // таблицу уровней в массив
$strup=$mti33g[$mtiz33g[$tiz[$уровни_автомат_гэс_поля['индекс']]]-1];           // строка уровней
$mstrup=explode("```",str_replace("\r\n","",$strup));
$point=$mstrup[$уровни_автомат_гэс_поля['точек_гэс_а']];                          // количество выводимых точек 
if (count($mti5)>0)
{$nur=1;
// если заданы даты определим от и до как порядковые номера
$ot=-1;  // от не найдена как N
$do=-1;  // до не найдена как N
if ($mstrup[$уровни_автомат_гэс_поля['от_гэс_а']]!="" and $mstrup[$уровни_автомат_гэс_поля['до_гэс_а']]!="")
{$dot=$mstrup[$уровни_автомат_гэс_поля['от_гэс_а']];
$ddo=$mstrup[$уровни_автомат_гэс_поля['до_гэс_а']];
for ($i5 = 0; $i5 <= count($mti5)-1; $i5++) 
{if (strpos($mti5[$i5], $dot))
{$ot=$i5;}
if (strpos($mti5[$i5], $ddo))
{$do=$i5;}
}
if ($ot==-1 or $do==-1 or ($ot>$do))
{echo "<br>Автомат ".$tiz[$уровни_автомат_гэс_поля['индекс']]." ".$tiz[$уровни_автомат_гэс_поля['индекс']+1].",  ".$dot."-".$ddo."  'от' и 'до' не определяется ! График построем по 'Точек'".$ot."-".$do;}
}
if ($ot==-1 or $do==-1)
{$nur=1;
if ($point>=count($mti5))
{$ot=0;}
else
{$ot=count($mti5)-$point;
}
$do=count($mti5)-1;
}





for ($i5 = $ot; $i5 <= $do; $i5++) 
{$mtiz5=explode("```",str_replace("\r\n","",$mti5[$i5]));

$fza=$fza.$mtiz5[$уровни_автомат_гэс_сын_поля['дата']]."(".$mtiz5[$уровни_автомат_гэс_сын_поля['уровни']].")";
}}}
}
if ($fza=="")
{$a=str_replace(">a<","><",$a);}
else
{$a=str_replace(">a<",">".$fza."<",$a);
if ($pur=="")
{$mpur=explode("=",str_replace("\r\n","",$fza));
$pur=str_replace(")","",$mpur[count($mpur)-1]); 
}}
if ($pur!="")   // последний уровень есть
{$a=str_replace("???",$pur,$a);
}

///
$ins=$input.$b.$a;
if ($tiz2[$гэс_сын_поля100['место']]==1)          // если ВСЕ
{$punkt=$punkt.$ins;
}
else if ($tiz2[$гэс_сын_поля100['место']]==2)     // если КРАСНОЯРСК
{$punktkrg=$punktkrg.$ins;
}
else if ($tiz2[$гэс_сын_поля100['место']]==3)     // если САЯНСКИЙ
{$punktssg=$punktssg.$ins;}
}}}

//////////////////////////////////////////
$punkt=$punkt."</div><b id=p222>".$p222."</b\r\n";
//echo htmlspecialchars($punkt, ENT_QUOTES)."<br>"; 
$punktkrg=$punktkrg."</div>\r\n";
$punktssg=$punktssg."</div>\r\n";
$mkart = file($fkart); 	                                   // шаблон в массив
$fkart2=$abs1."/outside/karta.html";
$w = fopen($fkart2, 'w') or exit;                          // откроем для записи карту
for ($ik = 0; $ik <= count($mkart)-1; $ik++) 
{$ts=str_replace("\r\n","",$mkart[$ik]);
if ($ts==$inreki)
{fwrite($w,$area);}
else if ($ts==$inreki2)
{fwrite($w,$em);}
else if ($ts==$inpunkt)
{fwrite($w,$punkt);}
else if ($ts==$inkrg)
{fwrite($w,$punktkrg);}
else if ($ts==$inssg)
{fwrite($w,$punktssg);}
else
{fwrite($w,$mkart[$ik]);
}
}
fclose($w);
echo "<h3 style='text-align:center'>Данные помещены на карту !<br>Можно закрыть протокол.</h3>";
}
else
{echo "<h1>НЕТ ШАБЛОНА КАРТЫ kartas.html</h1>";
}
}
?>
