Puncte:1

Cum să invocați o operație personalizată în Views

drapel kz

Am o vizualizare care listează câteva noduri. Fiecare instanță de nod are un boolean - „Spam” - care este implicit FALSE.

În vizualizare există o coloană „Operațiuni” unde trebuie să existe un link cu textul ancora „Semnalați ca spam”. Atunci când utilizatorul face clic pe acel link, valoarea câmpului spam boolean pentru acel nod devine „ADEVARAT”.

Am gasit acest tutorial: https://www.drupal.org/docs/7/creating-custom-modules/howtos/how-to-add-a-column-with-dynamically-generated-action-buttons - dar este pentru Drupal 7.

Totuși, ce trebuie să fac pentru a enumera o operațiune personalizată (cu link sau buton pe care se poate face clic) într-o coloană „Operațiuni” produsă de Views?

miststudent2011 avatar
drapel fr
Poate puteți încerca așa https://drupal.stackexchange.com/questions/295329/custom-action-plugin-with-configurationform
sonfd avatar
drapel in
Acestea nu sunt „acțiuni”, ci „operații”. Acțiunile ar fi folosite pentru operațiuni în bloc de vizualizări.
Free Radical avatar
drapel kz
@sonfd Mulțumesc mult pentru corectare. Am editat întrebarea pentru a folosi terminologia corectă.
Puncte:1
drapel in

Acestea sunt „operațiuni”. Acel câmp de vizualizare este controlat de EntityOperations camp.

Este destul de ușor să adăugați o nouă operațiune pentru o entitate prin implementare hook_entity_operation.

utilizați Drupal\Core\Entity\EntityInterface;
utilizați Drupal\Core\Url;

/**
 * Implementează hook_entity_operation().
 */
function mymodule_entity_operation(\Drupal\Core\Entity\EntityInterface $entity) {
  $operatii = [];
  if ($entity->getEntityTypeId() == 'nod' && someOtherCondition($entity)) {
    $operations['flag_as_spam'] = [
      'title' => t('Semnalați ca spam'),
      // Înlocuiește cu ruta pe care ai creat-o pentru a seta valoarea nodului.
      'url' => Url::fromRoute('entity.node.canonical', ['node' => $entity->id()]),
      „greutate” => 50,
    ];
  }
  returneaza $operatii;
}

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.