Пример #1
0
 /**
  * @param int $groupID
  * @param $group
  */
 public static function groupAdd($groupID, $group)
 {
     $ogID = CRM_Bridge_OG_Utils::ogID($groupID, FALSE);
     $node = new StdClass();
     if ($ogID) {
         $node->nid = $ogID;
     }
     global $user;
     $node->uid = $user->uid;
     $node->title = $group->title;
     $node->type = 'og';
     $node->status = 1;
     // set the og values
     $node->og_description = $group->description;
     $node->og_selective = OF_OPEN;
     $node->og_register = 0;
     $node->og_directory = 1;
     node_save($node);
     // also change the source field of the group
     CRM_Core_DAO::setFieldValue('CRM_Contact_DAO_Group', $groupID, 'source', CRM_Bridge_OG_Utils::ogSyncName($node->nid));
 }
Пример #2
0
 static function og(&$params, $op)
 {
     $contactID = CRM_Bridge_OG_Utils::contactID($params['uf_id']);
     if (!$contactID) {
         CRM_Core_Error::fatal();
     }
     // get the group id of this OG
     $groupID = CRM_Bridge_OG_Utils::groupID(CRM_Bridge_OG_Utils::ogSyncName($params['og_id']), NULL, TRUE);
     $groupParams = array('contact_id' => $contactID, 'group_id' => $groupID, 'version' => 3);
     if ($op == 'add') {
         $groupParams['status'] = $params['is_active'] ? 'Added' : 'Pending';
         civicrm_api('GroupContact', 'Create', $groupParams);
     } else {
         $groupParams['status'] = 'Removed';
         civicrm_api('GroupContact', 'Delete', $groupParams);
     }
     if (CRM_Bridge_OG_Utils::aclEnabled() && $params['is_admin'] !== NULL) {
         // get the group ID of the acl group
         $groupID = CRM_Bridge_OG_Utils::groupID(CRM_Bridge_OG_Utils::ogSyncACLName($params['og_id']), NULL, TRUE);
         $groupParams = array('contact_id' => $contactID, 'group_id' => $groupID, 'status' => $params['is_admin'] ? 'Added' : 'Removed', 'version' => 3);
         if ($params['is_admin']) {
             civicrm_api('GroupContact', 'Create', $groupParams);
         } else {
             civicrm_api('GroupContact', 'Delete', $groupParams);
         }
     }
 }
Пример #3
0
 static function og(&$params, $op)
 {
     require_once 'CRM/Bridge/OG/Utils.php';
     $contactID = CRM_Bridge_OG_Utils::contactID($params['uf_id']);
     if (!$contactID) {
         CRM_Core_Error::fatal();
     }
     // get the group id of this OG
     $groupID = CRM_Bridge_OG_Utils::groupID(CRM_Bridge_OG_Utils::ogSyncName($params['og_id']), null, true);
     $groupParams = array('contact_id' => $contactID, 'group_id' => $groupID);
     require_once 'api/v2/GroupContact.php';
     if ($op == 'add') {
         $groupParams['status'] = $params['is_active'] ? 'Added' : 'Pending';
         civicrm_group_contact_add($groupParams);
     } else {
         $groupParams['status'] = 'Removed';
         civicrm_group_contact_remove($groupParams);
     }
     if (CRM_Bridge_OG_Utils::aclEnabled() && $params['is_admin'] !== null) {
         // get the group ID of the acl group
         $groupID = CRM_Bridge_OG_Utils::groupID(CRM_Bridge_OG_Utils::ogSyncACLName($params['og_id']), null, true);
         $groupParams = array('contact_id' => $contactID, 'group_id' => $groupID, 'status' => $params['is_admin'] ? 'Added' : 'Removed');
         if ($params['is_admin']) {
             civicrm_group_contact_add($groupParams);
         } else {
             civicrm_group_contact_remove($groupParams);
         }
     }
 }