Вы здесь

Свое действие после отработки всех операций VBO

0

Добрый день.

Подскажите пожалуйста, можно ли навесить какое-нибудь своё действие после того, как все операции views bulk operations пройдут ?

Например, чтобы после отработки VBO происходило выполнение какой-то своей функции или делался редирект на другую страницу.

Версия Drupal: 
7.x
Связанные проекты: 
Views Bulk Operations (VBO)
Вопрос задан 28.01.2016 - 20:35

Ответы

1

В hook_batch_alter подмените finished калбак на свой

Ответ дан 28.01.2016 - 21:46
Аватар пользователя xandeadx
xandeadx
1542
0

Вот решение.

Дошел до него независимо от xandeadx, поэтому решил опубликовать.

function mymodule_batch_alter(&$batch){
    if ($batch['source_url'] == 'myurl')  // source_url можно посмотреть через object_log или функции отладки
        $batch['sets'][0]['finished'] = mymodule_batch_finished';
};

// Функция для редиректа
function mymodule_batch_finished(){
    drupal_goto('newpath');
};
Ответ дан 28.01.2016 - 21:54
0

Объединяйте несколько операций в rules и будет вам желаемое.
Там есть наборы действий

Ответ дан 28.01.2016 - 20:48

Вот, разбираюсь с rules по данному вопросу.

Непонятно, к какому событию там это привязывать.

Комментарий оставлен 28.01.2016 - 21:19

А зачем привязывать?
Делаете ruleset с нужной цепочкой действий, потом в VBO используете

Комментарий оставлен 28.01.2016 - 21:30

А где это использовать в VBO ?
Например, в настройках представления, где VBO, я не увидел возможность сослаться на этот ruleset, чтобы он выполнился после отработки VBO.

Комментарий оставлен 28.01.2016 - 21:38

Удалось найти красивое решение через хуки в несколько строчек кода.

Комментарий оставлен 28.01.2016 - 21:56