Puncte:-2

Modificați mesajul „Rezultatele procesării acțiunii” pentru o anumită acțiune

drapel in

Am o vizualizare bazată pe vizualizarea operațiunilor în bloc. aceasta este o vizualizare bazată pe comentarii și efectuează următoarele acțiuni:

1. Publicați comentariul 2. Anulați publicarea comentariului

Când una dintre aceste acțiuni este selectată pentru a fi executată pe un set de înregistrări, ajung să văd un mesaj de succes ca mai jos:

Rezultatele procesării acțiunii: Anulați publicarea comentariului (1).

Aș dori să modific mesajul de succes ca:

Comentariile selectate au fost anulate cu succes

Folosesc VBO 4.0.0, care are comiterea actualizării mesajului de procesare a acțiunii. Nu există nicio idee despre cum poate fi implementat acest lucru pentru o anumită acțiune. orice ajutor?

ACTUALIZAȚI:

Mai jos este proba mea de până acum:

funcția mymod_batch_alter(&$batch) {
  foreach ($batch['sets'] as $key => $set) {
      $batch['sets'][$key]['finished'] = 'mymod_views_bulk_operations_execute_finished';
    }
  }

/**
 * Implementează hook_views_bulk_operations_execute_finish().
 */
funcția mymod_views_bulk_operations_execute_finished($succes, matrice $rezultate, matrice $operații) {
    dacă ($succes) {
      $operatii = $rezultate['operatii'];
      if($operations == „Aprobare comentariu”){
        $message = \Drupal::messenger()->addMessage('Succes! Aprobat');
      }
      elseif($operations == „Respind comentariul”){
        $message = \Drupal::messenger()->addMessage('Succes! Dezaprobat');
      }
    }
    else {
      $message = \Drupal::messenger()->addWarning('Mesaj de eșec...');
    }
    returnează NULL;
  }

Acest cod funcționează bine, dar doar o problemă. de fiecare dată, chiar și pentru acțiunea „dezaprobare comentariu”, ajung să văd mesajul „Succes! Aprobat”. Controlul intră într-o condiție dacă greșită. Poate cineva să sublinieze greșeala?

Stefanos Petrakis avatar
drapel in
Alocați (singur =) în ambele condiții; ar trebui să comparați (dublu ==)
drapel in
Am încercat asta. tot fara noroc
Stefanos Petrakis avatar
drapel in
Actualizați exemplul de cod de mai sus pentru a reflecta corecțiile pe care le-am sugerat.
drapel in
mi-am actualizat codul
Kevin avatar
drapel in
Citiți incorect matricea și folosiți = pentru a verifica egalitatea, așa cum spuneam în întrebarea pe care ați șters-o.
Puncte:0
drapel in

Bine, codul de mai jos funcționează:

funcția mymod_batch_alter(&$batch) {
  foreach ($batch['sets'] as $key => $set) {
      $batch['sets'][$key]['finished'] = 'mymod_views_bulk_operations_execute_finished';
    }
  }

/**
 * Implementează hook_views_bulk_operations_execute_finish().
 */
funcția mymod_views_bulk_operations_execute_finished($succes, matrice $rezultate, matrice $operații) {
    dacă ($succes) {
      $operatii = $rezultate['operatii'];
      if($operations[0] == „Aprobați comentariul”){
        $message = \Drupal::messenger()->addMessage('Succes! Aprobat');
      }
      elseif($operations[0] == „Respind comentariul”){
        $message = \Drupal::messenger()->addMessage('Succes! Dezaprobat');
      }
    }
    else {
      $message = \Drupal::messenger()->addWarning('Mesaj de eșec...');
    }
    returnează NULL;
  }

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.