Điểm:1

Làm thế nào để hook khi xóa đoạn?

lá cờ br

Tôi đang ở D9 và tôi có một đoạn bên trong nút loại nội dung.

Tôi cần nối khi đoạn văn bị xóa để thực hiện một số logic tùy chỉnh và thiết lập hàng đợi.

tôi đã thử hook_entity_delete, hook_entity_predelete hoặc hook_paragraph_delete, hook_paragraph_predelete: các hook đó chạy trong cron, nếu node chứa đoạn bị xóa.

Tuy nhiên, đối với tôi, có vẻ như những thứ đó không được kích hoạt nếu một đoạn hiện có bị xóa thông qua tiện ích bên trong biểu mẫu chỉnh sửa của nút.

Có cách nào để chặn trường hợp đó/giải quyết vấn đề của tôi không?

berramou avatar
lá cờ gb
khi bạn xóa đoạn văn khỏi nội dung, bạn xóa phần tham chiếu chứ không phải mục đoạn văn, do đó, điều bình thường là không có hook nào trong số đó được kích hoạt
Giuseppe avatar
lá cờ br
@berramou Điều đó đúng, nhưng tôi cho rằng chúng sẽ kích hoạt trong cron, vì tôi cho rằng các đoạn không có tham chiếu đã bị xóa. Tuy nhiên, sau khi kiểm tra DB một cách hiệu quả, chúng dường như không bị xóa.
Điểm:6
lá cờ cn

Bạn cần triển khai móc cập nhật nút và so sánh các ID đoạn văn:

sử dụng Drupal\node\Entity\NodeInterface;

/**
 * Triển khai hook_ENTITY_TYPE_update() cho các thực thể nút.
 */
function mymodule_node_update(NodeInterface $node) {
  if ($node->getType() == 'my_content_type') {
    $ids = array_column($node->field_paragraph->getValue(), 'target_id');
    $ original_ids = array_column($node-> original->field_paragraph->getValue(), 'target_id');
    // so sánh ID
  }
}

Nếu đây là đoạn lồng nhau thì hãy sử dụng hook_paragraph_update() cho loại đoạn chính.

Đă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.