Пример удаления двух строк из представления myview
дисплея page
:
Drupal 8+
// MODULENAME.module
use Drupal\views\ResultRow;
use Drupal\views\ViewExecutable;
/**
* Implements hook_views_post_execute().
*/
function MODULENAME_views_post_execute(ViewExecutable $view): void {
if ($view->id() == 'myview' && $view->current_display == 'page') {
unset($view->result[2]);
unset($view->result[5]);
}
}
Drupal 7
// MODULENAME.module
/**
* Implements hook_views_post_execute().
*/
function MODULENAME_views_post_execute(&$view) {
if ($view->name == 'myview' && $view->current_display == 'page') {
unset($view->result[2]);
unset($view->result[5]);
}
}
Вместо hook_views_post_execute()
можно использовать hook_views_pre_render()
если какие-то данные доступны только там.
Написанное актуально для
Drupal 7, Drupal 8+
Похожие записи
- Как работает опция "Aggregation type" в настройках полей Views при включённой агрегации
- AJAX в форме корзины Commerce 2
- Как в Views программно изменить view mode выводимых сущностей по данным из cookie?
- Views сортировка по выражению/условию/формуле
- Необязательное значение одной из дат в раскрытом фильтре с оператором BETWEEN
Комментарии
А пейджер как себя будет чувствовать?
Pager будет чувствовать себя печально, потому что меняются данные только текущей страницы.
пейджер ориентируется на $view->total_rows, что творится в $view->result его не беспокоит
Да и в результате пейджер после обработки таким хуком ведет на пустую страницу.
Добавить комментарий