CRM add remaining missing comment blocks (autogenerated)
[civicrm-core.git] / CRM / Bridge / OG / Utils.php
CommitLineData
6a488035
TO
1<?php
2/*
3 +--------------------------------------------------------------------+
06b69b18 4 | CiviCRM version 4.5 |
6a488035 5 +--------------------------------------------------------------------+
06b69b18 6 | Copyright CiviCRM LLC (c) 2004-2014 |
6a488035
TO
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
9 | |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
13 | |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
18 | |
19 | You should have received a copy of the GNU Affero General Public |
20 | License and the CiviCRM Licensing Exception along |
21 | with this program; if not, contact CiviCRM LLC |
22 | at info[AT]civicrm[DOT]org. If you have questions about the |
23 | GNU Affero General Public License or the licensing of CiviCRM, |
24 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
25 +--------------------------------------------------------------------+
26*/
27
28/**
29 *
30 * @package CRM
06b69b18 31 * @copyright CiviCRM LLC (c) 2004-2014
6a488035
TO
32 * $Id$
33 *
34 */
35class CRM_Bridge_OG_Utils {
36 CONST aclEnabled = 1, syncFromCiviCRM = 1;
37
e0ef6999
EM
38 /**
39 * @return int
40 */
6a488035
TO
41 static function aclEnabled() {
42 return self::aclEnabled;
43 }
44
45 /**
46 * Switch to stop synchronization from CiviCRM
47 * This was always false before, and is always true
48 * now. Most likely, this needs to be a setting.
49 */
50 static function syncFromCiviCRM() {
51 // make sure that acls are not enabled
52 //RMT -- the following makes no f**king sense...
53 //return ! self::aclEnabled & self::syncFromCiviCRM;
54 return TRUE;
55 }
56
e0ef6999
EM
57 /**
58 * @param $ogID
59 *
60 * @return string
61 */
6a488035
TO
62 static function ogSyncName($ogID) {
63 return "OG Sync Group :{$ogID}:";
64 }
65
e0ef6999
EM
66 /**
67 * @param $ogID
68 *
69 * @return string
70 */
6a488035
TO
71 static function ogSyncACLName($ogID) {
72 return "OG Sync Group ACL :{$ogID}:";
73 }
74
e0ef6999
EM
75 /**
76 * @param $groupID
77 * @param bool $abort
78 *
79 * @return int|null|string
80 * @throws Exception
81 */
6a488035
TO
82 static function ogID($groupID, $abort = TRUE) {
83 $source = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group',
84 $groupID,
85 'source'
86 );
87
88 if (strpos($source, 'OG Sync Group') !== FALSE) {
89 preg_match('/:(\d+):$/', $source, $matches);
90 if (is_numeric($matches[1])) {
91 return $matches[1];
92 }
93 }
94 if ($abort) {
95 CRM_Core_Error::fatal();
96 }
97 return NULL;
98 }
99
e0ef6999
EM
100 /**
101 * @param $ufID
102 *
103 * @return int
104 * @throws Exception
105 */
6a488035
TO
106 static function contactID($ufID) {
107 $contactID = CRM_Core_BAO_UFMatch::getContactId($ufID);
108 if ($contactID) {
109 return $contactID;
110 }
111 // else synchronize contact for this user
112
113 $account = user_load($ufID);
114
115 CRM_Core_BAO_UFMatch::synchronizeUFMatch($account, $ufID, $account->mail, 'Drupal');
116 $contactID = CRM_Core_BAO_UFMatch::getContactId($ufID);
117 if (!$contactID) {
118 CRM_Core_Error::fatal();
119 }
120 return $contactID;
121 }
122
e0ef6999
EM
123 /**
124 * @param $source
125 * @param null $title
126 * @param bool $abort
127 *
128 * @return null|string
129 * @throws Exception
130 */
6a488035
TO
131 static function groupID($source, $title = NULL, $abort = FALSE) {
132 $query = "
133SELECT id
134 FROM civicrm_group
135 WHERE source = %1";
136 $params = array(1 => array($source, 'String'));
137
138 if ($title) {
139 $query .= " OR title = %2";
140 $params[2] = array($title, 'String');
141 }
142
143 $groupID = CRM_Core_DAO::singleValueQuery($query, $params);
144 if ($abort &&
145 !$groupID
146 ) {
147 CRM_Core_Error::fatal();
148 }
149
150 return $groupID;
151 }
152}
153