You are here

function draggableviews_book_views_post_execute in DraggableViews 7.2

Implements hook_views_post_execute().

We manually sort results array according to the weights of depth levels.

File

draggableviews_book/draggableviews_book.module, line 44

Code

function draggableviews_book_views_post_execute($view) {
  if (!isset($view->result[0]->draggableviews_book_mlid)) {
    return;
  }

  // First prepare array of mlid keyed items.
  $keyed_result = array();
  foreach ($view->result as $result_item) {
    $result_item->weight = array();
    $keyed_result[$result_item->draggableviews_book_mlid] = $result_item;
  }

  // Set the weights arrays for every item. This collects weights of all parents
  // plus its own weight. Weights are saved according to depth levels.
  foreach ($keyed_result as &$item) {
    _draggableviews_book_result_set_weight($item, $keyed_result);
  }

  // Sort items with custom sort callback.
  usort($keyed_result, '_draggableviews_book_uasort');
  $view->result = $keyed_result;
}