Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
 /**
  * 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;
 }