| 70 |
/** |
/** |
| 71 |
* Implementation of hook_user_import_after_save(). |
* Implementation of hook_user_import_after_save(). |
| 72 |
*/ |
*/ |
| 73 |
function subscribed_user_import_after_save($settings, $account, $password, $fields, $updated) { |
function subscribed_user_import_after_save($settings, $account, $password, $fields, $updated, $update_setting_per_module) { |
| 74 |
/** |
|
|
* @todo change to new update architecture |
|
|
*/ |
|
|
if (!module_exists('publication') || !module_exists('schedule') || !module_exists('identity_hash') || empty($settings['options']['subscribed'])) return; |
|
|
|
|
|
$subscribed_settings = $settings['options']['subscribed']; |
|
| 75 |
$uid = $account->uid; |
$uid = $account->uid; |
| 76 |
|
$subscribed_settings = $settings['options']['subscribed']; |
| 77 |
if (is_array($subscribed_settings)) { |
$update_setting = $update_setting_per_module['subscribed']; |
| 78 |
|
|
| 79 |
|
if (!module_exists('publication') || !module_exists('schedule') || !module_exists('identity_hash')) return; |
| 80 |
|
if (empty($subscribed_settings) || !is_array($subscribed_settings)) return; |
| 81 |
|
if ($updated && $update_setting == UPDATE_NONE) return; |
| 82 |
|
|
| 83 |
foreach($subscribed_settings as $type => $type_subscriptions) { |
if ($updated) $subscribed = subscribed_subscriptions_user_all_select_db($uid); |
| 84 |
|
|
| 85 |
|
|
| 86 |
|
foreach($subscribed_settings as $type => $type_subscriptions) { |
| 87 |
|
|
| 88 |
$subscriptions = $type_subscriptions; |
$subscriptions = $type_subscriptions; |
| 89 |
|
|
| 90 |
foreach($type_subscriptions as $publication_id => $schedule) { |
foreach($type_subscriptions as $publication_id => $schedule) { |
| 91 |
if (empty($schedule[0])) unset($subscriptions[$publication_id]); |
|
| 92 |
|
if (!$updated || ($updated && $update_setting == UPDATE_REPLACE)) { |
| 93 |
|
if (empty($schedule[0])) unset($subscriptions[$publication_id]); |
| 94 |
} |
} |
| 95 |
|
elseif ($updated && $update_setting == UPDATE_ADD) { |
| 96 |
|
if (empty($subscribed[$type][$publication_id]) && !empty($subscriptions[$publication_id][0])) { |
| 97 |
|
$update_subscriptions = TRUE; |
| 98 |
|
} |
| 99 |
|
else { |
| 100 |
|
$subscriptions[$publication_id][0] = $subscribed[$type][$publication_id][$schedule[0]]['schedule_id']; |
| 101 |
|
if (empty($subscribed[$type][$publication_id][$schedule[0]])) unset($subscriptions[$publication_id]); |
| 102 |
|
} |
| 103 |
|
} |
| 104 |
|
} |
| 105 |
|
|
| 106 |
|
$publications = publication_select_publications_and_terms($type); |
| 107 |
|
|
| 108 |
$publications = publication_select_publications_and_terms($type); |
if (!empty($publications) && !empty($subscriptions)) { |
| 109 |
|
|
| 110 |
|
if (!$updated || ($updated && $update_setting == UPDATE_REPLACE) || ($updated && $update_setting == UPDATE_ADD && $update_subscriptions)) { |
| 111 |
|
|
| 112 |
|
subscribed_set_subscriptions($type, $uid, $publications, $subscriptions); |
| 113 |
|
subscribed_set_subscriptions_terms($type, $uid, $publications, $subscriptions); |
| 114 |
|
identity_hash_set_hash($uid); |
| 115 |
|
} |
| 116 |
|
} |
| 117 |
|
} |
| 118 |
|
|
|
if (!empty($publications) && !empty($subscriptions)) { |
|
|
subscribed_set_subscriptions($type, $uid, $publications, $subscriptions); |
|
|
subscribed_set_subscriptions_terms($type, $uid, $publications, $subscriptions); |
|
|
identity_hash_set_hash($uid); |
|
|
} |
|
|
} |
|
|
} |
|
| 119 |
return; |
return; |
| 120 |
} |
} |