Điểm:2

Làm cách nào tôi có thể xóa người dùng theo chương trình mà không xóa nội dung của họ?

lá cờ us

Tôi muốn xóa người dùng bằng mã này:

$account = Người dùng::load(19920);
$account->delete();

Làm thế nào tôi có thể làm điều đó mà không xóa nội dung của người dùng?

Tôi đã xem xét các móc _user_cancel(), nhưng dường như tất cả chúng đều nhằm thực hiện mọi việc trong giao diện người dùng quản trị.

Móc này hoạt động theo cách tôi mong đợi và xóa tùy chọn nút radio user_cancel_delete khỏi giao diện người dùng quản trị.

/**
 * Triển khai hook_user_cancel_methods_alter().
 */
function my_user_module_user_cancel_methods_alter(&$methods) {
  // Remove Xóa tài khoản và phương thức nội dung của nó.
  unset($methods['user_cancel_delete']);
}

nhưng tôi không muốn xóa nội dung khi $account->delete() được gọi trong móc cập nhật của tôi.

Điểm:4
lá cờ cn

Có, bạn có thể sử dụng quy trình user_cancel để ngăn nội dung bị xóa. Như bạn đã phát hiện ra, việc xóa các tùy chọn khỏi giao diện người dùng không giúp ích gì. Theo lập trình, bạn cần gọi hàm trực tiếp, chỉ định phương thức user_cancel_reassign để thay thế tác giả bằng ẩn danh trước khi xóa người dùng:

user_cancel([], $uid, 'user_cancel_reassign');
$account = Người dùng::load($uid);
$account->delete();

Hãy cẩn thận: Điều này không hoạt động đối với hơn 10 phần nội dung. Sau đó, bạn cần chạy điều này dưới dạng một đợt, điều này cũng sẽ xóa người dùng là bước cuối cùng của quy trình hàng loạt. Nhìn thấy xóa người dùng: user_cancel_reassign không hoạt động khi người dùng có hơn 10 nội dung được liên kết

lá cờ us
Cảm ơn @4k4. `user_cancel([], $uid, 'user_cancel_reassign');` là thứ tôi đã bỏ lỡ. Tôi chắc chắn rằng nó đã tồn tại mãi mãi trong Drupal. cười lớn. Tôi cũng sẽ xem xét khi làm việc với hơn 10 phần nội dung mà tôi chắc chắn sẽ xuất hiện.
4uk4 avatar
lá cờ cn
Vâng, điều này trông giống như mã Drupal cổ đại. Việc truy vấn các nút và thay đổi tác giả thành ẩn danh có thể là bằng chứng trong tương lai.

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