| Код |
|---|
function OnBeforeIBlockElementHandler(&$arFields)
{
global $USER;
$iBlockType = "service";
$iBlockCode = "bonus-points-calculation";
if(CModule::IncludeModule("iblock"))
{
$res = CIBlock::GetList(Array(), Array("TYPE"=>$iBlockType, "ACTIVE"=>"Y", "CODE"=>$iBlockCode), true);
while($ar_res = $res->Fetch())
{
$iBlockID = $ar_res["ID"];
}
}
if($arFields["IBLOCK_ID"] != $iBlockID)
return false;;
$sectionName = $USER->GetEmail();
$arFilter = Array("IBLOCK_ID"=>$iBlockID, "NAME"=>$sectionName);
$db_list = CIBlockSection::GetCount($arFilter);
if($db_list==0) {
$bs = new CIBlockSection;
$arFieldsSection = Array(
"ACTIVE" => "Y",
"IBLOCK_ID" => $iBlockID,
"NAME" => $sectionName,
"CODE" => $sectionName,
"SORT" => 100,
);
$ID = $bs->Add($arFieldsSection);
} else {
echo "Раздел уже существует";
}
// id нужного раздела
$res = CIBlockSection::GetList(array(), array("IBLOCK_ID"=>$iBlockID, "CODE"=>$sectionName));
$section = $res->Fetch();
$arFields["IBLOCK_SECTION_ID"] = $section["ID"];
$arFields["IBLOCK_SECTION"] = $sectionName;
file_put_contents($_SERVER["DOCUMENT_ROOT"]/sectionAddForIblock.txt", var_export($arFields, true), FILE_APPEND);
}
|
Проблема собственно в чем:
- создаются элементы в iblock.element.add.form
- разделы создаются из логина/емайла пользователя, который создал элемент
- последняя часть кода не работает - элемент не попадает в нужный раздел, а остается на верхнем уровне
В чем проблема хз, уже все перепробовал.