function ca_load_predicate in Ubercart 6.2
Load a predicate by its ID.
Parameters
$pid: The ID of the predicate to load.
Return value
A fully loaded predicate array.
14 calls to ca_load_predicate()
- ca_actions_form in ca/
ca.admin.inc  - Build a form for adding and editing actions on a predicate.
 - ca_actions_form_update_actions in ca/
ca.admin.inc  - Updates a predicate's actions based on the values from an actions form.
 - ca_add_action in ca/
ca.module  - Add a new action to a predicate.
 - ca_add_condition in ca/
ca.module  - Add a new condition to a predicate.
 - ca_add_condition_group in ca/
ca.module  - Add a new condition group to a predicate.
 
File
- ca/
ca.module, line 960  - This is a demonstration module for the new conditional actions API.
 
Code
function ca_load_predicate($pid) {
  $predicate = array();
  // First attempt to load the predicate from the database.
  $result = db_query("SELECT * FROM {ca_predicates} WHERE pid = '%s'", $pid);
  if ($predicate = db_fetch_array($result)) {
    $predicate = ca_prepare_db_predicate($predicate);
  }
  else {
    // Otherwise look for it in the module defined predicates.
    $predicates = module_invoke_all('ca_predicate');
    drupal_alter('ca_predicate', $predicates);
    if (!empty($predicates[$pid])) {
      $predicate = $predicates[$pid];
    }
  }
  // Add the pid to the predicate so it can be resaved later.
  if (!empty($predicate)) {
    $predicate['#pid'] = $pid;
  }
  return $predicate;
}