예제 #1
0
$arResult['ELEMENT']['FM'] = array();
while ($ar = $res->Fetch()) {
    $arResult['ELEMENT']['CONTACT']['FM'][$ar['TYPE_ID']]['n0' . $ar['ID']] = array('VALUE' => $ar['VALUE'], 'VALUE_TYPE' => $ar['VALUE_TYPE']);
    $arResult['ELEMENT']['COMPANY']['FM'][$ar['TYPE_ID']]['n0' . $ar['ID']] = array('VALUE' => $ar['VALUE'], 'VALUE_TYPE' => $ar['VALUE_TYPE']);
}
$bVarsFromForm = false;
if ($_SERVER['REQUEST_METHOD'] == 'POST' && check_bitrix_sessid()) {
    if (isset($_POST['save']) || isset($_POST['apply'])) {
        $bConvertDeal = isset($_POST['CONVERT_DEAL']) && $_POST['CONVERT_DEAL'] == 'Y';
        $bConvertCompany = isset($_POST['CONVERT_COMPANY']) && $_POST['CONVERT_COMPANY'] == 'Y';
        $bConvertContact = isset($_POST['CONVERT_CONTACT']) && $_POST['CONVERT_CONTACT'] == 'Y';
        $arFields = array();
        $arEntity = array('CONTACT', 'COMPANY', 'DEAL');
        foreach ($arEntity as $sEntity) {
            if ($sEntity === 'CONTACT') {
                $entityFields = CAllCrmContact::GetFields();
            } elseif ($sEntity === 'COMPANY') {
                $entityFields = CAllCrmCompany::GetFields();
            } elseif ($sEntity === 'DEAL') {
                $entityFields = CAllCrmDeal::GetFields();
            } else {
                $entityFields = array();
            }
            $entityPrefix = $sEntity . '_';
            foreach ($_POST as $k => $v) {
                if (strpos($k, $entityPrefix) !== 0) {
                    continue;
                }
                $fieldKey = substr($k, strlen($entityPrefix));
                // Make an exception for CONTACT_ID and COMPANY_ID - special fields.
                if (isset($entityFields[$fieldKey]) || $sEntity === 'CONTACT' && $fieldKey === 'CONTACT_ID' || $sEntity === 'COMPANY' && $fieldKey === 'COMPANY_ID') {