Zaczep widoków, którego chcesz użyć, hook_views_pre_build
jest wywoływany przed zbudowaniem zapytania. Teraz zakładamy, że masz podstawowe doświadczenie w programowaniu modułów i że znasz interfejs API widoków.
Powinieneś być w stanie zrobić:
/*
* Implementation of hook_views_pre_build().
*/
function hook_views_pre_build(&$view) {
// Make sure this is only for the specific view you want to modified
if ($view->name == "foo_bar") {
// Get the x-y value from where you're storing it (in your example the node object).
$pager_count = get_count_for_this_node();
// Lets also make sure that this is a number so we won't destroy our view.
if (is_numeric($pager_count)) {
// Now lets set the pager item to what ever out count is.
$view->pager['items_per_page'] = $pager_count;
}
}
}
Powyżej używamy haka widoków, który jest wywoływany przed utworzeniem zapytania o widok w ten sposób pager i wszystko inne odzwierciedla zmianę.
Uwaga: haczyków do widoków należy używać tylko wtedy, gdy rozumiesz, co się dzieje. Powyższy kod jest napisany dla views-2.x.
Mam nadzieję że to pomoże.
$view->items_per_page = $pager_count;
W przypadku Drupal 7, należy napisać tylko:
W przykładzie:
Korzystam z kodu przykład @ericduran.
źródło
Powinieneś użyć funkcji podglądu wstępnego
źródło
Aby zaktualizować wyniki widoku i pager w hook_views_pre_render, możesz wykonać następujące czynności:
To powinno działać !! ;)
źródło
Kod @tanmayk załatwił sprawę. W hook_views_pre_render dodano tylko te 2 wiersze kodu
Ale nie musiałem dodawać wyników do widoku.
źródło