Здравствуйте.
Копаюсь в одном компоненте из маркетплейс.
Это компонент Комментарии к любому инфоблоку.
Очень удобно, работает хорошо.
Но заказчик просит чтоб пользователи могли добавлять аватарку при комментировании.
Создал новое свойство в инфоблоке AVA (тип файл).
В шаблоне компонента прописал форме
Дальше в форме указал инпут для картинки
С формой как бы все.
Теперь ищу как этот компонент записывает данные в инфоблок.
Нашел файл компонента component.php по адресу /bitrix/components/
В нем нашел ко:
Как ведите, создал переменную $ava и присвоил ей создание картинки.
Дольше нашел еще один файл компонента component.php по адресу /bitrix/modules/
В нем:
Как видите, полю AVA (тип поля файл) кидаю содержимое переменной $ava.
Но картинка не добавляется.
Подскажите что не так.
Копаюсь в одном компоненте из маркетплейс.
Это компонент Комментарии к любому инфоблоку.
Очень удобно, работает хорошо.
Но заказчик просит чтоб пользователи могли добавлять аватарку при комментировании.
Создал новое свойство в инфоблоке AVA (тип файл).
В шаблоне компонента прописал форме
| Код |
|---|
<fo rm enctype="multipart/form-data" action="<?=$GLOBALS["APPLICATION"]->GetCurUri()?>" method='POST' on submit='return md_validate(this);'> |
| Код |
|---|
<input name="AVA" type='file' class="w-45 reg" /> |
Теперь ищу как этот компонент записывает данные в инфоблок.
Нашел файл компонента component.php по адресу /bitrix/components/
В нем нашел ко:
| Код |
|---|
case "add": if ($comment->Add( $arParams["OBJECT_ID"], $arResult["POST"]["MESSAGE"], intval($arResult["POST"]["AUTHOR"]), $arResult["POST"]["PARENT"], intval($arResult["POST"]["DEPTH"]), $arResult["POST"]["NONUSER"], $arResult["POST"]["EMAIL"], $additional, $ava = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/ava/".$_FILES['AVA']['name']), $arParams["MODERATE"] ) |
Дольше нашел еще один файл компонента component.php по адресу /bitrix/modules/
В нем:
| Код |
|---|
public function Add($object, $text, $author = false, $parent = false, $level = 1, $nonuser = false, $email = false, $additional = false, $ava, $moderation = false)
{
CModule::IncludeModule("iblock");
$section = self::GetSection($object);
$prop = array(
"USER" => $author,
"OBJECT" => $object,
"DEPTH" => $level,
"PARENT" => $parent,
"NONUSER" => $nonuser,
"EMAIL" => $email,
"ADDITIONAL" => $additional,
"AVA" => $ava,
);
$arF = array(
"NAME" => $nonuser.($nonuser && $email ? " " : "").($email ? "(".$email.")" : ""),
"IBLOCK_ID" => self::GetIBlock(),
"IBLOCK_SECTION_ID" => $section,
"ACTIVE" => $moderation ? "N" : "Y",
"PROPERTY_VALUES" => $prop,
"PREVIEW_TEXT" => $text,
"PREVIEW_TEXT_TYPE" => "html",
);
$el = new CIBlockElement();
if ($id = $el->add($arF))
{
return $id;
}
else
{
$GLOBALS["KHAYR_MAIN_COMMENT_COMMENT_ERROR"] = $el->LAST_ERROR;
return false;
}
}
|
Но картинка не добавляется.
Подскажите что не так.