static function createStorage($lineId, $userId = 0)
{
if(!self::initModules())
{
return false;
}
$configManager = new Config();
if($config = $configManager->get($lineId, true))
{
$name = $config['LINE_NAME'];
$description = Loc::getMessage('IMOL_QA_IBLOCK_DESCRIPTION').' '.$config['LINE_NAME'];
$queue = $config['QUEUE'];
}
else
{
return false;
}
$iblockFields = array(
'NAME' => $name,
'CODE' => self::IBLOCK_CODE,
'DESCRIPTION' => $description,
'IBLOCK_TYPE_ID' => self::TYPE,
'WORKFLOW' => 'N',
'ELEMENTS_NAME' => Loc::getMessage('IMOL_QA_IBLOCK_ELEMENTS_NAME'),
'ELEMENT_NAME' => Loc::getMessage('IMOL_QA_IBLOCK_ELEMENT_NAME'),
'ELEMENT_ADD' => Loc::getMessage('IMOL_QA_IBLOCK_ELEMENT_ADD'),
'ELEMENT_EDIT' => Loc::getMessage('IMOL_QA_IBLOCK_ELEMENT_EDIT'),
'ELEMENT_DELETE' => Loc::getMessage('IMOL_QA_IBLOCK_ELEMENT_DELETE'),
'SECTIONS_NAME' => Loc::getMessage('IMOL_QA_IBLOCK_SECTIONS_NAME'),
'SECTION_NAME' => Loc::getMessage('IMOL_QA_IBLOCK_SECTION_NAME'),
'SECTION_ADD' => Loc::getMessage('IMOL_QA_IBLOCK_SECTION_ADD'),
'SECTION_EDIT' => Loc::getMessage('IMOL_QA_IBLOCK_SECTION_EDIT'),
'SECTION_DELETE' => Loc::getMessage('IMOL_QA_IBLOCK_SECTION_DELETE'),
//'SOCNET_GROUP_ID' => '',
'BIZPROC' => 'N',
'SITE_ID' => array(self::getDefaultSiteID()),
'RIGHTS_MODE' => 'E',
'RIGHTS' => self::getRights(self::RIGHTS_IBLOCK_FOR_LINE_QUEUE, $queue, $userId),
);
$iblock = new CIBlock();
$iblockId = $iblock->Add($iblockFields);
if($iblockId > 0)
{
$list = new CList($iblockId);
$list->AddField(array(
'SORT' => 20,
'NAME' => GetMessage('IMOL_QA_IBLOCK_NAME_FIELD'),
'IS_REQUIRED' => 'Y',
'MULTIPLE' => 'N',
'TYPE' => 'NAME',
'DEFAULT_VALUE' => '',
));
$list->AddField(array(
'SORT' => 30,
'NAME' => GetMessage('IMOL_QA_IBLOCK_TEXT_FIELD'),
'IS_REQUIRED' => 'Y',
'MULTIPLE' => 'N',
'TYPE' => 'DETAIL_TEXT',
'DEFAULT_VALUE' => '',
));
$list->AddField(array(
'SORT' => 40,
'NAME' => GetMessage('IMOL_QA_IBLOCK_RATING_FIELD'),
'IS_REQUIRED' => 'N',
'MULTIPLE' => 'N',
'TYPE' => 'SORT',
'DEFAULT_VALUE' => '1',
));
$list->Save();
global $CACHE_MANAGER;
$CACHE_MANAGER->ClearByTag('lists_list_any');
$CACHE_MANAGER->CleanDir('menu');
$section = new CIBlockSection();
foreach(self::getSectionNames() as $code => $sectionDesc)
{
$section->add(array(
'SORT' => $sectionDesc['SORT'],
'ACTIVE' => 'Y',
'NAME' => $sectionDesc['NAME'],
'CODE' => $code,
'IBLOCK_ID' => $iblockId,
));
}
$gridId = 'lists_list_elements_'.$iblockId;
$gridOption = new BitrixMainGridOptions($gridId);
$gridOption->SetSorting('SORT', 'desc');
$gridOption->save();
$gridOption->SetVisibleColumns(array('NAME', 'DETAIL_TEXT', 'SORT', 'IBLOCK_SECTION_ID'));
$gridOption->SetDefaultView($gridOption->getCurrentOptions());
$configManager->update($lineId, [
'QUICK_ANSWERS_IBLOCK_ID' => $iblockId,
'SKIP_MODIFY_MARK' => 'Y',
]);
return $iblockId;
}
/*else
{
echo $iblock->LAST_ERROR;
}*/
return false;
}