コード例 #1
0
ファイル: UFGroup.php プロジェクト: rollox/civicrm-core
 /**
  * Make uf join entries for an uf group.
  *
  * @param array $params
  *   (reference) an assoc array of name/value pairs.
  * @param int $ufGroupId
  *   Ufgroup id.
  */
 public static function createUFJoin(&$params, $ufGroupId)
 {
     $groupTypes = CRM_Utils_Array::value('uf_group_type', $params);
     // 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
     $menuRebuild = FALSE;
     foreach ($allUFGroupType as $key => $value) {
         $joinParams = array();
         $joinParams['uf_group_id'] = $ufGroupId;
         $joinParams['module'] = $key;
         if ($key == 'User Account') {
             $menuRebuild = TRUE;
         }
         if (array_key_exists($key, $groupTypes) && !in_array($key, $ufGroupRecord)) {
             // insert a new record
             CRM_Core_BAO_UFGroup::addUFJoin($joinParams);
         } elseif (!array_key_exists($key, $groupTypes) && in_array($key, $ufGroupRecord)) {
             // delete a record for existing ufgroup
             CRM_Core_BAO_UFGroup::delUFJoin($joinParams);
         }
     }
     //update the weight
     $query = "\nUPDATE civicrm_uf_join\nSET    weight = %1\nWHERE  uf_group_id = %2\nAND    ( entity_id IS NULL OR entity_id <= 0 )\n";
     $p = array(1 => array($params['weight'], 'Integer'), 2 => array($ufGroupId, 'Integer'));
     CRM_Core_DAO::executeQuery($query, $p);
     // do a menu rebuild if we are on drupal, so it gets all the new menu entries
     // for user account
     $config = CRM_Core_Config::singleton();
     if ($menuRebuild && $config->userSystem->is_drupal) {
         menu_rebuild();
     }
 }
コード例 #2
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);
 }
コード例 #3
0
ファイル: Group.php プロジェクト: prashantgajare/civicrm-core
 /**
  * Process the form
  *
  * @return void
  * @access public
  */
 public function postProcess()
 {
     if ($this->_action & CRM_Core_Action::DELETE) {
         $title = CRM_Core_BAO_UFGroup::getTitle($this->_id);
         CRM_Core_BAO_UFGroup::del($this->_id);
         CRM_Core_Session::setStatus(ts("Your CiviCRM Profile '%1' has been deleted.", array(1 => $title)), ts('Profile Deleted'), 'success');
     } elseif ($this->_action & CRM_Core_Action::DISABLE) {
         $ufJoinParams = array('uf_group_id' => $this->_id);
         CRM_Core_BAO_UFGroup::delUFJoin($ufJoinParams);
         CRM_Core_BAO_UFGroup::setIsActive($this->_id, 0);
     } else {
         // get the submitted form values.
         $params = $ids = array();
         $params = $this->controller->exportValues($this->_name);
         if (!array_key_exists('is_active', $params)) {
             $params['is_active'] = 0;
         }
         if ($this->_action & CRM_Core_Action::UPDATE) {
             $ids['ufgroup'] = $this->_id;
             // CRM-5284
             // lets skip trying to mess around with profile weights and allow the user to do as needed.
         } elseif ($this->_action & CRM_Core_Action::ADD) {
             $session = CRM_Core_Session::singleton();
             $params['created_id'] = $session->get('userID');
             $params['created_date'] = date('YmdHis');
         }
         // create uf group
         $ufGroup = CRM_Core_BAO_UFGroup::add($params, $ids);
         if (!empty($params['is_active'])) {
             //make entry in uf join table
             CRM_Core_BAO_UFGroup::createUFJoin($params, $ufGroup->id);
         } elseif ($this->_id) {
             // this profile has been set to inactive, delete all corresponding UF Join's
             $ufJoinParams = array('uf_group_id' => $this->_id);
             CRM_Core_BAO_UFGroup::delUFJoin($ufJoinParams);
         }
         if ($this->_action & CRM_Core_Action::UPDATE) {
             $url = CRM_Utils_System::url('civicrm/admin/uf/group', 'reset=1&action=browse');
             CRM_Core_Session::setStatus(ts("Your CiviCRM Profile '%1' has been saved.", array(1 => $ufGroup->title)), ts('Profile Saved'), 'success');
         } else {
             // Jump directly to adding a field if popups are disabled
             $action = CRM_Core_Resources::singleton()->ajaxPopupsEnabled ? '' : '/add';
             $url = CRM_Utils_System::url("civicrm/admin/uf/group/field{$action}", 'reset=1&gid=' . $ufGroup->id . '&action=' . ($action ? 'add' : 'browse'));
             CRM_Core_Session::setStatus(ts('Your CiviCRM Profile \'%1\' has been added. You can add fields to this profile now.', array(1 => $ufGroup->title)), ts('Profile Added'), 'success');
         }
         $session = CRM_Core_Session::singleton();
         $session->replaceUserContext($url);
     }
     // update cms integration with registration / my account
     CRM_Utils_System::updateCategories();
 }
コード例 #4
0
ファイル: Group.php プロジェクト: hampelm/Ginsberg-CiviDemo
 /**
  * Process the form
  *
  * @return void
  * @access public
  */
 public function postProcess()
 {
     if ($this->_action & CRM_Core_Action::DELETE) {
         $title = CRM_Core_BAO_UFGroup::getTitle($this->_id);
         CRM_Core_BAO_UFGroup::del($this->_id);
         CRM_Core_Session::setStatus(ts("Your CiviCRM Profile '%1' has been deleted.", array(1 => $title)));
     } else {
         if ($this->_action & CRM_Core_Action::DISABLE) {
             $ufJoinParams = array('uf_group_id' => $this->_id);
             CRM_Core_BAO_UFGroup::delUFJoin($ufJoinParams);
             require_once "CRM/Core/BAO/UFGroup.php";
             CRM_Core_BAO_UFGroup::setIsActive($this->_id, 0);
         } else {
             // get the submitted form values.
             $params = $ids = array();
             $params = $this->controller->exportValues($this->_name);
             if (!array_key_exists('is_active', $params)) {
                 $params['is_active'] = 0;
             }
             if ($this->_action & CRM_Core_Action::UPDATE) {
                 $ids['ufgroup'] = $this->_id;
                 // CRM-5284
                 // lets skip trying to mess around with profile weights and allow the user to do as needed.
             } else {
                 if ($this->_action & CRM_Core_Action::ADD) {
                     $session = CRM_Core_Session::singleton();
                     $params['created_id'] = $session->get('userID');
                     $params['created_date'] = date('YmdHis');
                 }
             }
             // create uf group
             $ufGroup = CRM_Core_BAO_UFGroup::add($params, $ids);
             if (CRM_Utils_Array::value('is_active', $params)) {
                 //make entry in uf join table
                 CRM_Core_BAO_UFGroup::createUFJoin($params, $ufGroup->id);
             } else {
                 if ($this->_id) {
                     // this profile has been set to inactive, delete all corresponding UF Join's
                     $ufJoinParams = array('uf_group_id' => $this->_id);
                     CRM_Core_BAO_UFGroup::delUFJoin($ufJoinParams);
                 }
             }
             if ($this->_action & CRM_Core_Action::UPDATE) {
                 CRM_Core_Session::setStatus(ts("Your CiviCRM Profile '%1' has been saved.", array(1 => $ufGroup->title)));
             } else {
                 $url = CRM_Utils_System::url('civicrm/admin/uf/group/field/add', 'reset=1&action=add&gid=' . $ufGroup->id);
                 CRM_Core_Session::setStatus(ts('Your CiviCRM Profile \'%1\' has been added. You can add fields to this profile now.', array(1 => $ufGroup->title)));
                 $session = CRM_Core_Session::singleton();
                 $session->replaceUserContext($url);
             }
         }
     }
     // update cms integration with registration / my account
     require_once 'CRM/Utils/System.php';
     CRM_Utils_System::updateCategories();
 }