You are here

function entityqueue_export_ui::list_form_submit in Entityqueue 7

Overrides ctools_export_ui::list_form_submit().

Overrides ctools_export_ui::list_form_submit

File

plugins/ctools/export_ui/entityqueue_export_ui.class.php, line 154
Contains the CTools Export UI integration code.

Class

entityqueue_export_ui
Defines the CTools Export UI class handler for Entityqueue.

Code

function list_form_submit(&$form, &$form_state) {

  // Add the subqueue_id and the number of items for 'single' queues, and the
  // number of subqueues for the rest.
  // @todo This is quite inefficient to do here but ctools_export_load_object()
  // doesn't help us.
  if (!empty($this->items)) {
    foreach ($this->items as $name => $queue) {
      $this->items[$name]->subitems = 0;
    }
    $query = new EntityFieldQuery();
    $query
      ->entityCondition('entity_type', $this->entityType)
      ->entityCondition('bundle', array_keys($this->items), 'IN');
    $result = $query
      ->execute();
    if (!empty($result[$this->entityType])) {
      $handlers = ctools_get_plugins('entityqueue', 'handler');
      $subqueues_to_load = array();
      foreach ($result[$this->entityType] as $name => $subqueue) {

        // Add the number of subqueues first.
        $this->items[$subqueue->queue]->subitems += 1;

        // If this subqueue's bundle is a 'single' queue, load it so we can get
        // its number of items.
        if ($handlers[$this->items[$subqueue->queue]->handler]['queue type'] == 'single') {
          $subqueues_to_load[] = $subqueue->subqueue_id;
        }
      }
      if (!empty($subqueues_to_load)) {
        $subqueues = entity_load($this->entityType, $subqueues_to_load);
        foreach ($subqueues as $subqueue) {
          $field_items = field_get_items($this->entityType, $subqueue, _entityqueue_get_target_field_name($this->items[$subqueue->queue]->target_type));
          $this->items[$subqueue->queue]->subitems = $field_items ? count($field_items) : 0;
          $this->items[$subqueue->queue]->subqueue_id = $subqueue->subqueue_id;
        }
      }
    }
  }
  parent::list_form_submit($form, $form_state);
}