Рейтинг:-2

Изменить сообщение «Результаты обработки действия» для определенного действия

флаг in

У меня есть представление, основанное на массовых операциях просмотра. это представление на основе комментариев, которое выполняет следующие действия:

1. Опубликовать комментарий 2. Отменить публикацию комментария

Когда одно из этих действий выбрано для выполнения с набором записей, я вижу сообщение об успешном завершении, как показано ниже:

Результат обработки действия: Отменить публикацию комментария (1).

Я хотел бы изменить сообщение об успехе как:

Выбранные комментарии были успешно удалены

Я использую VBO 4.0.0, в котором зафиксировано обновление сообщения об обработке действий. Не знаю, как это можно реализовать для конкретных действий. любая помощь?

ОБНОВИТЬ:

Ниже мое испытание до сих пор:

функция mymod_batch_alter(&$batch) {
  foreach ($batch['sets'] as $key => $set) {
      $batch['sets'][$key]['finished'] = 'mymod_views_bulk_operations_execute_finished';
    }
  }

/**
 * Реализует hook_views_bulk_operations_execute_finish().
 */
function mymod_views_bulk_operations_execute_finished ($ успех, массив $ результатов, массив $ операций) {
    если ($ успех) {
      $операции = $результаты['операции'];
      if($operations == "Одобрить комментарий"){
        $message = \Drupal::messenger()->addMessage('Успешно! Одобрено');
      }
      elseif($operations == "Отклонить комментарий"){
        $message = \Drupal::messenger()->addMessage('Успех! Отклонено');
      }
    }
    еще {
      $message = \Drupal::messenger()->addWarning('Сообщение об ошибке...');
    }
    вернуть НУЛЬ;
  }

Этот код работает хорошо, но есть только одна проблема. каждый раз, даже для действия «отклонить комментарий», я вижу сообщение «Успех! Одобрено». Управление переходит в неправильное условие if. Кто-нибудь может указать на ошибку?

Stefanos Petrakis avatar
флаг in
Вы назначаете (single =) внутри обоих условий; вы должны сравнивать (двойной ==)
флаг in
Я пробовал это. все еще не повезло
Stefanos Petrakis avatar
флаг in
Обновите приведенный выше пример кода, чтобы отразить предложенные мной исправления.
флаг in
обновил мой код
Kevin avatar
флаг in
Вы неправильно читаете массив поверх использования = для проверки равенства, как я говорил в вопросе, который вы удалили.
Рейтинг:0
флаг in

Хорошо, приведенный ниже код работает:

функция mymod_batch_alter(&$batch) {
  foreach ($batch['sets'] as $key => $set) {
      $batch['sets'][$key]['finished'] = 'mymod_views_bulk_operations_execute_finished';
    }
  }

/**
 * Реализует hook_views_bulk_operations_execute_finish().
 */
function mymod_views_bulk_operations_execute_finished ($ успех, массив $ результатов, массив $ операций) {
    если ($ успех) {
      $операции = $результаты['операции'];
      if($operations[0] == "Одобрить комментарий"){
        $message = \Drupal::messenger()->addMessage('Успешно! Одобрено');
      }
      elseif($operations[0] == "Отклонить комментарий"){
        $message = \Drupal::messenger()->addMessage('Успех! Отклонено');
      }
    }
    еще {
      $message = \Drupal::messenger()->addWarning('Сообщение об ошибке...');
    }
    вернуть НУЛЬ;
  }

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.