<?
// подключим все необходимые файлы:
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); // первый общий пролог
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/include.php"); // инициализация модуля
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/prolog.php"); // пролог модуля
// подключим языковой файл
//IncludeModuleLangFile(__FILE__);
// получим права доступа текущего пользователя на модуль
$POST_RIGHT = $APPLICATION->GetGroupRight("iblock");
// если нет прав - отправим к форме авторизации с сообщением об ошибке
if ($POST_RIGHT == "D")
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
$aTabs = array(
array("DIV" => "prices_import", "TAB" => 'Импорт цен', "ICON"=>"main_user_edit", "TITLE"=>'Импорт цен'),
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$ID = intval($ID); // идентификатор редактируемой записи
$messages = null; // сообщение об ошибке
$bVarsFromForm = false; // флаг "Данные получены с формы", обозначающий, что выводимые данные получены с формы, а не из БД.
// ******************************************************************** //
// ОБРАБОТКА ИЗМЕНЕНИЙ ФОРМЫ //
// ******************************************************************** //
if(
$REQUEST_METHOD == "POST" // проверка метода вызова страницы
&&
($save!="" || $apply!="") // проверка нажатия кнопок "Сохранить" и "Применить"
&&
$POST_RIGHT=="W" // проверка наличия прав на запись для модуля
&&
check_bitrix_sessid() // проверка идентификатора сессии
)
{
$request = \Bitrix\Main\Context::getCurrent()->getRequest();
$file = $request->getFile('apartments_csv_file');
$items = array();
if (($handle = fopen($file['tmp_name'], "r")) !== FALSE)
{
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE)
{
mb_convert_variables('UTF-8', 'Windows-1251', $data);
$items[] = $data;
}
fclose($handle);
}
try
{
$messages = Apartments::importPrices($items);
}
catch (\Exception $e)
{
$messages['ERROR_MESSAGES'] = $e->getMessage();
}
}
// ******************************************************************** //
// ВЫВОД ФОРМЫ //
// ******************************************************************** //
$APPLICATION->SetTitle('Импорт цен из CSV (1-я очередь)');
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); // второй общий пролог
// вывод административного меню
$aMenu = array(
array(
"TEXT"=>'Вернуться в раздел квартир',
"TITLE"=>'Вернуться в раздел квартир',
"LINK"=>'/bitrix/admin/iblock_list_admin.php?IBLOCK_ID=23&type=catalog&lang=ru&find_section_section=0',
"ICON"=>"btn_list",
)
);
$context = new CAdminContextMenu($aMenu);
$context->Show();
if (!empty($messages['ERROR_MESSAGES']))
{
CAdminMessage::ShowMessage(array("MESSAGE"=>$messages['ERROR_MESSAGES'], "TYPE"=>"ERROR"));
}
elseif (!empty($messages['SUCCESS_COUNT']))
{
CAdminMessage::ShowMessage(array("MESSAGE"=>'Импорт выполнен успешно. Обработано записей: ' . $messages['SUCCESS_COUNT'], "TYPE"=>"OK"));
}
?>
<form method="POST" Action="<?echo $APPLICATION->GetCurPage()?>" ENCTYPE="multipart/form-data" name="post_form">
<?
echo bitrix_sessid_post();
$tabControl->Begin();
$tabControl->BeginNextTab();
?>
<tr>
<td width="20%">Импортировать из CSV:</td>
<td width="80%"><input type="file" name="apartments_csv_file" /></td>
</tr>
<?
$tabControl->Buttons(
array(
"disabled"=>($POST_RIGHT<"W"),
"back_url"=>"rubric_admin.php?lang=".LANG,
)
);
$tabControl->End();
?>
<?echo BeginNote();?>
<?echo "Загрузите файл с ценами квартир и нажмите \"Сохранить\"<br>"?>
<?echo "Файл должен иметь формат CSV и содержать только 4 столбца: №ПомСтроит, Состояние, ЦенаКвМ, Цквартиры.<br>"?>
<?echo "Важно, чтобы столбцы имели именно такие названия и располагались в этом порядке.<br>"?>
<?echo "№ПомСтроит - номер квартиры<br>"?>
<?echo "Состояние - свободно/занято<br>"?>
<?echo "ЦенаКвМ - цена за кв. м<br>"?>
<?echo "Цквартиры - полная цена квартиры<br>"?>
<?echo "Пример файла с ценамы можно скачать <a href=\"/upload/apart_csv_test.csv\">тут</a><br>"?>
<?echo EndNote();?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>