Điểm:0

Tin nhắn Theo dõi đang bỏ qua cờ và gửi thông báo cho mọi người

lá cờ au

Tôi đang phát triển một diễn đàn dựa trên Drupal và tôi đang sử dụng các mô-đun Ngăn xếp thư kết hợp với một phiên bản tinh chỉnh của mô-đun tùy chỉnh này. https://github.com/Lullabot/message_integration Ý tưởng là tất cả người dùng nhận được email khi một chủ đề mới được đăng, nhưng chỉ những người dùng đăng ký một chủ đề mới nhận được thông báo về các nhận xét còn lại trong chủ đề đó. Phần mà mọi người nhận email về chủ đề mới đang hoạt động, nhưng khi để lại nhận xét, tất cả người dùng cũng nhận được thông báo qua email về điều đó. Tại thời điểm này, tôi không thể biết liệu sự cố xảy ra với mô-đun tùy chỉnh hay với Đăng ký tin nhắn. Tôi đã bật gỡ lỗi nhưng tôi không thấy bất kỳ thông báo nào về việc quyết định gửi và không gửi email cho ai, chỉ là nó đang chuẩn bị và gửi thư.

Mô-đun tùy chỉnh của tôi không khác với những gì Lullabot đã thiết lập.

Đây là mã tạo danh sách người đăng ký:

hàm message_integration_subscribe_options_comment() {
  $query = \Drupal::entityQuery('người dùng')
    ->điều kiện('trạng thái', 1);
  $query->condition('uid', [0, 1], 'KHÔNG VÀO');
  $subscribe_uids = $query->execute();

  $notifiers = ['email'];
  $subscribe_options = [
    'thông báo cho chủ sở hữu tin nhắn' => FALSE,
    'uids' => [],
  ];
  foreach ($subscribe_uids dưới dạng $uid) {
    $subscribe_options['uids'][$uid] = new DeliveryCandidate([], $notifiers, $uid);
  }
  trả về $subscribe_options;
}

Và đây là mã khi một bình luận được để lại:

hàm message_integration_comment_insert(Nhận xét $bình luận) {

  // Xem có nên bỏ qua xử lý này không.
  $config = \Drupal::config('message_integration.settings');
  $skip = $config->get('skip');
  if (!empty($skip)) {
    trở lại;
  }

  $node = $comment->get('entity_id')->first()->get('entity')->getTarget()->getValue();
  if (!in_array($node->bundle(), MESSAGE_INTEGRATION_CONTENT_TYPES)) {
    trở lại;
  }

  // Tạo một tin nhắn.
  $message = Message::create([
    'mẫu' => 'tạo_bình luận',
    'uid' => $node->getOwnerId(),
  ]);
  $message->set('field_comment_reference', $comment);
  $message->set('field_published', $comment->isPublished());
  $message->save();

  // Xếp hàng thông báo để thông báo cho tất cả các nút người đăng ký về bình luận mới.
  $subscribers = \Drupal::service('message_subscribe.subscribers');
  
  // Tạo danh sách người đăng ký tùy chỉnh để thông báo cho tất cả người dùng đang hoạt động.
  // Đây là kết thúc xung quanh hệ thống đăng ký cờ thông thường vì chúng tôi
  // không muốn đăng ký mọi người dùng vào mọi phần nội dung.
  $subscribe_options = message_integration_subscribe_options_comment();
  $options = $subscribe_options;
  foreach ($subscribe_options['uids'] as $uid => $values) {
    $options['uids'] = [$uid => $values];
    $subscribers->sendMessage($node, $message, [], $options);
  }
}

Tôi đã đi vòng quanh và nhổ tóc ra, vì vậy mọi sự giúp đỡ đều được đánh giá cao.

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