--- /var/www/drupal-6.14/modules/signup/signup.module 2009-09-19 09:42:58.000000000 +0800 +++ /var/www/demo/sites/all/modules/signup/signup.module 2009-10-09 16:30:05.000000000 +0800 @@ -1085,7 +1085,7 @@ } // Invoke hook_signup_cancel(). - module_invoke_all('signup_cancel', $signup, $node); + module_invoke_all('signup', 'signup_cancel', $signup, $node); // Delete the record from the {signup_log} table. db_query('DELETE FROM {signup_log} WHERE sid = %d', $signup->sid); @@ -1228,7 +1228,7 @@ $current_time = time(); // Allow other modules to inject data into the user's signup data. - $extra = module_invoke_all('signup_sign_up', $node, $account); + $extra = module_invoke_all('signup', 'signup_sign_up', $node, $account); $signup_info = array(); if (!empty($signup_form['signup_form_data'])) { $signup_info = $signup_form['signup_form_data']; @@ -1759,3 +1759,60 @@ } return $values; } + +/** + * Implementation of hook_hook_info(). + */ +function signup_hook_info() { + return array( + 'signup' => array( + 'signup' => array( + 'signup_sign_up' => array( + 'runs when' => t('After signing up a node'), + ), + 'signup_cancel' => array( + 'runs when' => t('After canceling signup of a node'), + ), + ), + ), + ); +} + +/** +* Implementation of hook_trigger_name(). +*/ +function signup_signup ($op, $a1, $a2) { + switch ($op) { + case 'signup_sign_up': + $account = $a2; + $aids = _trigger_get_hook_aids('signup', $op); + $context = array( + 'hook' => 'signup', + 'op' => $op, +// 'node' => $a1, +// 'account' => $a2, + ); + actions_do(array_keys($aids), $account, $context); + case 'signup_cancel': + $account = user_load($a1->uid); + $aids = _trigger_get_hook_aids('signup', $op); + $context = array( + 'hook' => 'signup', + 'op' => $op, +// 'signup' => $a1, +// 'node' => $a2, + ); + actions_do(array_keys($aids), $account, $context); + } +} + +/** + * Implementation of hook_menu_alter(). + * + * Work around loss of menu local task inheritance in Drupal 6.2. + */ +function signup_menu_alter(&$callbacks) { + if (module_exists('trigger') & isset($callbacks['admin/build/trigger/signup'])) { + $callbacks['admin/build/trigger/signup']['access callback'] = 'trigger_access_check'; + } +}