Size: a a a

2021 March 12

KB

Kim Badytchyk in Drupal RU
Kim Badytchyk
Всем привет, может кто сталкивался. Нужно удалять некоторые row во views по определенным условиям. Пробую это сделать в хуке views_post_execute. Элементы могу удалить, но проблема в том, что у меня есть пэйджер и после удаления row, он не апдэйтиься, а выводит просто на один элемент меньше. Я могу апдэйтить пэйджер, но проблема в том, что $view->result отдает только постраничное кол-во row, а не общее. ВОпрос, как получить все row и обработать их ? Спасибо
Drupal 8
источник

VS

Victor Stepankov in Drupal RU
Kim Badytchyk
Всем привет, может кто сталкивался. Нужно удалять некоторые row во views по определенным условиям. Пробую это сделать в хуке views_post_execute. Элементы могу удалить, но проблема в том, что у меня есть пэйджер и после удаления row, он не апдэйтиься, а выводит просто на один элемент меньше. Я могу апдэйтить пэйджер, но проблема в том, что $view->result отдает только постраничное кол-во row, а не общее. ВОпрос, как получить все row и обработать их ? Спасибо
что у тебя там за условие такое?
Лучше на уровне запроса альтернуть, конечно
источник

KB

Kim Badytchyk in Drupal RU
Victor Stepankov
что у тебя там за условие такое?
Лучше на уровне запроса альтернуть, конечно
Это просто тест, условие будет другое. Это не важно
источник

KB

Kim Badytchyk in Drupal RU
Важно, что $view->result отдает постраничное кол-во row - и я не знаю, что с этим делать
источник

C

Comrade Gagarin in Drupal RU
надо обновить число строк, total_rows вроде
источник

DK

Dmitry Kiselev in Drupal RU
Да это тоже дичь будет, так нельзя адекватно сделать
смотри в сторону альтера запроса
источник

KB

Kim Badytchyk in Drupal RU
Dmitry Kiselev
Да это тоже дичь будет, так нельзя адекватно сделать
смотри в сторону альтера запроса
знаю, что не лучшее решение, долго объяснять почему в это сторону пришел. Знаю, что по хорошему нужно писать свои фильтры в query alter
источник

KB

Kim Badytchyk in Drupal RU
Без пагинации $view->result отдал бы мне все результаты и я бы сделал свой костыль, но вот вопрос могу ли я с пагинацией получить все результаты ?
источник

DK

Dmitry Kiselev in Drupal RU
нет, сам запрос из базы возвращает только то, что настроена в пагинации
источник

C

Comrade Gagarin in Drupal RU
можно получить все результаты без пагинации и пагинацю добавить вручную 😁
источник

KB

Kim Badytchyk in Drupal RU
Comrade Gagarin
можно получить все результаты без пагинации и пагинацю добавить вручную 😁
)) не поверишь, я уже так задолбался, что уже в эту сторону думал )
источник

KB

Kim Badytchyk in Drupal RU
мне просто нужно быстрое решение, а в итоге я застрял
источник

C

Comrade Gagarin in Drupal RU
я так понял тебе надо отфильтровать строки после запроса, но чтобы строк в итоге было столько, сколько указано в настройках пейджера?
источник

KB

Kim Badytchyk in Drupal RU
Dmitry Kiselev
нет, сам запрос из базы возвращает только то, что настроена в пагинации
беда
источник

KB

Kim Badytchyk in Drupal RU
Comrade Gagarin
я так понял тебе надо отфильтровать строки после запроса, но чтобы строк в итоге было столько, сколько указано в настройках пейджера?
мне нужно ансетнуть некоторые row по определенному условию. Проблема в том, что после ансета результатов становится на странице меньше, т.е. появляются пробелы. Например, у меня всего 30 элементов, по 10 на странице. После удаления одного, у меня на странице остается 9, хотя должно быть 10 - 10 - 9
источник

KB

Kim Badytchyk in Drupal RU
все из-за долбанного погинатора, который отдает мне по части результатов, а не целиком все
источник

C

Comrade Gagarin in Drupal RU
а что за супер хитрое условие, которое нельзя пихнуть в запрос?
источник

KB

Kim Badytchyk in Drupal RU
дам реально хитрое условие, связанное с мультидоменностью и мультиязычностью
источник

VS

Victor Stepankov in Drupal RU
Kim Badytchyk
все из-за долбанного погинатора, который отдает мне по части результатов, а не целиком все
потому что пагинатор работает на уровне SQL, а не на уровне ансетов результата
источник

KB

Kim Badytchyk in Drupal RU
Victor Stepankov
потому что пагинатор работает на уровне SQL, а не на уровне ансетов результата
Да, спасибо, понял уже. Похоже нужно писать будет фильтры
источник