Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Drupal hook_views_post_execute not getting called

I'm trying to hook into the hook_views_post_execute event in Drupal 7, my module called foo is located in sites/default/modules/features/foo.

My foo.module file contains a definition for the hook_views_api function, defined like this:

function foo_views_api() {
    return array("version" => 3.0);
}

This function gets called, but my implementation of the hook_views_post_execute does not, it's defined (in the same foo.module file) like this:

function foo_views_post_execute(&$view) {

    $seen_rows = array();
    $newResults = array();

    for($i = 0; $i < count($view->result); ++$i) {
        if (!in_array($view->result[$i]->nid, $seen_rows)) {
            $newResults[] = $view->results[$i];
        }

        $seen_rows[] = $view->result[$i]->nid;
    }

    $view->result = $newResults;

}

I've been over the drupal API/hooks documentation, googled and read every blog post I've been able to find. I just can't get it to work. The hook does not get called. I'm assuming I've done something simple wrong since I'm not a drupal developer or PHP developer normally.

like image 858
thr Avatar asked Apr 30 '11 19:04

thr


1 Answers

The view has probably been cached so it doesn't go through that function.

Go to the top left and clear the cache and you should see the result.

like image 174
Viktor Sarström Avatar answered Nov 09 '22 23:11

Viktor Sarström