Хук представлений, который вы хотели бы использовать, hook_views_pre_build
вызывается перед построением запроса. Теперь предполагается, что у вас есть некоторый базовый опыт разработки модулей и вы знакомы с API-интерфейсом views.
Вы должны быть в состоянии сделать:
/*
* 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;
}
}
}
Выше мы используем хук представлений, который вызывается до того, как запрос представления будет построен таким образом, пейджер и все остальное будет отражать изменения.
Слово предостережения: хуки представлений следует использовать, только если вы понимаете, что происходит. Приведенный выше код написан для views-2.x.
Надеюсь это поможет.