You are here

function ctools_entity_from_schema_context in Chaos Tool Suite (ctools) 7

Return a new context based on an existing context.

1 string reference to 'ctools_entity_from_schema_context'
entity_from_schema.inc in plugins/relationships/entity_from_schema.inc
Plugin to provide an relationship handler for an entity from a field.

File

plugins/relationships/entity_from_schema.inc, line 114
Plugin to provide an relationship handler for an entity from a field.

Code

function ctools_entity_from_schema_context($context, $conf) {
  $plugin = $conf['name'];
  list($plugin, $plugin_name) = explode(':', $plugin);
  list($this_col, $from_entity, $to_entity) = explode('-', $plugin_name);

  // If unset it wants a generic, unfilled context, which is just NULL.
  $entity_info = entity_get_info($from_entity);
  if (empty($context->data) || !isset($context->data->{$entity_info['entity keys']['id']})) {
    return ctools_context_create_empty('entity:' . $to_entity, NULL);
  }
  if (isset($context->data->{$entity_info['entity keys']['id']})) {

    // Load the entity.
    $id = $context->data->{$entity_info['entity keys']['id']};
    $entity = entity_load($from_entity, array(
      $id,
    ));
    $entity = $entity[$id];
    if (isset($entity->{$this_col})) {
      $to_entity_id = $entity->{$this_col};

      // Send it to ctools.
      return ctools_context_create('entity:' . $to_entity, $to_entity_id);
    }
  }
}