/** * global validation rules for the form * * @param array $fields posted values of the form * @param array $errors list of errors to be posted back to the form * * @return $errors * @static * @access public */ static function formRule($fields, $errors) { $hasData = $hasPrimary = $errors = array(); if (CRM_Utils_Array::value('im', $fields) && is_array($fields['im'])) { foreach ($fields['im'] as $instance => $blockValues) { $dataExists = CRM_Contact_Form_Contact::blockDataExists($blockValues); if ($dataExists) { $hasData[] = $instance; if (CRM_Utils_Array::value('is_primary', $blockValues)) { $hasPrimary[] = $instance; if (!$primaryID && CRM_Utils_Array::value('im', $blockValues)) { $primaryID = $blockValues['im']; } } } } if (empty($hasPrimary) && !empty($hasData)) { $errors["im[1][is_primary]"] = ts('One IM should be marked as primary.'); } if (count($hasPrimary) > 1) { $errors["im[" . array_pop($hasPrimary) . "][is_primary]"] = ts('Only one IM can be marked as primary.'); } } return $errors; }
/** * Global validation rules for the form. * * @param array $fields * Posted values of the form. * @param array $errors * List of errors to be posted back to the form. * * @return array */ public static function formRule($fields, $errors) { $hasData = $hasPrimary = $errors = array(); if (!empty($fields['openid']) && is_array($fields['openid'])) { foreach ($fields['openid'] as $instance => $blockValues) { $dataExists = CRM_Contact_Form_Contact::blockDataExists($blockValues); if ($dataExists) { $hasData[] = $instance; if (!empty($blockValues['is_primary'])) { $hasPrimary[] = $instance; if (!$primaryID && !empty($blockValues['openid'])) { $primaryID = $blockValues['openid']; } } } } if (empty($hasPrimary) && !empty($hasData)) { $errors["openid[1][is_primary]"] = ts('One OpenID should be marked as primary.'); } if (count($hasPrimary) > 1) { $errors["openid[" . array_pop($hasPrimary) . "][is_primary]"] = ts('Only one OpenID can be marked as primary.'); } } return $errors; }
/** * Global validation rules for the form. * * @param array $fields * Posted values of the form. * @param array $errors * List of errors to be posted back to the form. * @param CRM_Contact_Form_Inline_Email $form * * @return array */ public static function formRule($fields, $errors, $form) { $hasData = $hasPrimary = $errors = array(); if (!empty($fields['email']) && is_array($fields['email'])) { foreach ($fields['email'] as $instance => $blockValues) { $dataExists = CRM_Contact_Form_Contact::blockDataExists($blockValues); if ($dataExists) { $hasData[] = $instance; if (!empty($blockValues['is_primary'])) { $hasPrimary[] = $instance; } } } if (empty($hasPrimary) && !empty($hasData)) { $errors["email[1][is_primary]"] = ts('One email should be marked as primary.'); } if (count($hasPrimary) > 1) { $errors["email[" . array_pop($hasPrimary) . "][is_primary]"] = ts('Only one email can be marked as primary.'); } } if (!$hasData && !$form->contactHasName) { $errors["email[1][email]"] = ts('Contact with no name must have an email.'); } return $errors; }