| 1 |
<?php |
<?php |
| 2 |
// $Id: buddylist_api.module,v 1.1.2.2 2008/07/25 16:49:10 nodestroy Exp $ |
// $Id: buddylist_api.module,v 1.1.2.3 2008/07/29 07:30:53 nodestroy Exp $ |
| 3 |
|
|
| 4 |
/** |
/** |
| 5 |
* @file |
* @file |
| 8 |
* contains core buddylist_api functions to generate social networks |
* contains core buddylist_api functions to generate social networks |
| 9 |
*/ |
*/ |
| 10 |
|
|
| 11 |
|
if (module_exists('rules')) |
| 12 |
|
include_once 'buddylist_api.rules.inc'; |
| 13 |
|
|
| 14 |
/** |
/** |
| 15 |
* Public API for deleting a relationship. |
* Public API for deleting a relationship. |
| 16 |
* |
* |
| 58 |
'requester_id' => $requester->uid, |
'requester_id' => $requester->uid, |
| 59 |
'requestee_id' => $requestee->uid, |
'requestee_id' => $requestee->uid, |
| 60 |
'rtid' => $type->rtid, |
'rtid' => $type->rtid, |
| 61 |
|
'init_id' => $requester->uid, |
| 62 |
); |
); |
| 63 |
|
|
| 64 |
|
if($type->oneway) { |
| 65 |
|
$relationship->state = 1; |
| 66 |
|
} |
| 67 |
|
|
| 68 |
return buddylist_api_save_relationship($relationship); |
return buddylist_api_save_relationship($relationship); |
| 69 |
} |
} |
| 132 |
} |
} |
| 133 |
|
|
| 134 |
/** |
/** |
| 135 |
* Load a relationship |
* Loads relationship(s) |
| 136 |
* |
* |
| 137 |
* @param $par |
* @param $par |
| 138 |
* desc |
* desc |
| 162 |
$relationships[$relationship->rtid] = $relationship; |
$relationships[$relationship->rtid] = $relationship; |
| 163 |
} |
} |
| 164 |
|
|
| 165 |
_buddylist_api_invoke('load', $relationship); |
_buddylist_api_invoke('load', $relationships); |
| 166 |
|
|
| 167 |
return $relationships; |
return $relationships; |
| 168 |
} |
} |
| 169 |
|
|
| 170 |
|
|
| 171 |
|
function buddylist_api_load_relationships_between(&$userA, &$userB, $count = FALSE, $active = TRUE) { |
| 172 |
|
$what = $count ? "count(*)" : "*"; |
| 173 |
|
$query = "SELECT ". $what ." FROM {buddylist_relations} WHERE requester_id = %d AND requestee_id = %d"; |
| 174 |
|
|
| 175 |
|
if ($active) |
| 176 |
|
$query.= ' AND state = 1'; |
| 177 |
|
else |
| 178 |
|
$query.= ' AND state = 0'; |
| 179 |
|
|
| 180 |
|
$result = db_query($query, $userA->uid, $userB->uid); |
| 181 |
|
|
| 182 |
|
if ($count) { |
| 183 |
|
return (int)(db_result($result)); |
| 184 |
|
} |
| 185 |
|
$relationships = array(); |
| 186 |
|
|
| 187 |
|
while ($relationship = db_fetch_object($result)) { |
| 188 |
|
$relationships[$relationship->rtid] = $relationship; |
| 189 |
|
} |
| 190 |
|
|
| 191 |
|
_buddylist_api_invoke('load', $relationships); |
| 192 |
|
|
| 193 |
|
return $relationships; |
| 194 |
|
} |
| 195 |
|
|
| 196 |
|
|
| 197 |
/** |
/** |
| 198 |
* RELATIONTYPES |
* RELATIONTYPES |
| 302 |
* A Relationtype object |
* A Relationtype object |
| 303 |
*/ |
*/ |
| 304 |
function buddylist_api_rtype_delete(&$rtype) { |
function buddylist_api_rtype_delete(&$rtype) { |
| 305 |
$rtype = (object)$rtype; |
$loaded_rtype = buddylist_api_rtype_load(array('mname' => $rtype->mname)); |
|
|
|
|
// If the relationtype comes from an external module, we have to search for the right rtid |
|
|
if($rtype->type != 1) { |
|
|
$rtypes = buddylist_api_rtypes_load(); |
|
|
foreach($rtypes as $currenttype) { |
|
|
if($currenttype->name == $rtype->name) |
|
|
$rtype->rtid = $currenttype->rtid; |
|
|
} |
|
|
} |
|
| 306 |
|
|
| 307 |
// Delete all entries in relations table with that rtid + delete relationtype |
// Delete all entries in relations table with that rtid + delete relationtype |
| 308 |
db_query('DELETE FROM {buddylist_relations} WHERE rtid = %d', $rtype->rtid); |
db_query('DELETE FROM {buddylist_relations} WHERE rtid = %d', $loaded_rtype->rtid); |
| 309 |
db_query('DELETE FROM {buddylist_relationtypes} WHERE rtid = %d', $rtype->rtid); |
db_query('DELETE FROM {buddylist_relationtypes} WHERE mname = %d', $rtype->mname); |
| 310 |
|
|
| 311 |
_buddylist_api_invoke('delete_rtype', $rtype, TRUE); |
_buddylist_api_invoke('delete_rtype', $rtype, TRUE); |
| 312 |
} |
} |
| 317 |
} |
} |
| 318 |
|
|
| 319 |
|
|
| 320 |
/* |
/** |
| 321 |
* HOOKS |
* HOOKS |
| 322 |
*/ |
*/ |
| 323 |
|
|
| 329 |
db_query("DELETE FROM {buddylist_relations} WHERE requester_id = %d OR requestee_id = %d", $account->uid, $account->uid); |
db_query("DELETE FROM {buddylist_relations} WHERE requester_id = %d OR requestee_id = %d", $account->uid, $account->uid); |
| 330 |
} |
} |
| 331 |
} |
} |
| 332 |
|
|
| 333 |
|
/** |
| 334 |
|
* HELPER FUNCTIONS |
| 335 |
|
*/ |
| 336 |
|
function buddylist_api_translation() { |
| 337 |
|
return array(); |
| 338 |
|
} |