示例#1
0
 /**
  * Function to make uf join entries for an uf group
  *
  * @param array $params       (reference) an assoc array of name/value pairs
  * @param int   $ufGroupId    ufgroup id
  *
  * @return void
  * @access public
  * @static
  */
 function createUFJoin(&$params, $ufGroupId)
 {
     $groupTypes = $params['uf_group_type'];
     // get ufjoin records for uf group
     $ufGroupRecord =& CRM_Core_BAO_UFGroup::getUFJoinRecord($ufGroupId);
     // get the list of all ufgroup types
     $allUFGroupType =& CRM_Core_SelectValues::ufGroupTypes();
     // this fix is done to prevent warning generated by array_key_exits incase of empty array is given as input
     if (!is_array($groupTypes)) {
         $groupTypes = array();
     }
     // this fix is done to prevent warning generated by array_key_exits incase of empty array is given as input
     if (!is_array($ufGroupRecord)) {
         $ufGroupRecord = array();
     }
     // check which values has to be inserted/deleted for contact
     foreach ($allUFGroupType as $key => $value) {
         $joinParams = array();
         $joinParams['uf_group_id'] = $ufGroupId;
         $joinParams['module'] = $key;
         if (array_key_exists($key, $groupTypes) && !in_array($key, $ufGroupRecord)) {
             // insert a new record
             CRM_Core_BAO_UFGroup::addUFJoin($joinParams);
         } else {
             if (!array_key_exists($key, $groupTypes) && in_array($key, $ufGroupRecord)) {
                 // delete a record for existing ufgroup
                 CRM_Core_BAO_UFGroup::delUFJoin($joinParams);
             }
         }
     }
     //update the weight for remaining group
     CRM_Core_BAO_UFGroup::updateWeight($params['weight'], $ufGroupId);
 }