/** * 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(); }