Также есть не приведенный в таблице параметр PARENT_ID.
Вот небольшой скриптик конвертации структуры разделов инфоблока в структуру групп форумов, правда только двухуровневый, т.е. если структура глубже - его надо несколько доработать
| Код |
|---|
CModule::IncludeModule("iblock");
$BID = 6; // указываем инфоблок
// Запрос секций
$rsSection = CIBlockSection::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID" => $BID), false);
while ($section = $rsSection->GetNext())
{
$arSections[] = $section;
}
// Скрипт создания групп форумов
CModule::IncludeModule("forum");
// ID родителя
$lastForumGroupId = 0;
foreach($arSections as $section)
{
if (intval($section["DEPTH_LEVEL"]) == 1)
{
$forumGroupId = 0;
}
else
{
$forumGroupId = $lastForumGroupId;
}
$arFields = array(
"SORT" => $section["SORT"],
"PARENT_ID" => $forumGroupId
);
$arFields["LANG"][0] = array(
"NAME" => $section["NAME"],
"LID" => "ru",
"DESCRIPTION" => $section["DESCRIPTION"]
);
$arFields["LANG"][1] = array(
"NAME" => "EN_NAME",
"LID" => "en",
"DESCRIPTION" => ""
);
if ($ID = CForumGroup::Add($arFields))
{
echo "Добавили группу ".$section["NAME"].", родитель - ".$forumGroupId." <br />";
if (intval($section["DEPTH_LEVEL"]) == 1)
{
$lastForumGroupId = $ID;
}
}
else
{
echo "ERROR!<br />";
}
}
|