function validParams($arResult, $arParams) {
    if (empty($arParams['IBLOCK_TYPE']) || $arParams['IBLOCK_TYPE'] == '-')
        return 'VLDERR_IBLOCK_TYPE_EMPTY';

    if (empty($arParams['IBLOCK_CODE']) || $arParams['IBLOCK_CODE'] == '-')
        return 'VLDERR_IBLOCK_CODE_EMPTY';

    // form iblock must have even only one field for form
    $res = formHasFields($arResult, $arParams);
    if ($res !== true) {
        if ($res == 'IBLOCK_TYPE_NOT_FOUND') {
            return 'VLDERR_IBLOCK_TYPE_NOT_FOUND';
        } elseif ($res == 'IBLOCK_CODE_NOT_FOUND') {
            return 'VLDERR_IBLOCK_CODE_NOT_FOUND';
        } elseif ($res == 'HAS_NO_FIELDS') {
            return 'VLDERR_IBLOCK_HAS_NO_FIELDS';
        }

        return 'UNKNOWN_ERROR';
    }

    /* checking for email templates iblock has required fields (if need to send email)
       see: $arParams['EMAIL_TEMPLATES_REQUIRED_FIELDS'] */
    $res = emailTemplatesHasRequiredFields($arResult, $arParams);
    if ($res !== true) {
        if (is_array($res) && $res[0] == 'IBLOCK_HAS_NO_RQ_FIELD') {
            return array('VLDERR_IBLOCK_HAS_NO_RQ_FIELD', $res[1]);
        } elseif ($res == 'IBLOCK_TYPE_NOT_FOUND') {
            return 'VLDERR_EMAIL_TEMPLATES_IBLOCK_TYPE_NOT_FOUND';
        } elseif ($res == 'IBLOCK_CODE_NOT_FOUND') {
            return 'VLDERR_EMAIL_TEMPLATES_IBLOCK_CODE_NOT_FOUND';
        } elseif ($res == 'ADMIN_TEMPLATE_NOT_FOUND') {
            return 'VLDERR_ADMIN_TEMPLATE_NOT_FOUND';
        } elseif ($res == 'USER_TEMPLATE_NOT_FOUND') {
            return 'VLDERR_USER_TEMPLATE_NOT_FOUND';
        }

        return 'UNKNOWN_ERROR';
    }

    // email addresses validation and filtering by format
    if (needToSendEmail($arResult, $arParams, 'ANY')) {
        if (empty($arParams['~EMAIL_FROM']))
            return 'VLDERR_EMAIL_FROM_EMPTY';
        $res = validEmailAddress($arParams['~EMAIL_FROM'], false);
        if ($res === false)
            return 'VLDERR_EMAIL_FROM_INCORRECT';
        else
            $arParams['~EMAIL_FROM'] = $res;
    }
    if (needToSendEmail($arResult, $arParams, 'ADMIN')) {
        if (empty($arParams['~ADMIN_EMAIL']))
            return 'VLDERR_ADMIN_EMAIL_EMPTY';
        $res = validEmailAddress($arParams['~ADMIN_EMAIL'], true);
        if ($res === false)
            return 'VLDERR_ADMIN_EMAIL_INCORRECT';
        else
            $arParams['~ADMIN_EMAIL'] = $res;

        if (!empty($arParams['~HIDDEN_COPY_ADMIN'])) {
            $res = validEmailAddress($arParams['~HIDDEN_COPY_ADMIN'], true);
            if ($res === false)
                return 'VLDERR_HIDDEN_COPY_ADMIN_INCORRECT';
            else
                $arParams['~HIDDEN_COPY_ADMIN'] = $res;
        }
    }
    if (needToSendEmail($arResult, $arParams, 'USER')) {
        if (!empty($arParams['~HIDDEN_COPY_USER'])) {
            $res = validEmailAddress($arParams['~HIDDEN_COPY_USER'], true);
            if ($res === false)
                return 'VLDERR_HIDDEN_COPY_USER_INCORRECT';
            else
                $arParams['~HIDDEN_COPY_USER'] = $res;
        }
    }

    return true;
}
示例#2
0
         $arResult['POST_SUCCESS'] = addSuccessMsg($arResult, $arParams, array(
             'TYPE' => 'MAILED_TO_ADMIN',
             'EMAIL_TYPE' => 'ADMIN',
             'EMAIL' => $arParams['ADMIN_EMAIL'],
             '~EMAIL' => $arParams['~ADMIN_EMAIL'],
         ));
     } else {
         $arResult['POST_ERROR'] = addErrorMsg($arResult, $arParams, array(
             'TYPE' => 'CANT_SEND_EMAIL',
             'EMAIL_TYPE' => 'ADMIN',
             'EMAIL' => $arParams['ADMIN_EMAIL'],
             '~EMAIL' => $arParams['~ADMIN_EMAIL'],
         ));
     }
 }
 if (needToSendEmail($arResult, $arParams, 'USER')
 && !empty($arResult['POST_DATA']['email'])) {
     $res = sendEmail($arResult, $arParams, 'USER');
     if ($res === true) {
         $arResult['POST_SUCCESS'] = addSuccessMsg($arResult, $arParams, array(
             'TYPE' => 'MAILED_TO_USER',
             'EMAIL_TYPE' => 'USER',
             'EMAIL' => $arResult['POST_DATA']['email'],
             '~EMAIL' => $arResult['POST_DATA']['~email'],
         ));
     } else {
         $arResult['POST_ERROR'] = addErrorMsg($arResult, $arParams, array(
             'TYPE' => 'CANT_SEND_EMAIL',
             'EMAIL_TYPE' => 'USER',
             'EMAIL' => $arResult['POST_DATA']['email'],
             '~EMAIL' => $arResult['POST_DATA']['~email'],