Puncte:0

Creați automat un flux atunci când este adăugat un nod

drapel ro

Caut o modalitate de a adăuga automat un feed (de un anumit tip de feed), ori de câte ori este adăugat un nod (pentru un anumit tip de conținut) folosind câmpurile de nod pentru a crea automat feedul.

Am căutat pe acest site și la nivel global; cea mai apropiată soluție pe care am putut-o găsi este cea descrisă în Creați și declanșați programatic importatorul de feeduri, pentru Drupal 7, deși nu văd de ce ar trebui să fie nevoie de un șablon.

Cred că ar trebui să pot face acest lucru într-un modul personalizat, dar sunt puțin blocat.

Știe cineva cum se poate face acest lucru în Drupal 8?

Puncte:0
drapel in

Cred că soluția pentru tine este hook_ENTITY_TYPE_update(). Mai jos este un exemplu de cod simplificat; ca întotdeauna, utilizați injecția de dependență și alte bune practici în codul dvs. de producție.

/**
 * Implementează hook_ENTITY_TYPE_update().
 */
function mymodule_node_update(\Drupal\node\Entity\Node $node) {
  if ($nod->bundle() === 'tipul_meu_conţinut') {
    $feed = \Drupal\feeds\Entity\Feed::create([
      // Numiți noul Feed după nod; sau orice vrei tu!
      'title' => "{$node->label()} importator",

      // Atribuiți ID-ul tipului de feed de utilizat pentru generarea acestui feed.
      'type' => $feed_type_id,

      // Aceasta va varia în funcție de tipul de importator.
      'source' => 'https://www.example.com/data.csv',

      // Opțional, setați uid la 1 pentru a aparține întotdeauna superutilizatorului Drupal.
      'uid' => \Drupal::currentUser()->id(),
    ]);
    // Începe importul după salvarea cu succes a Feed-ului. 
    dacă (în_array($feed->salvare(), [SAVED_NEW, SAVED_UPDATED], TRUE)) {
      $feed->import();
    };
  }
}
drupalhorn avatar
drapel ro
Mulțumesc, a funcționat. Totuși, a trebuit să folosesc hook entity insert, deoarece am nevoie de id-ul nodului pentru a face referire.
drapel in
Mă bucur că a funcționat pentru tine! Ai fi destul de amabil să marchezi asta ca răspuns acceptat?

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.