Как программно изменить тип пейджера во Views

Пример кода, который позволяет программно изменить тип пейджера во Views:

/**
 * Implements hook_views_pre_build().
 */
function module_name_views_pre_build(&$view) {
  if ($view->name == 'view_name' && $view->current_display == 'display_name') {
    $pager = $view->display['display_name']->handler->get_option('pager');
    $pager['type'] = 'mini';
    $view->display['display_name']->handler->set_option('pager', $pager);
  }
}

Комментарии (2)

Аватар пользователя drupby
drupby

так можно без методов обойтись и напрямую задать свойство

function module_name_views_pre_build(&$view) {
  if ($view->name == 'view_name' && $view->current_display == 'display_name') {
    $view->display['display_name']->handler->view->display['default']->handler->options['pager']['type'] = 'mini';
  }
}
Аватар пользователя Benya
Benya

Можно, но классы и методы не просто так существуют, правильнее получать и устанавливать опции все же через них, а не напрямую. А так же в моем случае код все же более читабелен и понятен