Puncte:0

Cum adaug automat un titlu la entitățile importate?

drapel cn

Am un site cu o mulțime de fișiere audio (folosind fișierele core Audio media tipul media).

Pe Gestionați afișarea formularelor pagina de administrare (/admin/structure/media/manage/audio/form-fields), am setat Nume câmp la Dezactivat.

În acest fel, când adaug o entitate audio media în UI (la /media/add/audio), atunci nu trebuie să adaug titlul, iar numele entității va fi setat automat la numele fișierului.

Acum vreau să automatizez crearea de entități audio media cu Modul de alimentare. Am configurat un tip de feed + un feed pentru entitățile mele audio media. Import fișiere CSV dintr-un director.

Am folosit următoarele mapări:

  • ID fișier + Descriere fișier pentru câmpul media field_media_audio_file
  • Cod pentru câmpul de text field_import_id (pentru care am setat unic opțiunea de a urmări importurile)

Cu toate acestea, când încerc să import feedul, primesc această eroare:

Nume (nume): această valoare nu trebuie să fie nulă.

Cum pot dezactiva această validare (verificarea câmpului Nume) de către modulul Feeds pentru entitățile audio media?

Ca o soluție, pot crea o coloană în fișierul CSV și pot enumera toate numele fișierelor, dar acest lucru duce la informații duplicate și prezintă riscul de greșeli de scriere.

Puncte:1
drapel in

De ce să nu folosiți Hrănește Tamper pentru a atribui un nume implicit?

Puncte:0
drapel cn

Există cu siguranță o modalitate mai elegantă de a face acest lucru, dar deocamdată am decis să coreczez validatorul în sine /feeds/src/Feeds/Processor/EntityProcessorBase.php:

dacă ($etichetă || $etichetă === '0' || $etichetă === 0) {
  $messages[] = $this->t('Eticheta @entity % nu a reușit să se valideze cu următoarele erori: @errors', $args);
  if (mb_strtolower($this->entityTypeLabel()) === 'media') {
    // Media va avea automat setat titlul la nume de fișier, deci permiteți acest lucru.
    întoarcere;
  }
}
sonfd avatar
drapel in
`mb_strtolower($this->entityTypeLabel()) === 'media'` - acest lucru este ciudat pentru mine. Cu siguranță puteți obține doar numele mașinii tipului de entitate. De exemplu, `$this->entityTypeId()`
drapel cn
@sonfd Da, și mie mi s-a părut ciudat. Dar așa o face și modulul Feeds în codul imediat de mai sus, așa că am decis să rămân cu același cod ca și modulul însuși.
Puncte:0
drapel cn

Feeds are presalvare și prevalida evenimente. Deci, un alt mod de a aborda acest lucru este să adăugați un abonat eveniment (cod exemplu de la întreținător).

În acest caz, validarea poate fi înlocuită cu PROCESS_ENTITY_PREVALIDATE.

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.