| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740 | 
							- <?php
 
- /**
 
-  * @file
 
-  * Contains contains per-class functions, that are deprecated.
 
-  *
 
-  * Usage: The new code can be tested, by removing this file-include from workflow.module.
 
-  */
 
- /**
 
-  * Deprecated functions related to table {workflows}.
 
-  *
 
-  * These are replaced by methods of class Workflow.
 
-  */
 
- /**
 
-  * Get all workflows.
 
-  *
 
-  * @deprecated: workflow_get_workflows --> workflow_load_multiple
 
-  */
 
- function workflow_get_workflows() {
 
-   return workflow_load_multiple();
 
- }
 
- /**
 
-  * Get a specific workflow, wid is a unique ID.
 
-  *
 
-  * @deprecated: workflow_get_workflows_by_wid --> workflow_load_single
 
-  */
 
- function workflow_get_workflows_by_wid($wid, $reset = FALSE) {
 
-   return workflow_load_single($wid, $reset);
 
- }
 
- /**
 
-  * Get a specific workflow, name is a unique ID.
 
-  *
 
-  * @deprecated: workflow_get_workflows_by_name --> workflow_load_by_name
 
-  */
 
- function workflow_get_workflows_by_name($name) {
 
-   return workflow_load_by_name($name);
 
- }
 
- /**
 
-  * Helper function, to get the label of a given workflow.
 
-  *
 
-  * @deprecated: workflow_get_wid_label --> workflow_label
 
-  */
 
- function workflow_get_wid_label($wid) {
 
-   if (empty($wid)) {
 
-     $output = t('No workflow');
 
-   }
 
-   elseif ($workflow = workflow_load_single($wid)) {
 
-     $output = $workflow->label();
 
-   }
 
-   else {
 
-     $output = t('Unknown workflow');
 
-   }
 
-   return $output;
 
- }
 
- /**
 
-  * Return the ID of the creation state for this workflow.
 
-  *
 
-  * @param mixed $wid
 
-  *   The ID of the workflow.
 
-  *
 
-  * @return int
 
-  *
 
-  * @deprecated: workflow_get_creation_state_by_wid($wid) --> $workflow->getCreationSid().
 
-  */
 
- function workflow_get_creation_state_by_wid($wid) {
 
-   $sid = 0;
 
-   if ($workflow = workflow_load_single($wid)) {
 
-     $sid = $workflow->getCreationSid();
 
-   }
 
-   return $sid;
 
- }
 
- /**
 
-  * Return the ID of the creation state given a content type.
 
-  *
 
-  * @param string $type
 
-  *   The type of the content.
 
-  */
 
- //function workflow_get_creation_state_by_type($type) {
 
- //  $sid = FALSE;
 
- //
 
- //  if ($workflow = workflow_get_workflows_by_type($type, 'node')) {
 
- //    $sid = $workflow->getCreationSid();
 
- //  }
 
- //  return $sid;
 
- //}
 
- /**
 
-  * Given information, update or insert a new workflow. Returns data by ref. (like node_save).
 
-  *
 
-  * @deprecated: workflow_update_workflows() --> Workflow->save()
 
-  */
 
- //function workflow_update_workflows(&$data, $create_creation_state = TRUE) {
 
- //  $data = (object) $data;
 
- //  if (isset($data->tab_roles) && is_array($data->tab_roles)) {
 
- //    $data->tab_roles = serialize($data->tab_roles);
 
- //  }
 
- //
 
- //  if (isset($data->wid) && workflow_load_single($data->wid)) {
 
- //    drupal_write_record('workflows', $data, 'wid');
 
- //  }
 
- //  else {
 
- //    drupal_write_record('workflows', $data);
 
- //    if ($create_creation_state) {
 
- //      $state_data = array(
 
- //        'wid' => $data->wid,
 
- //        'state' => t(WORKFLOW_CREATION_STATE_NAME),
 
- //        'sysid' => WORKFLOW_CREATION,
 
- //        'weight' => WORKFLOW_CREATION_DEFAULT_WEIGHT,
 
- //        );
 
- //
 
- //      workflow_update_workflow_states($state_data);
 
- //      // @TODO consider adding state data to return here as part of workflow data structure.
 
- //      // That way we could past structs and transitions around as a data object as a whole.
 
- //      // Might make clone easier, but it might be a little hefty for our needs?
 
- //    }
 
- //  }
 
- //}
 
- /**
 
-  * Given a wid, delete the workflow and its data.
 
-  *
 
-  * @deprecated: workflow_delete_workflows_by_wid() --> Workflow::delete().
 
-  */
 
- function workflow_delete_workflows_by_wid($wid) {
 
-   $workflow = workflow_load_single($wid);
 
-   $workflow->delete();
 
- }
 
- /**
 
-  * Deprecated functions related to table {workflow_states}.
 
-  *
 
-  * These are replaced by methods of class WorkflowState.
 
-  */
 
- /**
 
-  * Get all active states in the system.
 
-  *
 
-  * @return array
 
-  *   A keyed array $id => $name, of all active states.
 
-  *
 
-  * @deprecated: workflow_get_workflow_states_all() --> Workflow::getOptions()
 
-  */
 
- function workflow_get_workflow_states_all() {
 
-   // Get all states, only where active.
 
-   return workflow_get_workflow_state_names($wid = 0, $grouped = FALSE, $all = FALSE);
 
- }
 
- /**
 
-  * Menu access control callback. Determine access to Workflow tab.
 
-  *
 
-  * @deprecated workflow_node_tab_access() --> workflow_tab_access().
 
-  */
 
- function workflow_node_tab_access($node = NULL) {
 
-   if ($node == NULL) {
 
-     return FALSE;
 
-   }
 
-   return workflow_tab_access('node', $node);
 
- }
 
- /**
 
-  * Get the states current user can move to for a given node.
 
-  *
 
-  * @param object $node
 
-  *   The node to check.
 
-  * @param bool $force
 
-  *   A switch to enable access to all states (e.g., for Rules).
 
-  * @param State $state
 
-  *   The predetermined state object (v7.x-1.3: new parameter for Workflow Field).
 
-  *
 
-  * @return array
 
-  *   Array of transitions.
 
-  *
 
-  * @deprecated workflow_field_choices() --> WorkflowState->getOptions()
 
-  */
 
- function workflow_field_choices($node, $force = FALSE, $state = NULL) {
 
-   global $user; // Alert: In 7.x-2.4, getOptions() has a new $user parameter.
 
-   $choices = array();
 
-   if (!$node) {
 
-     // If no node is given, no result. (e.g., on a Field settings page.)
 
-     return $choices;
 
-   }
 
-   if ($state) {
 
-     // This is used in Field API. A state object is already passed in.
 
-   }
 
-   else {
 
-     // This is used in Node API.
 
-     $field_name = ''; // An explicit var is needed.
 
-     $current_sid = workflow_node_current_state($node, 'node', $field_name);
 
-     $state = workflow_state_load_single($current_sid);
 
-   }
 
-   return $state->getOptions('node', $node, '', $user, $force);
 
- }
 
- /**
 
-  * Determine if the Workflow Form must be shown.
 
-  * If not, a formatter must be shown, since there are no valid options.
 
-  *
 
-  * @param mixed $sid
 
-  *   the current state ID.
 
-  * @param Workflow $workflow
 
-  *   the workflow object (might be derived from $sid).
 
-  * @param array $options
 
-  *   an array with $id => $label options, as determined in WorkflowState->getOptions().
 
-  *
 
-  * @return bool $show_widget
 
-  *   TRUE = a form must be shown; FALSE = no form, a formatter must be shown instead.
 
-  *
 
-  * @deprecated workflow_show_form() --> WorkflowState->showWidget()
 
-  */
 
- // function workflow_show_form($sid, $workflow, array $options) {
 
- //   $state = workflow_state_load_single($sid);
 
- //   return !$state->showWidget($options);
 
- // }
 
- /**
 
-  * Validate target state and either execute a transition immediately or schedule
 
-  * a transition to be executed later by cron.
 
-  *
 
-  * @param object $entity
 
-  * @param string $new_sid
 
-  *   An integer; the target state ID.
 
-  * @param bool $force
 
-  *   Allows bypassing permissions, primarily for Rules.
 
-  * @param array $field
 
-  *   The field structure for the operation.
 
-  *
 
-  * @deprecated: workflow_transition --> WorkflowDefaultWidget::submit()
 
-  */
 
- function workflow_transition($entity, $new_sid, $force = FALSE, $field = array()) {
 
-   $entity_type = 'node'; // Entity support is in workflow_transition --> WorkflowDefaultWidget::submit()
 
-   // @todo: do not use widget:submit directly, use workflow_entity_save instead.
 
-   $widget = new WorkflowDefaultWidget($field, $instance = array(), $entity_type, $entity);
 
-   $form = array();
 
-   $form_state = array();
 
-   $items = array();
 
-   $items[0]['workflow'] = (array) $entity;
 
-   $items[0]['workflow']['workflow_sid'] = $new_sid;
 
-   $widget->submit($form, $form_state, $items, $force);
 
- }
 
- /**
 
-  * Get all states in the system by content type.
 
-  */
 
- function workflow_get_workflow_states_by_type($type) {
 
-   $query = "SELECT ws.sid, ws.wid, ws.state, ws.weight, ws.sysid "
 
-     . "FROM {workflow_type_map} wtm "
 
-     . "INNER JOIN {workflow_states} ws ON ws.wid = wtm.wid "
 
-     . "WHERE wtm.type = :type AND ws.status = 1 "
 
-     . "ORDER BY ws.weight, ws.sid ";
 
-   $query_array = array(':type' => $type);
 
-   $results = db_query($query, $query_array);
 
-   return $results->fetchAll();
 
- }
 
- /**
 
-  * Get all states in the system, with options to filter, only where a workflow exists.
 
-  *
 
-  * @deprecated: workflow_get_workflow_states() --> WorkflowState::getStates()
 
-  * @deprecated: workflow_get_workflow_states_by_wid() --> WorkflowState::getStates()
 
-  */
 
- function workflow_get_workflow_states($options = array()) {
 
-   // Build the basic query.
 
-   $query = db_select('workflow_states', 'ws');
 
-   $query->leftJoin('workflows', 'w', 'w.wid = ws.wid');
 
-   $query->fields('ws');
 
-   $query->addField('w', 'wid');
 
-   $query->addField('w', 'name');
 
-   // Spin through the options and add conditions.
 
-   foreach ($options as $column => $value) {
 
-     $query->condition('ws.' . $column, $value);
 
-   }
 
-   // Set the sorting order.
 
-   $query->orderBy('ws.wid');
 
-   $query->orderBy('ws.weight');
 
-   // Just for grins, add a tag that might result in modifications.
 
-   $query->addTag('workflow_states');
 
-   // Give them the answer.
 
-   return $query->execute()->fetchAllAssoc('sid');
 
- }
 
- /**
 
-  * Get all states in the system, with options to filter, only where a workflow exists.
 
-  *
 
-  * @deprecated: workflow_get_workflow_states_by_wid --> Workflow->getOptions
 
-  */
 
- function workflow_get_workflow_states_by_wid($wid, $options = array()) {
 
-   $options['wid'] = $wid;
 
-   return workflow_get_workflow_states($options);
 
- }
 
- /**
 
-  * Given a sid, return a workflow. Sids are a unique id.
 
-  *
 
-  * @deprecated: workflow_get_workflow_by_sid --> workflow_state_load_single
 
-  */
 
- function workflow_get_workflow_by_sid($sid) {
 
-   return db_query("SELECT w.wid, w.name, w.tab_roles, w.options FROM {workflow_states} s
 
-     INNER JOIN {workflows} w ON w.wid=s.wid WHERE sid = :sid ",
 
-     array(':sid' => $sid))->fetchObject();
 
- }
 
- /**
 
-  * Given a sid, return a state. Sids are a unique id.
 
-  *
 
-  * @deprecated: workflow_get_workflow_states_by_sid --> workflow_state_load_single
 
-  */
 
- function workflow_get_workflow_states_by_sid($sid, $options = array()) {
 
-   static $sids = array();
 
-   if (!isset($sids[$sid])) {
 
-     $states = workflow_get_workflow_states(array('sid' => $sid));
 
-     $sids[$sid] = reset($states);
 
-   }
 
-   return $sids[$sid];
 
- }
 
- /**
 
-  * Given a sid, return all other states in that workflow.
 
-  *
 
-  * @deprecated: replaced by WorkflowState::getStates($sid)
 
-  */
 
- function workflow_get_other_states_by_sid($sid) {
 
-   $query = "SELECT sid, state "
 
-     . "FROM {workflow_states} "
 
-     . "WHERE wid = (SELECT wid FROM {workflow_states} WHERE sid = :sid AND status = 1 AND sysid = 0) ";
 
-   return db_query($query, array(':sid' => $sid))->fetchAllKeyed();
 
- }
 
- /**
 
-  * Given a wid and state, return a state. Wids / states are a unique id.
 
-  */
 
- function workflow_get_workflow_states_by_wid_state($wid, $state) {
 
-   $options = array(
 
-     'state' => $state,
 
-     'wid' => $wid,
 
-   );
 
-   return workflow_get_workflow_states($options);
 
- }
 
- /**
 
-  * Given a sid, delete the state and all associated data.
 
-  *
 
-  * @deprecated: workflow_delete_workflow_states_by_sid($sid, $new_sid, $true_delete) --> WorkflowState->delete()
 
-  */
 
- function workflow_delete_workflow_states_by_sid($sid, $new_sid = FALSE, $true_delete = FALSE) {
 
-   if ($state = workflow_state_load_single($sid)) {
 
-     $state->delete($new_sid, $true_delete);
 
-   }
 
- }
 
- /**
 
-  * Save (update/insert) a Workflow State into table {workflow_states}.
 
-  *
 
-  * @deprecated: workflow_update_workflow_states() --> WorkflowState->save()
 
-  */
 
- function workflow_update_workflow_states(&$data) {
 
-   $data = (object) $data;
 
-   if (!isset($data->sysid)) {
 
-     $data->sysid = 0;
 
-   }
 
-   if (!isset($data->status)) {
 
-     $data->status = 1;
 
-   }
 
-   if (isset($data->sid) && workflow_state_load_single($data->sid)) {
 
-     drupal_write_record('workflow_states', $data, 'sid');
 
-   }
 
-   else {
 
-     drupal_write_record('workflow_states', $data);
 
-   }
 
- }
 
- /**
 
-  * Functions related to table workflow_transitions.
 
-  */
 
- /**
 
-  * Given a wid get the transitions.
 
-  *
 
-  * @deprecated: workflow_get_workflow_transitions_by_wid() ==> Workflow->loadTransitions()
 
-  */
 
- function workflow_get_workflow_transitions_by_wid($wid) {
 
-   static $transitions;
 
-   if (!isset($transitions[$wid])) {
 
-     $query = 'SELECT t.tid, t.sid, t.target_sid, t.roles, s1.wid '
 
-       . 'FROM {workflow_transitions} t '
 
-       . 'INNER JOIN {workflow_states} s1 ON t.sid=s1.sid '
 
-       . 'INNER JOIN {workflow_states} s2 ON t.target_sid=s2.sid '
 
-       . 'WHERE s1.wid = :wid AND s2.wid = :wid';
 
-     $transitions[$wid] = db_query('SELECT t.*, s1.wid FROM {workflow_transitions} AS t INNER JOIN {workflow_states} AS s1 ON t.sid=s1.sid INNER JOIN {workflow_states} AS s2 ON t.target_sid=s2.sid WHERE s1.wid = :wid AND s2.wid = :wid',
 
-       array(':wid' => $wid))->fetchAll();
 
-   }
 
-   return $transitions[$wid];
 
- }
 
- /**
 
-  * Given a tid, get the transition. It is a unique object, only one return.
 
-  */
 
- function workflow_get_workflow_transitions_by_tid($tid) {
 
-   static $transitions;
 
-   if (!isset($transitions[$tid])) {
 
-     $transitions[$tid] = db_query('SELECT tid, sid, target_sid, roles FROM {workflow_transitions} WHERE tid = :tid',
 
-       array(':tid' => $tid))->fetchObject();
 
-   }
 
-   return $transitions[$tid];
 
- }
 
- /**
 
-  * Given a sid, get the transition.
 
-  *
 
-  * @deprecated: workflow_get_workflow_transitions_by_sid --> workflow_state_load_single
 
-  */
 
- //function workflow_get_workflow_transitions_by_sid($sid) {
 
- //  static $transitions;
 
- //  if (!isset($transitions[$sid])) {
 
- //    $transitions[$sid] = db_query('SELECT tid, sid, target_sid, roles FROM {workflow_transitions} WHERE sid = :sid',
 
- //      array(':sid' => $sid))->fetchAll();
 
- //  }
 
- //  return $transitions[$sid];
 
- //}
 
- /**
 
-  * Given a target_sid, get the transition.
 
-  *
 
-  * @deprecated: workflow_get_workflow_transitions_by_sid --> Workflow::getTransitionsByTargetSid
 
-  */
 
- //function workflow_get_workflow_transitions_by_target_sid($target_sid) {
 
- //  static $transitions;
 
- //  if (!isset($transitions[$target_sid])) {
 
- //    $transitions[$target_sid] = db_query('SELECT tid, sid, target_sid, roles FROM {workflow_transitions} WHERE target_sid = :target_sid',
 
- //      array(':target_sid' => $target_sid))->fetchAll();
 
- //  }
 
- //  return $transitions[$target_sid];
 
- //}
 
- /**
 
-  * Given a sid get any transition involved.
 
-  *
 
-  * @deprecated
 
-  */
 
- //function workflow_get_workflow_transitions_by_sid_involved($sid) {
 
- //  $results = db_query('SELECT tid, sid, target_sid, roles FROM {workflow_transitions} WHERE sid = :sid OR target_sid = :sid', array(':sid' => $sid));
 
- //  return $results->fetchAll();
 
- //}
 
- /**
 
-  * Given a role string get any transition involved.
 
-  *
 
-  * @deprecated
 
-  */
 
- //function workflow_get_workflow_transitions_by_roles($roles) {
 
- //  $results = db_query('SELECT tid, sid, target_sid, roles FROM {workflow_transitions} WHERE roles LIKE :roles', array(':roles' => $roles));
 
- //  return $results->fetchAll();
 
- //}
 
- /**
 
-  * Given a sid and target_sid, get the transition. This will be unique.
 
-  *
 
-  * @deprecated: workflow_get_workflow_transitions_by_sid_target_sid ==> $workflow->getTransitionsBySidTargetSid
 
-  */
 
- //function workflow_get_workflow_transitions_by_sid_target_sid($sid, $target_sid) {
 
- //  $results = db_query('SELECT tid, sid, target_sid, roles FROM {workflow_transitions} WHERE sid = :sid AND target_sid = :target_sid', array(':sid' => $sid, ':target_sid' => $target_sid));
 
- //  return $results->fetchObject();
 
- //}
 
- /**
 
-  * Given a tid, delete the transition.
 
-  *
 
-  * @deprecated: workflow_delete_workflow_transitions_by_tid ==> entity_delete($transition)
 
-  */
 
- function workflow_delete_workflow_transitions_by_tid($tid) {
 
-   // Notify any interested modules before we delete, in case data is needed.
 
-   module_invoke_all('workflow', 'transition delete', $tid, NULL, NULL, FALSE);
 
-   return db_delete('workflow_transitions')->condition('tid', $tid)->execute();
 
- }
 
- /**
 
-  * Given a sid and target_sid, get the transition. This will be unique.
 
-  */
 
- function workflow_delete_workflow_transitions_by_roles($roles) {
 
-   // NOTE: This allows us to send notifications out.
 
-   foreach (workflow_get_workflow_transitions_by_roles($roles) as $transition) {
 
-     workflow_delete_workflow_transitions_by_tid($transition->tid);
 
-   }
 
- }
 
- /**
 
-  * Given data, insert or update a workflow_transitions.
 
-  *
 
-  * @deprecated: workflow_update_workflow_transitions() ==> entity_save('WorkflowConfigTransition', $transition)
 
-  */
 
- //function workflow_update_workflow_transitions(&$data) {
 
- //  $data = (object) $data;
 
- //  $transition = workflow_get_workflow_transitions_by_sid_target_sid($data->sid, $data->target_sid);
 
- //  if ($transition) {
 
- //    $roles = explode(',', $transition->roles);
 
- //    foreach (explode(',', $data->roles) as $role) {
 
- //      if (array_search($role, $roles) === FALSE) {
 
- //        $roles[] = $role;
 
- //      }
 
- //    }
 
- //    $transition->roles = implode(',', $roles);
 
- //    drupal_write_record('workflow_transitions', $transition, 'tid');
 
- //    $data = $transition;
 
- //  }
 
- //  else {
 
- //    drupal_write_record('workflow_transitions', $data);
 
- //  }
 
- //}
 
- /**
 
-  * Given a tid and new roles, update them.
 
-  *
 
-  * @todo - this should be refactored out, and the update made a full actual update.
 
-  */
 
- //function workflow_update_workflow_transitions_roles($tid, $roles) {
 
- //  return db_update('workflow_transitions')->fields(array('roles' => implode(',', $roles)))->condition('tid', $tid, '=')->execute();
 
- //}
 
- /**
 
-  * Get allowable transitions for a given workflow state.
 
-  *
 
-  * Typical use:
 
-  * "global $user;
 
-  * "$possible = workflow_allowable_transitions($sid, 'to', $user->roles);
 
-  *
 
-  * If the state ID corresponded to the state named "Draft", $possible now
 
-  * contains the states that the current user may move to from the Draft state.
 
-  *
 
-  * @param $sid
 
-  *   The ID of the state in question.
 
-  * @param $dir
 
-  *   The direction of the transition: 'to' or 'from' the state denoted by $sid.
 
-  *   When set to 'to' all the allowable states that may be moved to are
 
-  *   returned; when set to 'from' all the allowable states that may move to the
 
-  *   current state are returned.
 
-  * @param mixed $roles
 
-  *   Array of ints (and possibly the string 'author') representing the user's
 
-  *   roles. If the string 'ALL' is passed (instead of an array) the role
 
-  *   constraint is ignored (this is the default for backwards compatibility).
 
-  *
 
-  * @return array
 
-  *   Associative array of ($sid => $state_name), excluding current state.
 
-  *
 
-  * @deprecated: workflow_allowable_transitions() => Workflow::getTransitionsBySid()
 
-  */
 
- //function workflow_allowable_transitions($sid, $dir = 'to', $roles = 'ALL') {
 
- //  $transitions = array();
 
- //
 
- //  // Main query from transitions table.
 
- //  $query = db_select('workflow_transitions', 't')
 
- //    ->fields('t', array('tid'));
 
- //
 
- //  if ($dir == 'to') {
 
- //    $query->innerJoin('workflow_states', 's', 's.sid = t.target_sid');
 
- //    $query->addField('t', 'target_sid', 'state_id');
 
- //    $query->condition('t.sid', $sid);
 
- //  }
 
- //  else {
 
- //    $query->innerJoin('workflow_states', 's', 's.sid = t.sid');
 
- //    $query->addField('t', 'sid', 'state_id');
 
- //    $query->condition('t.target_sid', $sid);
 
- //  }
 
- //
 
- //  $query->addField('s', 'state', 'state_name');
 
- //  $query->addField('s', 'weight', 'state_weight');
 
- //  $query->addField('s', 'sysid');
 
- //  $query->condition('s.status', 1);
 
- //
 
- //  // Now let's get the current state.
 
- //  $query2 = db_select('workflow_states', 's');
 
- //  $query2->addField('s', 'sid', 'tid');
 
- //  $query2->addField('s', 'sid', 'state_id');
 
- //  $query2->addField('s', 'state', 'state_name');
 
- //  $query2->addField('s', 'weight', 'state_weight');
 
- //  $query2->addField('s', 'sysid');
 
- //  $query2->condition('s.status', 1);
 
- //  $query2->condition('s.sid', $sid);
 
- //
 
- //  $query2->orderBy('state_weight');
 
- //  $query2->orderBy('state_id');
 
- //
 
- //  // Add the union of the two queries.
 
- //  $query->union($query2, 'UNION');
 
- //
 
- //  $results = $query->execute();
 
- //
 
- //  foreach ($results as $transition) {
 
- //    if ($roles == 'ALL'  // Superuser.
 
- //      || $sid == $transition->state_id // Include current state for same-state transitions.
 
- //      || workflow_transition_allowed($transition->tid, $roles)) {
 
- //      $transitions[] = $transition;
 
- //      // $transitions[$transition->tid] = $transition; //@todo
 
- //    }
 
- //  }
 
- //  return $transitions;
 
- //}
 
- /**
 
-  * See if a transition is allowed for a given role.
 
-  *
 
-  * @param int $tid
 
-  *   A transition ID.
 
-  * @param mixed $role
 
-  *   A single role (int or string 'author') or array of roles.
 
-  *
 
-  * @return bool
 
-  *   TRUE if the role is allowed to do the transition.
 
-  *
 
-  * @deprecated: workflow_transition_allowed => WorkflowConfigTransition::isAllowed
 
-  */
 
- function workflow_transition_allowed($tid, $role = NULL) {
 
-   $config_transitions = entity_load('WorkflowConfigTransition', array($tid));
 
-   $config_transition = reset($config_transitions);
 
-   if ($role) {
 
-     if (!is_array($role)) {
 
-       $role = array($role);
 
-     }
 
-     $allowed = $config_transition->roles;
 
-     return array_intersect($role, $allowed) == TRUE;
 
-   }
 
- }
 
- /**
 
-  * Deprecated functions related to table {workflow_scheduled_transition}.
 
-  *
 
-  * These are replaced by methods of class WorkflowScheduledTransition.
 
-  */
 
- /**
 
-  * Given a node, get all scheduled transitions for it.
 
-  *
 
-  * @deprecated: workflow_get_workflow_scheduled_transition_by_nid() --> WorkflowScheduledTransition::load()
 
-  */
 
- function workflow_get_workflow_scheduled_transition_by_nid($nid) {
 
-   return WorkflowScheduledTransition::load('node', $nid);
 
- }
 
- /**
 
-  * Given a timeframe, get all scheduled transitions.
 
-  *
 
-  * @deprecated: workflow_get_workflow_scheduled_transition_by_between() --> WorkflowScheduledTransition::loadBetween()
 
-  */
 
- function workflow_get_workflow_scheduled_transition_by_between($start = 0, $end = REQUEST_TIME) {
 
-   return WorkflowScheduledTransition::loadBetween($start, $end);
 
- }
 
- /**
 
-  * Insert a new scheduled transition. Only one transition at a time (for now).
 
-  *
 
-  * @deprecated: workflow_insert_workflow_scheduled_transition() --> WorkflowScheduledTransition::save()
 
-  */
 
- function workflow_insert_workflow_scheduled_transition($data) {
 
-   $data = (object) $data;
 
-   workflow_delete_workflow_scheduled_transition_by_nid($data->nid);
 
-   drupal_write_record('workflow_scheduled_transition', $data);
 
- }
 
- /**
 
-  * Given a node, delete transitions for it.
 
-  *
 
-  * @deprecated: workflow_delete_workflow_scheduled_transition_by_nid() --> WorkflowScheduledTransition::delete()
 
-  */
 
- // function workflow_delete_workflow_scheduled_transition_by_nid($nid) {
 
- //   return WorkflowScheduledTransition::deleteById('node', $nid);
 
- // }
 
- /**
 
-  * Deprecated functions related to table {workflow_node}.
 
-  */
 
- /**
 
-  * Given nid, update the new stamp. This probably can be refactored. Called by workflow_execute_transition().
 
-  *
 
-  * @deprecated: this is micro-optimalisation.
 
-  */
 
- function workflow_update_workflow_node_stamp($nid, $new_stamp) {
 
-   return db_update('workflow_node')->fields(array('stamp' => $new_stamp))->condition('nid', $nid, '=')->execute();
 
- }
 
- /**
 
-  * Deprecated functions related to table {workflow_node_history}.
 
-  */
 
- /**
 
-  * Get most recent transition for a node.
 
-  *
 
-  * @deprecated: workflow_get_recent_node_history() --> workflow_transition_load_single()
 
-  */
 
- function workflow_get_recent_node_history($nid) {
 
-   $field_name = '';
 
-   return workflow_transition_load_single('node', $nid, $field_name);
 
- }
 
- /**
 
-  * Get all recorded history for a node id.
 
-  *
 
-  * Since this may return a lot of data, a limit is included to allow for only one result.
 
-  */
 
- function workflow_get_workflow_node_history_by_nid($nid, $limit = NULL) {
 
-   $field_name = '';
 
-   return workflow_transition_load_multiple('node', array($nid), $field_name, $limit);
 
- }
 
- /**
 
-  * Given data, insert a new history. Always insert.
 
-  *
 
-  * @deprecated: workflow_insert_workflow_node_history() --> WorkflowTransition::save()
 
-  */
 
- function workflow_insert_workflow_node_history($data) {
 
-   $data = (object) $data;
 
-   if (isset($data->hid)) {
 
-     unset($data->hid);
 
-   }
 
-   // Check for no transition.
 
-   if ($data->old_sid == $data->sid) {
 
-     // Make sure we haven't already inserted history for this update.
 
-     $last_history = workflow_get_workflow_node_history_by_nid($data->nid, 1);
 
-     if (isset($last_history) && $last_history->stamp == REQUEST_TIME) {
 
-       return;
 
-     }
 
-   }
 
-   drupal_write_record('workflow_node_history', $data);
 
- }
 
 
  |