Exemplo n.º 1
0
$arResult['FIELD_EDIT_URL'] = htmlspecialcharsbx($arResult['~FIELD_EDIT_URL']);
$APPLICATION->SetTitle(GetMessage('CRM_FIELDS_LIST_TITLE_EDIT', array('#NAME#' => $arResult['ENTITY_NAME'])));
global $CACHE_MANAGER;
//Form submitted
if ($_SERVER['REQUEST_METHOD'] == 'POST' && check_bitrix_sessid() && isset($_POST['action_button_' . $arResult['GRID_ID']])) {
    if ($_POST['action_button_' . $arResult['GRID_ID']] == 'delete' && isset($_POST['ID']) && is_array($_POST['ID'])) {
        foreach ($_POST['ID'] as $ID) {
            $CCrmFields->DeleteField($ID);
        }
        //Clear components cache
        $CACHE_MANAGER->ClearByTag('crm_fields_list_' . $arResult['ENTITY_ID']);
    }
    if ($_POST['action_button_' . $arResult['GRID_ID']] == 'edit' && isset($_POST['FIELDS']) && is_array($_POST['FIELDS'])) {
        $gridID = CCrmGridOptions::GetDefaultGrigID(CCrmOwnerType::ResolveIDByUFEntityID($arResult['ENTITY_ID']));
        foreach ($_POST['FIELDS'] as $ID => &$arPostField) {
            $arPresetField = $CCrmFields->GetByID($ID);
            $arField = array();
            //Sanitaizing
            foreach ($arPostField as $k => $v) {
                if (strpos($k, '~') === 0) {
                    continue;
                }
                $arField[$k] = $v;
            }
            if (empty($arField)) {
                continue;
            }
            if (!$CCrmFields->UpdateField($ID, $arField)) {
                continue;
            }
            if (isset($arField['SHOW_IN_LIST']) && $arField['SHOW_IN_LIST'] !== $arPresetField['SHOW_IN_LIST']) {