| 1 |
<?php |
<?php |
| 2 |
// $Id: skypesupport.module,v 1.6 2006/05/21 19:28:53 stevemckenzie Exp $ |
// $Id: skypesupport.module,v 1.7 2006/05/23 05:50:53 stevemckenzie Exp $ |
| 3 |
|
|
| 4 |
/** |
/** |
| 5 |
* w00t skype support |
* w00t skype support |
| 74 |
/** |
/** |
| 75 |
* Implementation of hook_user() |
* Implementation of hook_user() |
| 76 |
*/ |
*/ |
| 77 |
function skypesupport_user($op, &$edit, &$user, $category = NULL) { |
function skypesupport_user($op, &$edit, &$account, $category = NULL) { |
| 78 |
$access = user_access('provide skype support', $user); |
global $user; |
| 79 |
|
|
| 80 |
|
$access = user_access('provide skype support'); |
| 81 |
|
|
| 82 |
switch($op) { |
switch($op) { |
| 83 |
// handle permissions |
// handle permissions |
| 84 |
case 'after_update': case 'update': case 'login': case 'form': |
case 'insert': case 'after_update': case 'update': case 'login': case 'form': |
| 85 |
$users = variable_get('skypesupport_users', NULL); |
$accounts = variable_get('skypesupport_users', NULL); |
| 86 |
if ($access) { |
$skype = skypesupport_check_user($account, true); |
| 87 |
if (!empty($users)) { |
if ($user->uid == $account->uid && $access) { |
| 88 |
foreach ($users as $key => $uid) { |
if (!empty($accounts)) { |
| 89 |
if ($uid == $user->uid) { |
if (!$skype) { |
| 90 |
$already_enabled = true; |
$accounts[] = $account->uid; |
| 91 |
break; |
variable_set('skypesupport_users', $accounts); |
|
} |
|
|
} |
|
|
if (!$already_enabled) { |
|
|
$users[] = $user->uid; |
|
|
variable_set('skypesupport_users', $users); |
|
| 92 |
} |
} |
| 93 |
} else { |
} else { |
| 94 |
variable_set('skypesupport_users', array($user->uid)); |
variable_set('skypesupport_users', array($account->uid)); |
| 95 |
} |
} |
| 96 |
} else { |
} else { |
| 97 |
if (!empty($users)) { |
if (!empty($accounts)) { |
| 98 |
foreach ($users as $key => $uid) { |
foreach ($accounts as $key => $uid) { |
| 99 |
if ($uid == $user->uid) { |
if ($uid == $account->uid) { |
| 100 |
unset($users[$key]); |
unset($accounts[$key]); |
| 101 |
variable_set('skypesupport_users', $users); |
variable_set('skypesupport_users', $accounts); |
| 102 |
return; |
return; |
| 103 |
} |
} |
| 104 |
} |
} |
| 107 |
break; |
break; |
| 108 |
// handle single user status if a support user |
// handle single user status if a support user |
| 109 |
case 'view': |
case 'view': |
| 110 |
if ($skype = skypesupport_check_user($user)) { |
if ($skype = skypesupport_check_user($account)) { |
| 111 |
theme('skypesupport_css'); |
theme('skypesupport_css'); |
| 112 |
$output = theme('skypesupport_user', $user, $skype); |
$output = theme('skypesupport_user', $account, $skype); |
| 113 |
$items[] = array('class' => 'skype_support_user', 'value' => $output); |
$items[] = array('class' => 'skype_support_user', 'value' => $output); |
| 114 |
return array(t('Skype Support') => $items); |
return array(t('Skype Support') => $items); |
| 115 |
} elseif($skype = skypesupport_check_user($user, true)) { |
} elseif($skype = skypesupport_check_user($account, true)) { |
| 116 |
theme('skypesupport_css'); |
theme('skypesupport_css'); |
| 117 |
$output = theme('skypesupport_user_status', $user, $skype); |
$output = theme('skypesupport_user_status', $account, $skype); |
| 118 |
$items[] = array('class' => 'skype_support_user', 'value' => $output); |
$items[] = array('class' => 'skype_support_user', 'value' => $output); |
| 119 |
return array(t('Skype Support') => $items); |
return array(t('Skype Support') => $items); |
| 120 |
} |
} |