Хорошо. Спасибо. Попробую.
Еще один вопрос назрел. Спрошу его пожалуй в этом топике.
Мне необходимо было перенести пользователей со старого движка (вебасист) на битрикс. Там была такая реализация: Часть полей были файловыми. т.е. например было поле ИНН, где пользователь загружал скан свидетельства, причем не обязательно это было изображение, он мог загрузить его и в pdf и даже в формате ворд. Соответственно таких полей в битриксе не было. Пришлось создать пользователькие поля с типом файл. Но вот в момент импорта файлы из этих полей не переносились. Т.е. если поле "строка" или "список" то все нормально, если "файл" то нет. При этом стандартное поле "PERSONAL_PHOTO" нормально переносилось. Я начал разбираться в чем дело. Нашел в файле csv_user_import.php в методе ImportUs er() вот такие строчки
if (array_key_exists("PERSONAL_PHOTO", $arFields) && strlen($arFields["PERSONAL_PHOTO"]) > 0)
{
$arFile = CFile::MakeFileArray($this->imageFilePath."/".$arFields["PERSONAL_PHOTO"]);
$arFile["MODULE_ID"] = "main";
$arFields["PERSONAL_PHOTO"] = $arFile;
}
добавил после них строки своих пользовательских полей.
if (array_key_exists("UF_IP_COPY_PASSPORT", $arFields) && strlen($arFields["UF_IP_COPY_PASSPORT"]) > 0)
{
$arFile = CFile::MakeFileArray($this->imageFilePath."/".$arFields["UF_IP_COPY_PASSPORT"]);
$arFile["MODULE_ID"] = "main";
$arFields["UF_IP_COPY_PASSPORT"] = $arFile;
}
if (array_key_exists("UF_IP_PASSPORT_PROP", $arFields) && strlen($arFields["UF_IP_PASSPORT_PROP"]) > 0)
{
$arFile = CFile::MakeFileArray($this->imageFilePath."/".$arFields["UF_IP_PASSPORT_PROP"]);
$arFile["MODULE_ID"] = "main";
$arFields["UF_IP_PASSPORT_PROP"] = $arFile;
}
..... и т.д.
после этого файлы добавились в аккаунт импортируемого пользователя.
Ну естественно мне пришлось изменить файл ядра. Поэтому возник вопрос. Не меняя ядро это как-то можно было сделать стандартными средствами системы?
Еще один вопрос назрел. Спрошу его пожалуй в этом топике.
Мне необходимо было перенести пользователей со старого движка (вебасист) на битрикс. Там была такая реализация: Часть полей были файловыми. т.е. например было поле ИНН, где пользователь загружал скан свидетельства, причем не обязательно это было изображение, он мог загрузить его и в pdf и даже в формате ворд. Соответственно таких полей в битриксе не было. Пришлось создать пользователькие поля с типом файл. Но вот в момент импорта файлы из этих полей не переносились. Т.е. если поле "строка" или "список" то все нормально, если "файл" то нет. При этом стандартное поле "PERSONAL_PHOTO" нормально переносилось. Я начал разбираться в чем дело. Нашел в файле csv_user_import.php в методе ImportUs er() вот такие строчки
if (array_key_exists("PERSONAL_PHOTO", $arFields) && strlen($arFields["PERSONAL_PHOTO"]) > 0)
{
$arFile = CFile::MakeFileArray($this->imageFilePath."/".$arFields["PERSONAL_PHOTO"]);
$arFile["MODULE_ID"] = "main";
$arFields["PERSONAL_PHOTO"] = $arFile;
}
добавил после них строки своих пользовательских полей.
if (array_key_exists("UF_IP_COPY_PASSPORT", $arFields) && strlen($arFields["UF_IP_COPY_PASSPORT"]) > 0)
{
$arFile = CFile::MakeFileArray($this->imageFilePath."/".$arFields["UF_IP_COPY_PASSPORT"]);
$arFile["MODULE_ID"] = "main";
$arFields["UF_IP_COPY_PASSPORT"] = $arFile;
}
if (array_key_exists("UF_IP_PASSPORT_PROP", $arFields) && strlen($arFields["UF_IP_PASSPORT_PROP"]) > 0)
{
$arFile = CFile::MakeFileArray($this->imageFilePath."/".$arFields["UF_IP_PASSPORT_PROP"]);
$arFile["MODULE_ID"] = "main";
$arFields["UF_IP_PASSPORT_PROP"] = $arFile;
}
..... и т.д.
после этого файлы добавились в аккаунт импортируемого пользователя.
Ну естественно мне пришлось изменить файл ядра. Поэтому возник вопрос. Не меняя ядро это как-то можно было сделать стандартными средствами системы?