<?php //модуль для импорта в админку контента текстовых и html блоков WSX5 
// настройки в файле root.php	
	
	if($disable_config == '1'){
		$customObjects = array();
		$customObjects_NoEdit = array();
	}
	
	sleep(1);
	clearstatcache();
	function func_searchdiv ($st, $ofs){  // ищет в строке ($st) позицию закрывающего тега div по заданной позиции ($ofs) открывающего тега 
		$re = '#(\<div|\<\/div\>)#'; $cntr=0;
		$length_st = strlen($st);
		while ($ofs<$length_st) {
			preg_match($re, $st, $p, PREG_OFFSET_CAPTURE, $ofs);
			//echo "<pre>"; print_r($p); echo "</pre>";
			$ofs=$p[0][1]+5; 
			if ($p[0][0]=='<div') {$cntr=$cntr+1; }
			if ($p[0][0]=='</div>') {$cntr=$cntr-1; }
			if ($cntr==0) {return $ofs; break;}
			if ($cntr<0) {return false; break;}
		}
		if ($cntr>0) {return false;}
	}
	
	function func_customObjs ($str, $objects){  // проверяет, содержится ли в строке $str хотя бы один из элементов массива $objects
		$return=false;
		foreach ($objects as $object){
			if (strpos($str,$object)!==false ){$return=$object;break;}
		}
		return $return;
	}
	$mset=array();
	$check_l=file_get_contents("../../sg_cm/admin/index.php");
	$check_ls=substr($check_l,strpos($check_l,'$sn="0')+7,1);
	if (!is_file('../conf/set.php') || is_file('sg_cm_code.php')) die ('неверное расположение модуля сканирования');
	if ($check_ls=='0' || strpos($check_l,'$sn="0')===false ) die ('устаревшая версия cms');
	$mset=file('../conf/set.php');
	$file0=''; $file=''; 
	foreach ($PG as $key => $file0) 
	{   if ($disable_scan==1) break;
		
		$file=basename($file0);
		if (is_file('../../'.$file.'.php')) {$file.='.php';}
		elseif (is_file('../../'.$file.'.html')) {$file.='.html';}
		else {continue;}
		$f=file_get_contents('../../'.$file); 
		if ($mset[13]=='checked'."\r\n"){ 
			if(is_file("../../sg_cm/content/".$file0."/zagl1")) 
			{
				$f = writeTitleTags($f);
				$f = writeCodeTitle($f);	
			}
		}
		
		if(strpos($f,'<!--noedit-->')===false && strpos($f,'<!--edit-->')!==false ) $edit=1; else $edit=0;
		//		if (md5_file('../../sg_cm/sg_cm/style/top.png') === '963d8c9e3ee09c34379fda89e4173052') {}
		//		else {echo __LINE__;  exit;}
		
		if(strpos($f,"include_once 'sg_cm/include/sg_cm_code.php';?>")===false) 
		{$f=str_replace("</head>", "<?php @include_once 'sg_cm/include/sg_cm_code.php';?></head>", $f);}
		
		
		
		$out=array();	$titleout=array();
		$countOut = preg_match_all ($reg_match, $f, $out, PREG_PATTERN_ORDER);
		for ($k=0; $k<$countOut; $k++) 
		{ 
			$pos1 = strpos($f,$out[0][$k]); 
			$pos2 = func_searchdiv($f, $pos1);
			if ($pos2===false) continue;
			$lng_html = $pos2-$pos1+1; //длина  кода html
			$hsubstr = substr($f,$pos1,$lng_html);
			$length_closeTag = 6; // длина </div>
			$lng_html_internal = $pos2 - $length_closeTag - $pos1 - strpos($hsubstr, '>') ; //длина внутреннего кода html между тегами
			
			$blok_pos = $pos1;
			$blok_length = $lng_html;
			
			
			$wis_red='4'; // по умолчанию включен визуальный редактор
			$content_type='cp'; // по умолчанию - это блок в контенте страницы
			
			if($ShortCellNames == '0'){
				$cellname = ($Cell_name == '' ? '' : $Cell_name.'_');
			}
			
			if (strpos($hsubstr,$imFooter)!==false ) {$cellname=$Footer_name.'_'; $content_type='ck';} // это блок в футере 
			elseif (strpos($hsubstr,$imHeader)!==false )  {$cellname=$Header_name.'_'; $content_type='ck';} // это блок в хедере
			
			if (strpos($hsubstr,'<script')!==false || func_customObjs($hsubstr,$customObjects_NoVis)!==false)
			{$wis_red='3'; // выключить визуальный редактор для блока со скриптом 
			}
			if (strpos($hsubstr,'<!--noedit-->')!==false || strpos($hsubstr,'<?')!==false || strpos($hsubstr,'<style')!==false || func_customObjs($hsubstr,$customObjects_NoEdit)!==false) {continue;}
			elseif ($edit==1 && strpos($hsubstr,'<!--edit-->')===false) {continue;}
			
			elseif (strpos($hsubstr,$imTextObject)!==false && $mset[0]=='checked'."\r\n"  ){$block_type='edit'; $cellname .= trim($imTextObject);}
			elseif (strpos($hsubstr,$imTableObject)!==false && $mset[0]=='checked'."\r\n"  ){$block_type='edit'; $cellname .= trim($imTableObject);}
			elseif (strpos($hsubstr,$imObjectTitle)!==false && $mset[0]=='checked'."\r\n"  ){$block_type='edit'; $cellname .= trim($imObjectTitle);}
			elseif (strpos($hsubstr,$imHTMLObject)!==false && $mset[1]=='checked'."\r\n"  ){$block_type='edit'; $cellname .= trim($imHTMLObject);}
			elseif (strpos($hsubstr,$imObjectImage)!==false && $mset[1]=='checked'."\r\n"  ){$block_type='edit'; $cellname .= trim($imObjectImage);}
			elseif (func_customObjs($hsubstr,$customObjects)!==false) {$block_type='edit'; $cellname .= trim(func_customObjs($hsubstr,$customObjects));}
			else {$block_type='noedit'; continue; } // не сканировать блок
			
			if($ShortCellNames == '1'){
				if (strpos($hsubstr,$imFooter)!==false ) {$cellname=$Footer_name;}  
				else  $cellname=$Cell_name ;
			}
			$cellnum_type=1;
			if (!isset($out[$reg_match_mask_number][$k]) || !is_numeric($out[$reg_match_mask_number][$k])) {$cellnum=$k; $cellnum_type=0;}
			else $cellnum=$out[$reg_match_mask_number][$k]; // echo "<pre>"; print_r($out); echo "</pre>"; die;
			$divTMCE1 = explode('><',$divTMCE_cont);
			if (count($divTMCE1)==2) {$divTMCE1['0']=trim($divTMCE1['0']).'>';$divTMCE1['1']='<'.trim($divTMCE1['1']);}
			else  $divTMCE1 = array(0=>'',1=>'');
			$divTMCE2 = explode('><',$divTMCE_head);
			if (count($divTMCE2)==2) {$divTMCE2['0']=trim($divTMCE2['0']).'>';$divTMCE2['1']='<'.trim($divTMCE2['1']);}
			else  $divTMCE2 = array(0=>'',1=>'');
			if ($content_type=='cp') 
			{
				$cellfile='../content/'.$file0.'/'.$cellname.$cellnum.'.txt';
				$f=str_replace($hsubstr, $divTMCE1['0'].'<? blocktxt($'.$content_type.'.\''.$cellname.$cellnum.'.txt\'); ?>'.$divTMCE1['1'] , $f);
				if($cellnum_type===1){	
					if(preg_match('!<div id="imCellStyleTitle_'.$cellnum.'">(.*?)<\/div>!su', $f, $titleout)==0) $titleout[1] = '';
					elseif(strpos($titleout[1],'<?')===false)
					{	
						$f=preg_replace('!<div id="imCellStyleTitle_'.$cellnum.'">.*?<\/div>!su', '<div id="imCellStyleTitle_'.$cellnum.'"><? bz($'.$content_type.'.\''.$cellname.$cellnum.'.txt\'); ?></div>' , $f);
					}
					else $titleout[1]='';
				}
			}
			elseif ($content_type=='ck') 
			{
				$cellfile='../content/'.$cellname.$cellnum.'.txt'; 
				$f=str_replace($hsubstr, $divTMCE2['0'].'<? blocktxt($'.$content_type.'.\''.$cellname.$cellnum.'.txt\'); ?>'.$divTMCE2['1'] , $f);
			}
			
			else die('ошибка сканирования');
			
			if (!is_file($cellfile))
			{  if(!isset($titleout[1])) $titleout[1]=''; $hsubstr=str_replace('<!--noedit-->', '' , $hsubstr);$hsubstr=str_replace('<!--edit-->', '' , $hsubstr);
				file_put_contents ($cellfile, $titleout[1].'**:***:*:'.$hsubstr.'**:***:*:'.$wis_red);
			}
			
		}
		
		file_put_contents('../../'.$file, $f);
		
	} 
?>																	