Score:-1

ฉันจะรวมคำศัพท์ในฟีด Drupal ได้อย่างไร

ธง km

เช่น ถ้าฉันมี 2 แถวที่มีคนอยู่

ยูอิด | สีโปรด
----------------------
 3 | สีน้ำเงิน
 3 | สีเหลือง

และฉันต้องการผลลัพธ์ให้เลือกทั้งสีน้ำเงินและสีเหลืองในตอนท้าย มีปลั๊กอินรวมการงัดแงะหรือไม่? ฉันกำลังทำอยู่แล้ว

คลาส MyAlterSubscriber ขยาย AfterParseBase

ฉันต้องค้นหาค่าที่มีอยู่แล้วรวมเข้าด้วยกันก่อนหรือไม่

Score:0
ธง km

AfterParseBase ไม่ให้การเข้าถึงชุดข้อมูลทั้งหมด.

ดังนั้น ให้ใช้เหตุการณ์ FeedsEvents::AFTER แทน

ฉันพบว่าหากรายการสุดท้ายไม่มีรายการอนุกรมวิธานที่เลือก รายการทั้งหมดจะหายไป หากต้องการสร้างรายการอนุกรมวิธานที่รวมกัน:

<?php

เนมสเปซ Drupal\cbi_feed_alter\EventSubscriber;

ใช้ Drupal\feeds\Event\FeedsEvents
ใช้ Drupal\feeds\Event\ParseEvent;
ใช้ Symfony\Component\EventDispatcher\EventSubscriberInterface;

class IssuerFeedEventSubscriber ใช้ EventSubscriberInterface {

  const JOIN_CHAR = ',';

  /**
  * {@inheritdoc}
  */
  ฟังก์ชั่นคงที่สาธารณะ getSubscribedEvents () {
    $events[FeedsEvents::PARSE][] = ['afterParse', FeedsEvents::AFTER];
    ส่งคืนเหตุการณ์ $;
  }

  ฟังก์ชั่นสาธารณะ afterParse (ParseEvent $event) {
    /** @var \Drupal\feeds\FeedInterface */
    $feed = $event->getFeed();
    /** @var \Drupal\feeds\Result\ParserResultInterface */
    $parser_result = $event->getParserResult();

    $feed_type = $feed->getType();
    ถ้า ($feed_type->id() != 'ผู้ออก') {
      กลับ;
    }

    สำหรับ ($parser_result->rewind(); $parser_result->valid(); $parser_result->next()) {
      $this->findStates($parser_result->current(), $parser_result);
    }
  }

  ฟังก์ชันป้องกัน findStates($item, $parser_result) {
    $issuer_id = $item->get('issuerid');
    $สถานะ = [];
    $parser_current_key = $parser_result->key();
    สำหรับ ($parser_result->rewind(); $parser_result->valid(); $parser_result->next()) {
      ถ้า ($parser_result->current()->get('issuerid') == $issuer_id) {
        $states = array_filter(array_merge($states, expand(self::JOIN_CHAR, $parser_result->current()->get('state'))));

     }
    }

    // วนกลับไปที่คีย์
    $parser_result->ย้อนกลับ();
    ในขณะที่ ($parser_result->valid() && $parser_result->key() != $parser_current_key) {
      $parser_result->ถัดไป();
    }
    $parser_result->offsetSet($parser_current_key);
    $item->set('state', implode(self::JOIN_CHAR, array_unique($states, SORT_STRING)));
   }

}

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา