You are here

protected function RulesEntityController::attachLoad in Rules 7.2

Overridden.

Overrides EntityAPIControllerExportable::attachLoad

See also

DrupalDefaultEntityController::attachLoad()

File

includes/rules.core.inc, line 34
Rules base classes and interfaces needed for any rule evaluation.

Class

RulesEntityController
Make sure loaded rule configs are instantiated right.

Code

protected function attachLoad(&$queried_entities, $revision_id = FALSE) {

  // Retrieve stdClass records and store them as rules objects in 'data'.
  $ids = array_keys($queried_entities);
  $result = db_select('rules_tags')
    ->fields('rules_tags', array(
    'id',
    'tag',
  ))
    ->condition('id', $ids, 'IN')
    ->execute();
  foreach ($result as $row) {
    $tags[$row->id][] = $row->tag;
  }
  $result = db_select('rules_dependencies')
    ->fields('rules_dependencies', array(
    'id',
    'module',
  ))
    ->condition('id', $ids, 'IN')
    ->execute();
  foreach ($result as $row) {
    $modules[$row->id][] = $row->module;
  }
  $entities = array();
  foreach ($queried_entities as $record) {
    $entity = $record->data;

    // Set the values of the other columns.
    foreach ($this->entityInfo['schema_fields_sql']['base table'] as $field) {
      $entity->{$field} = $record->{$field};
    }
    unset($entity->data, $entity->plugin);

    // Add any tags or dependencies.
    $entity->dependencies = isset($modules[$entity->id]) ? $modules[$entity->id] : array();
    $entity->tags = isset($tags[$entity->id]) ? $tags[$entity->id] : array();
    $entities[$entity->id] = $entity;
  }
  $queried_entities = $entities;
  parent::attachLoad($queried_entities, $revision_id);
}