Как программно получить дополнительную строку в view-таблице?
Есть таблица:
http://russkiyslovar.ru/d8/myw1
Сделана во Вьюхе. В ней только один столбец - Время.
Его нужно просуммировать - вроде уже могу.
Но его и нужно ещё правильно расположить ВНУТРИ таблицы
Как? Спасибо.
Комментарии
Удивляет ваше стремление городить какие-то особо квадратно-колёсные велосипеды. Я же подсказывал решение с альтерингом выходной таблицы: https://drupal.ru/comment/747877#comment-747877. Используйте его, добавив там же ряд для результата расчёта.
Или можно создать пустое поле а-ля global custom text в подвале view и писать результат в него.
Или (что логичнее всего в вашем случае) просто использовать модуль https://www.drupal.org/project/views_aggregator . И ничего не кодировать.
Как вариант попробуйте это views_cumulative_field
в views-view-table.html.twig в конце добавьте {{ (rows|last).columns.field_cumulative_field }}
views-view-table.html.twig - всё же для views создайте свой темплейт
1. Ваш код не работает. Не знаю почему.
2. Ваш код скорее всего работает с объектом Вьюю. - это я уже умею. Причём в 2 вариантах. Но я получаю объект. А как мне в этот объект добавить строку? Про это сейчас вопрос.
Хук template_preprocess_views_view_table работает во всей ветке 8.x и даже в 9.x . Хотя бы ради интереса посмотрите код и описание функции по ссылке и обратите внимание, сколько всего там можно сделать.
"Мой" код работает с препроцессом таблицы view. В неё можно добавлять свои ряды - так же, как и с любой другой таблицей.
Выше всё написал уже.
Нужно чтоб именно под этим столбцом появлялась сумма. Повторю. Я упростил задание. Таблица очень большая и там не только суммировать надо.
Таблица выводится с выбора различных полей Юзером
С различными сортировками.
Вся эта таблица на нескольких страницах
А этот работает.
function dummy_views_pre_render(\Drupal\views\ViewExecutable $view) {
// Scramble the order of the rows shown on this result page.
// Note that this could be done earlier, but not later in the view execution
// process.
//print_r($view->result);exit();
shuffle($view->result);
}
А так:
function dummy_views_pre_render(&$view) {
Не работает
Подождите. Ведь можно же прям в Теме оформления добавить эту строку!