You are here

function actions_save in Drupal 6

Same name and namespace in other branches
  1. 7 includes/actions.inc \actions_save()

Save an action and its associated user-supplied parameter values to the database.

Parameters

$function: The name of the function to be called when this action is performed.

$type: The type of action, to describe grouping and/or context, e.g., 'node', 'user', 'comment', or 'system'.

$params: An associative array with parameter names as keys and parameter values as values.

$desc: A user-supplied description of this particular action, e.g., 'Send e-mail to Jim'.

$aid: The ID of this action. If omitted, a new action is created.

Return value

The ID of the action.

1 call to actions_save()
system_actions_configure_submit in modules/system/system.module
Process system_actions_configure form submissions.

File

includes/actions.inc, line 364
This is the actions engine for executing stored actions.

Code

function actions_save($function, $type, $params, $desc, $aid = NULL) {
  $serialized = serialize($params);
  if ($aid) {
    db_query("UPDATE {actions} SET callback = '%s', type = '%s', parameters = '%s', description = '%s' WHERE aid = '%s'", $function, $type, $serialized, $desc, $aid);
    watchdog('actions', 'Action %action saved.', array(
      '%action' => $desc,
    ));
  }
  else {

    // aid is the callback for singleton actions so we need to keep a
    // separate table for numeric aids.
    db_query('INSERT INTO {actions_aid} VALUES (default)');
    $aid = db_last_insert_id('actions_aid', 'aid');
    db_query("INSERT INTO {actions} (aid, callback, type, parameters, description) VALUES ('%s', '%s', '%s', '%s', '%s')", $aid, $function, $type, $serialized, $desc);
    watchdog('actions', 'Action %action created.', array(
      '%action' => $desc,
    ));
  }
  return $aid;
}