コード例 #1
0
 /**
  * takes an associative array and creates a contact object
  *
  * the function extract all the params it needs to initialize the create a
  * contact object. the params array could contain additional unused name/value
  * pairs
  *
  * @param array  $params (reference ) an assoc array of name/value pairs
  * @param array $ids    the array that holds all the db ids
  *
  * @return object CRM_Contact_BAO_Individual object
  * @access public
  * @static
  */
 function add(&$params, &$ids)
 {
     if (!CRM_Contact_BAO_Individual::dataExists($params, $ids)) {
         return;
     }
     $individual =& new CRM_Contact_BAO_Individual();
     $individual->copyValues($params);
     $date = CRM_Utils_Array::value('birth_date', $params);
     if (is_array($date)) {
         $individual->birth_date = CRM_Utils_Date::format($date);
     } else {
         $individual->birth_date = preg_replace('/[^0-9]/', '', $date);
     }
     $individual->middle_name = CRM_Utils_Array::value('middle_name', $params);
     // hack to make db_do save a null value to a field
     if (!$individual->birth_date) {
         $individual->birth_date = 'NULL';
     }
     if (!array_key_exists('is_deceased', $params)) {
         $individual->is_deceased = 0;
     }
     $individual->id = CRM_Utils_Array::value('individual', $ids);
     return $individual->save();
 }