You are here

class party_plugin_row_attached_entity in Party 7

Same name and namespace in other branches
  1. 8.2 includes/views/party_plugin_row_attached_entity.inc \party_plugin_row_attached_entity

Plugin class for displaying party attached entities with entity_view.

Although we have a lot in common with entity_plugin_row_entity_view, there's nothing useful we can inherit from it as it's fixed to a single entity type.

Hierarchy

Expanded class hierarchy of party_plugin_row_attached_entity

1 string reference to 'party_plugin_row_attached_entity'
party_views_plugins in includes/views/party.views.inc
Implements hook_views_plugins().

File

includes/views/party_plugin_row_attached_entity.inc, line 16
Row style plugin for displaying entities attached to a party. This will produce multiple rows per party, and is mostly intended for views which are filtered to a single party, thus showing a list of all of a party's attached entities.

View source
class party_plugin_row_attached_entity extends views_plugin_row {
  public function options_form(&$form, &$form_state) {
    $form['note'] = array(
      '#markup' => t('Some options may go here in due course.'),
    );
    return $form;
  }

  /**
   * Add the fields we need to the query.
   */
  function query() {

    // Add the party id.
    $this->field_alias_pid = $this->view->query
      ->add_field('party', 'pid');

    // Add fields from {party_attached_entity} for loading entities.
    $this->field_alias_eid = $this->view->query
      ->add_field('party_attached_entity', 'eid');
    $this->field_alias_entity_type = $this->view->query
      ->add_field('party_attached_entity', 'entity_type');
  }

  /**
   * Use entity_load() to load all entities at once if they aren't loaded yet.
   */
  function pre_render($results) {
    $entities_to_load = array();
    $this->entities = array();
    foreach ($results as $index => $result) {
      $entity_type = $result->{$this->field_alias_entity_type};
      $id = $result->{$this->field_alias_eid};

      // We group this first by type.
      $entities_to_load[$entity_type][$index] = $id;
    }
    $this->entities = array();
    foreach ($entities_to_load as $entity_type => $entity_ids) {
      $entities = entity_load($entity_type, $entity_ids);
      $this->entities[$entity_type] = $entities;
    }
  }
  function render($result) {
    $entity_type = $result->{$this->field_alias_entity_type};
    $id = $result->{$this->field_alias_eid};
    $entity = $this->entities[$entity_type][$id];

    // Dose up the entity with the attaching party id, for our preprocess hook
    // party_preprocess_entity() to find.
    $party_id = $result->{$this->field_alias_pid};
    $entity->party_attaching_party = $party_id;
    $content = entity_view($entity_type, array(
      $id => $entity,
    ), 'party');
    return drupal_render($content);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
party_plugin_row_attached_entity::options_form public function Provide a form for setting options. Overrides views_plugin_row::options_form
party_plugin_row_attached_entity::pre_render function Use entity_load() to load all entities at once if they aren't loaded yet. Overrides views_plugin_row::pre_render
party_plugin_row_attached_entity::query function Add the fields we need to the query. Overrides views_plugin_row::query
party_plugin_row_attached_entity::render function Render a row object. This usually passes through to a theme template of some form, but not always. Overrides views_plugin_row::render
views_object::$definition public property Handler's definition.
views_object::$options public property Except for displays, options for the object will be held here. 1
views_object::altered_option_definition function Collect this handler's option definition and alter them, ready for use.
views_object::construct public function Views handlers use a special construct function. 4
views_object::destroy public function Destructor. 2
views_object::export_option public function 1
views_object::export_options public function
views_object::export_option_always public function Always exports the option, regardless of the default value.
views_object::options Deprecated public function Set default options on this object. 1
views_object::set_default_options public function Set default options.
views_object::set_definition public function Let the handler know what its full definition is.
views_object::unpack_options public function Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.
views_object::unpack_translatable public function Unpack a single option definition.
views_object::unpack_translatables public function Unpacks each handler to store translatable texts.
views_object::_set_option_defaults public function
views_plugin::$display public property The current used views display.
views_plugin::$plugin_name public property The plugin name of this plugin, for example table or full.
views_plugin::$plugin_type public property The plugin type of this plugin, for example style or query.
views_plugin::$view public property The top object of a view. Overrides views_object::$view 1
views_plugin::additional_theme_functions public function Provide a list of additional theme functions for the theme info page.
views_plugin::plugin_title public function Return the human readable name of the display.
views_plugin::summary_title public function Returns the summary of the settings in the display. 8
views_plugin::theme_functions public function Provide a full list of possible theme templates used by this style.
views_plugin::validate public function Validate that the plugin is correct and can be saved. 3
views_plugin_row::init public function 2
views_plugin_row::options_submit public function Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. Overrides views_plugin::options_submit 1
views_plugin_row::options_validate public function Validate the options form. Overrides views_plugin::options_validate
views_plugin_row::option_definition public function Information about options for all kinds of purposes will be held here. Overrides views_object::option_definition 9
views_plugin_row::uses_fields public function