Your IP : 216.73.216.180


Current Path : /home/bitrix/ext_www/vf.yacl.site/
Upload File :
Current File : /home/bitrix/ext_www/vf.yacl.site/export-4k.php

<?
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');

function str_or_dash($str)
{
	$res = HTMLToTxt(trim($str), 'https://historydepositarium.ru', array(), false);
	return strlen($str) > 0 ? $str : '-';
}

function text_clean($str)
{
	return html_entity_decode(preg_replace("~\s*[\r\n]+\s*~im", "\r\n", $str));
}

$arID = array();
foreach (array_diff(scandir('./vector'), array('..', '.')) as $d)
{
	foreach (array_diff(scandir("./vector/{$d}"), array('..', '.')) as $sd)
	{
		$arID[] = intval($sd);
	}
}

if (count($arID) > 4000)
{
	die("<h1>Обработка завершена (".count($arID).") @ ".date('c')."</h1>");
}

$page = intval($_REQUEST['page']) > 0 ? intval($_REQUEST['page']) : 1;

header('refresh: 5;url=/export-4k.php?page='.($page + 1));

CModule::IncludeModule("iblock");

$srt = array('ID' => 'DESC');
$flt = array('IBLOCK_ID' => 1, 'PROPERTY_STATUS' => 2, '!NAME' => false, '!PROPERTY_DESCRIPTION' => false, '!PROPERTY_FILE' => false);
$nav = array('nPageSize' => 500, 'iNumPage' => $page);
$sel = array('ID', 'NAME', 'PROPERTY_SURNAME', 'PROPERTY_NAME', 'PROPERTY_PATRONYMIC',
	'PROPERTY_BORN_DATE', 'PROPERTY_DEATH_DATE', 'PROPERTY_CITY', 'PROPERTY_DESCRIPTION',
	'PROPERTY_FILE');

$db = CIBlockElement::GetList($srt, $flt, false, $nav, $sel);

print("<h1>Обработка @ ".date('c')." страница {$page} готово ".count($arID)."</h1>");

while ($elm = $db->GetNext(false, false))
{
	if (!in_array($elm['ID'], $arID) && intval($elm['PROPERTY_FILE_VALUE']) > 0 && strlen($elm['PROPERTY_DESCRIPTION_VALUE']['TEXT']) > 1500)
	{
		print("<p>{$elm['ID']} {$elm['NAME']}</p>");
		$dir = './vector/'.substr(strtoupper(trim($elm['NAME'])), 0, 1)."/{$elm['ID']} {$elm['NAME']}";
		if (!file_exists($dir)) mkdir($dir, 0755, true);
		$name = Cutil::translit($elm['NAME'], 'ru', ['replace_space'=>'-', 'replace_other'=>'-']);
		$text = "ФИО:\r\n".str_or_dash($elm['NAME']);
		$text .= "\r\n\r\nФАМИЛИЯ:\r\n".str_or_dash($elm['PROPERTY_SURNAME_VALUE']);
		$text .= "\r\n\r\nИМЯ:\r\n".str_or_dash($elm['PROPERTY_NAME_VALUE']);
		$text .= "\r\n\r\nОТЧЕСТВО:\r\n".str_or_dash($elm['PROPERTY_PATRONYMIC_VALUE']);
		$text .= "\r\n\r\nГОРОД:\r\n".str_or_dash($elm['PROPERTY_CITY_VALUE']);
		$text .= "\r\n\r\nДАТА РОЖДЕНИЯ:\r\n".str_or_dash($elm['PROPERTY_BORN_DATE_VALUE']);
		$text .= "\r\n\r\nДАТА СМЕРТИ:\r\n".str_or_dash($elm['PROPERTY_DEATH_DATE_VALUE']);
		$text .= "\r\n\r\nИСТОРИЯ:\r\n".str_or_dash(text_clean($elm['PROPERTY_DESCRIPTION_VALUE']['TEXT']));
		file_put_contents("{$dir}/{$name}.txt", $text);
		$img = CFile::GetPath($elm['PROPERTY_FILE_VALUE']);
		$parts = pathinfo($img);
		copy(".{$img}", "{$dir}/{$name}.{$parts['extension']}");
	}
}
?>