El enlace de vistas que desea utilizar es el hook_views_pre_build
que se llama antes de que se genere la consulta. Ahora, esto supone que tiene experiencia básica en el desarrollo de módulos y que está familiarizado con la API de vistas.
Deberías poder hacer:
/*
* 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;
}
}
}
Arriba estamos usando un enlace de vistas que se llama antes de que la consulta de vista se construya de esa manera, el localizador y todo lo demás reflejará el cambio.
Palabra de advertencia: los ganchos de vista solo deben usarse si entiendes lo que está sucediendo. El código anterior está escrito para views-2.x.
Espero que esto ayude.
$view->items_per_page = $pager_count;
Para Drupal 7, solo debe escribir lo siguiente:
En el ejemplo:
Yo uso el ejemplo de código de @ericduran.
fuente
Debe usar la función de preproceso de vistas
fuente
Para actualizar el resultado de las vistas y el localizador en hook_views_pre_render, puede hacer lo siguiente:
¡¡Esto debería funcionar!! ;)
fuente
El código de @tanmayk me sirvió. En hook_views_pre_render agregó solo estas 2 líneas de código
Pero no necesitaba agregar los resultados a la vista.
fuente