Puncte:0

Suprascrieți un anumit mesaj procesat de acțiune VBO

drapel in

Folosesc VBO pentru a efectua operațiuni în bloc pe vizualizarea mea. Am 2 acțiuni de bază VBO și 2 acțiuni personalizate.

  • Publicați comentariul
  • Anulează publicarea comentariului
  • Publicați resursa
  • Anulați publicarea resursei

Cand Aplicați acțiune butonul este apăsat și niciunul dintre rândurile grilei nu este selectat, primesc acest mesaj de eroare.

Selectați unul sau mai multe comentarii pentru a efectua actualizarea.

Aș dori să rescriu acest mesaj de eroare ca Trebuie selectat un atașament pentru a efectua această acțiune.

Cum pot realiza acest lucru? sunt constient de hook_views_bulk_operations_finish(), dar nu suprascrie o anumită acțiune.

Puncte:3
drapel in

Ai putea încerca următoarele:

  1. Definiți-vă propriul plugin ViewsField care extinde CommentBulkForm (de unde vine acel mesaj)
<?php

spațiu de nume Drupal\modulul_dvs.\Plugin\views\câmp;

utilizați Drupal\views\Plugin\views\field\BulkForm;

/**
 * Definește un element de formular în bloc pentru operațiuni de comentarii personalizate.
 *
 * @ViewsField("custom_comment_bulk_form")
 */
clasa CustomCommentBulkForm extinde CommentBulkForm {

  /**
   * {@inheritdoc}
   */
  funcția protejată emptySelectedMessage() {
    return $this->t('Trebuie selectat un atașament pentru a efectua această acțiune.');
  }

}

  1. Expuneți pluginul dvs. la vizualizări:
function your_module_views_data() {

  $data['comment']['custom_comment_bulk_form'] = [
    'title' => t('Formular în bloc pentru operațiuni de comentarii personalizate'),
    'help' => t('Adăugați un element de formular care vă permite să executați operațiuni pe mai multe comentarii, cu mesaje personalizate.'),
    'câmp' => [
      'id' => 'form_comment_personalizat_bulk_form',
    ],
  ];

  returnează $date;
}
  1. În cele din urmă, suprascrieți (sau suprascrieți) configurația dvs. de comentarii (views.view.), astfel încât câmpul dvs. existent „Comentariu: formular în bloc operațiuni de comentarii” să fie forțat să utilizeze pluginul ViewsField. O modalitate de a suprascrie ar fi prin drush:
drush cset views.view.comment \
  display.default.display_options.fields.comment_bulk_form.field \
  formular_comment_personalizat

Acest lucru vă va permite în cele din urmă să setați propriul mesaj personalizat:

introduceți descrierea imaginii aici

Noroc!

drapel in
Am o întrebare. Am creat pluginul ViewsField în interiorul modulului meu la această cale - mymodule\src]plugin\views\field\custom_comment_bulk_form.php. Dar această cale nu este referită nicăieri, nici în hook_views_data(), nici în fișierul de configurare. Deci, cum va fi citit fișierul meu plugin personalizat?
drapel in
de asemenea, ajung să văd „Eroare: clasa „Drupal\views\Plugin\views\field\BulkForm\CommentBulkForm” nu a fost găsită în include()” din plugin. :(
drapel in
nm, asta a funcționat ca un farmec!! Mulțumesc mult!
drapel in
Dacă vreau să actualizez mesajul altor acțiuni precum „Ștergeți comentariul” sau „Anulați publicarea comentariului”, pot folosi soluția menționată mai sus?
Stefanos Petrakis avatar
drapel in
Acest mesaj este folosit (și partajat) de diferitele acțiuni disponibile prin plugin-ul CommentBulkForm ViewsField.
drapel in
poți adăuga o mostră pentru actualizarea mesajului „Șterge comentariul”? Vreau să-l actualizez în principal din perspectiva modulului de operațiuni în bloc View
Stefanos Petrakis avatar
drapel in
Ar avea nevoie de o întrebare separată, cred.
drapel in
https://drupal.stackexchange.com/questions/308652/alter-action-processing-results-message-for-a-specific-action - Am asta aproape de funcționare, cu excepția faptului că sunt lovit de o condiție. ai vrea sa verifici aceasta intrebare? Mulțumiri

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.