summaryrefslogtreecommitdiff
path: root/modules/trigger
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2009-08-22 15:35:36 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2009-08-22 15:35:36 +0000
commitbfb487627efcfff7a091aee85a7696dde5477188 (patch)
treed83080e7c93aa92abc683c694ae5e68dc99ca636 /modules/trigger
parenta3215984932bc74ebd3514544fa11a0a536360bc (diff)
downloadbrdo-bfb487627efcfff7a091aee85a7696dde5477188.tar.gz
brdo-bfb487627efcfff7a091aee85a7696dde5477188.tar.bz2
#296322 by cwgordon7 andSenpai: Fix horribly broken trigger module and add tests so we don't do it anymore.
Diffstat (limited to 'modules/trigger')
-rw-r--r--modules/trigger/trigger.admin.inc12
-rw-r--r--modules/trigger/trigger.module56
2 files changed, 16 insertions, 52 deletions
diff --git a/modules/trigger/trigger.admin.inc b/modules/trigger/trigger.admin.inc
index 22f26a704..51d004036 100644
--- a/modules/trigger/trigger.admin.inc
+++ b/modules/trigger/trigger.admin.inc
@@ -23,11 +23,13 @@ function trigger_assign($type = NULL) {
$build = array();
$hooks = module_invoke_all('hook_info');
- foreach ($hooks as $module => $hook) {
- if (isset($hook[$type])) {
- foreach ($hook[$type] as $op => $description) {
- $form_id = 'trigger_' . $type . '_' . $op . '_assign_form';
- $build[$form_id] = drupal_get_form($form_id, $type, $op, $description['runs when']);
+ foreach ($hooks as $module => $module_hooks) {
+ if ($module == $type) {
+ foreach ($module_hooks as $hook => $data) {
+ foreach ($data as $op => $description) {
+ $form_id = 'trigger_' . $hook . '_' . $op . '_assign_form';
+ $build[$form_id] = drupal_get_form($form_id, $hook, $op, $description['runs when']);
+ }
}
}
}
diff --git a/modules/trigger/trigger.module b/modules/trigger/trigger.module
index e810755c8..d6fedc64f 100644
--- a/modules/trigger/trigger.module
+++ b/modules/trigger/trigger.module
@@ -39,47 +39,15 @@ function trigger_menu() {
'title' => 'Triggers',
'description' => 'Tell Drupal when to execute actions.',
'page callback' => 'trigger_assign',
- 'access callback' => 'trigger_access_check',
- 'access arguments' => array('node'),
- );
- // We don't use a menu wildcard here because these are tabs,
- // not invisible items.
- $items['admin/structure/trigger/node'] = array(
- 'title' => 'Content',
- 'page callback' => 'trigger_assign',
- 'page arguments' => array('node'),
- 'access callback' => 'trigger_access_check',
- 'access arguments' => array('node'),
- 'type' => MENU_LOCAL_TASK,
- );
- $items['admin/structure/trigger/user'] = array(
- 'title' => 'Users',
- 'page callback' => 'trigger_assign',
- 'page arguments' => array('user'),
- 'access callback' => 'trigger_access_check',
- 'access arguments' => array('user'),
- 'type' => MENU_LOCAL_TASK,
- );
- $items['admin/structure/trigger/comment'] = array(
- 'title' => 'Comments',
- 'page callback' => 'trigger_assign',
- 'page arguments' => array('comment'),
- 'access callback' => 'trigger_access_check',
- 'access arguments' => array('comment'),
- 'type' => MENU_LOCAL_TASK,
- );
- $items['admin/structure/trigger/taxonomy'] = array(
- 'title' => 'Taxonomy',
- 'page callback' => 'trigger_assign',
- 'page arguments' => array('taxonomy'),
- 'access callback' => 'trigger_access_check',
- 'access arguments' => array('taxonomy'),
- 'type' => MENU_LOCAL_TASK,
+ 'access arguments' => array('administer actions'),
);
+
+ // Explicitly define the system menu item so we can label it "cron" rather
+ // than "system".
$items['admin/structure/trigger/cron'] = array(
'title' => 'Cron',
'page callback' => 'trigger_assign',
- 'page arguments' => array('cron'),
+ 'page arguments' => array('system'),
'access arguments' => array('administer actions'),
'type' => MENU_LOCAL_TASK,
);
@@ -88,11 +56,12 @@ function trigger_menu() {
// their hooks and have actions assignable to them.
$hooks = module_invoke_all('hook_info');
foreach ($hooks as $module => $hook) {
- // We've already done these.
- if (in_array($module, array('node', 'comment', 'user', 'system', 'taxonomy'))) {
+ // We've already done system.module.
+ if ($module == 'system') {
continue;
}
$info = db_select('system')
+ ->fields('system', array('info'))
->condition('name', $module)
->execute()
->fetchField();
@@ -102,7 +71,7 @@ function trigger_menu() {
'title' => $nice_name,
'page callback' => 'trigger_assign',
'page arguments' => array($module),
- 'access arguments' => array($module),
+ 'access arguments' => array('administer actions'),
'type' => MENU_LOCAL_TASK,
);
}
@@ -119,13 +88,6 @@ function trigger_menu() {
}
/**
- * Access callback for menu system.
- */
-function trigger_access_check($module) {
- return (module_exists($module) && user_access('administer actions'));
-}
-
-/**
* Get the aids of actions to be executed for a hook-op combination.
*
* @param $hook