- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_type.php
- Класс: CCalendarType
- Вызов: CCalendarType::Edit
static function Edit($params)
{
global $DB;
$arFields = $params['arFields'];
$XML_ID = preg_replace("/[^a-zA-Z0-9_]/i", "", $arFields['XML_ID']);
$arFields['XML_ID'] = $XML_ID;
if (!isset($arFields['XML_ID']) || $XML_ID == "")
{
return false;
}
//return $APPLICATION->ThrowException(GetMessage("EC_ACCESS_DENIED"));
$access = $arFields['ACCESS'];
unset($arFields['ACCESS']);
if (count($arFields) > 1) // We have not only XML_ID
{
if ($params['NEW']) // Add
{
$strSql = "SELECT * FROM b_calendar_type WHERE XML_ID='".$DB->ForSql($XML_ID)."'";
$res = $DB->Query($strSql, false, __LINE__);
if (!($arRes = $res->Fetch()))
{
$arInsert = $DB->PrepareInsert("b_calendar_type", $arFields);
$strSql ="INSERT INTO b_calendar_type(".$arInsert[0].") VALUES(".$arInsert[1].")";
$DB->Query($strSql);
}
else
{
false;
}
}
else // Update
{
unset($arFields['XML_ID']);
if (!empty($arFields))
{
$strUpdate = $DB->PrepareUpdate("b_calendar_type", $arFields);
$strSql =
"UPDATE b_calendar_type SET ".
$strUpdate.
" WHERE XML_ID='".$DB->ForSql($XML_ID)."'";
$DB->QueryBind($strSql, array('DESCRIPTION' => $arFields['DESCRIPTION']));
}
}
}
//SaveAccess
$accessController = new TypeAccessController(CCalendar::GetUserId());
$typeModel = TypeModel::createFromXmlId($arFields['XML_ID']);
if (is_array($access) && $accessController->check(ActionDictionary::ACTION_TYPE_ACCESS, $typeModel))
{
self::SavePermissions($XML_ID, $access);
}
CCalendar::ClearCache('type_list');
return $XML_ID;
}