Điểm:0

Tự động tạo nguồn cấp dữ liệu khi một nút được thêm vào

lá cờ ro

Tôi đang tìm cách tự động thêm nguồn cấp dữ liệu (của một loại nguồn cấp dữ liệu cụ thể), bất cứ khi nào một nút được thêm vào (đối với một loại nội dung cụ thể) bằng cách sử dụng các trường nút để tự động tạo nguồn cấp dữ liệu.

Tôi đã tìm kiếm trang web này và trên toàn cầu; giải pháp gần nhất tôi có thể tìm thấy là giải pháp được mô tả trong Lập trình tạo và kích hoạt trình nhập nguồn cấp dữ liệu, đối với Drupal 7, mặc dù tôi không hiểu tại sao lại cần một mẫu.

Tôi nghĩ rằng tôi có thể làm điều này trong một mô-đun tùy chỉnh, nhưng tôi hơi bế tắc.

Có ai biết làm thế nào điều này có thể được thực hiện trong Drupal 8 không?

Điểm:0
lá cờ in

Tôi nghĩ giải pháp cho bạn là hook_ENTITY_TYPE_update(). Dưới đây là một mẫu mã đơn giản hóa; như mọi khi, hãy sử dụng phép nội xạ phụ thuộc và các phương pháp hay nhất khác trong mã sản xuất của bạn.

/**
 * Triển khai hook_ENTITY_TYPE_update().
 */
function mymodule_node_update(\Drupal\node\Entity\Node $node) {
  if ($node->bundle() === 'my_content_type') {
    $feed = \Drupal\feeds\Entity\Feed::create([
      // Đặt tên Feed mới sau nút; hoặc bất cứ điều gì bạn muốn!
      'title' => "{$node->nhãn()} nhà nhập khẩu",

      // Chỉ định ID của Loại nguồn cấp dữ liệu để sử dụng để tạo Nguồn cấp dữ liệu này.
      'loại' => $feed_type_id,

      // Điều này sẽ khác nhau tùy thuộc vào loại nhà nhập khẩu.
      'nguồn' => 'https://www.example.com/data.csv',

      // Tùy chọn, đặt uid thành 1 để luôn thuộc về siêu người dùng Drupal.
      'uid' => \Drupal::currentUser()->id(),
    ]);
    // Bắt đầu quá trình nhập sau khi lưu thành công Nguồn cấp dữ liệu. 
    if (in_array($feed->save(), [SAVED_NEW, SAVED_UPDATED], TRUE)) {
      $feed->import();
    };
  }
}
drupalhorn avatar
lá cờ ro
Cảm ơn, điều đó đã làm việc. Tuy nhiên, tôi đã phải sử dụng tính năng chèn thực thể hook vì tôi cần id nút để tham chiếu.
lá cờ in
Vui mừng nó đã làm việc cho bạn! Bạn có đủ tử tế để đánh dấu đây là câu trả lời được chấp nhận không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.