Điểm:0

Ghi đè một thông báo đã xử lý hành động VBO cụ thể

lá cờ in

Tôi đang sử dụng VBO để thực hiện các thao tác hàng loạt trên chế độ xem của mình. Tôi có 2 hành động VBO cốt lõi và 2 hành động tùy chỉnh.

  • Xuất bản bình luận
  • Hủy xuất bản nhận xét
  • Xuất bản tài nguyên
  • Hủy xuất bản tài nguyên

Khi mà Áp dụng hành động được bấm mà không có hàng lưới nào được chọn, tôi nhận được thông báo lỗi này.

Chọn một hoặc nhiều nhận xét để thực hiện cập nhật.

Tôi muốn viết lại thông báo lỗi này như Tệp đính kèm phải được chọn để thực hiện tác vụ này.

Làm thế nào tôi có thể đạt được điều này? tôi nhận thức được hook_views_bulk_operations_finish(), nhưng nó không ghi đè lên một hành động cụ thể.

Điểm:3
lá cờ in

Bạn có thể thử như sau:

  1. Xác định plugin ViewsField của riêng bạn để mở rộng CommentBulkForm (đó là nơi xuất phát của thông báo đó)
<?php

không gian tên Drupal\your_module\Plugin\views\field;

sử dụng Drupal\views\Plugin\views\field\BulkForm;

/**
 * Xác định phần tử biểu mẫu hàng loạt hoạt động nhận xét tùy chỉnh.
 *
 * @ViewsField("custom_comment_bulk_form")
 */
lớp CustomCommentBulkForm mở rộng CommentBulkForm {

  /**
   * {@inheritdoc}
   */
  chức năng được bảo vệ emptySelectedMessage() {
    return $this->t('Phải chọn tệp đính kèm để thực hiện hành động này.');
  }

}

  1. Hiển thị plugin của bạn để xem:
hàm your_module_views_data() {

  $data['comment']['custom_comment_bulk_form'] = [
    'title' => t('Biểu mẫu hàng loạt thao tác nhận xét tùy chỉnh'),
    'help' => t('Thêm phần tử biểu mẫu cho phép bạn chạy các thao tác trên nhiều nhận xét, với thông báo tùy chỉnh.'),
    'trường' => [
      'id' => 'custom_comment_bulk_form',
    ],
  ];

  trả lại dữ liệu $;
}
  1. Cuối cùng, ghi đè (hoặc ghi đè) cấu hình nhận xét (views.view.) của bạn để trường 'Nhận xét: Biểu mẫu hàng loạt hoạt động nhận xét' hiện tại của bạn buộc phải sử dụng plugin ViewsField của bạn. Một cách để ghi đè sẽ là thông qua drush:
drush cset views.view.comment \
  display.default.display_options.fields.comment_bulk_form.field \
  custom_comment_bulk_form

Điều đó cuối cùng sẽ cho phép bạn đặt thông báo tùy chỉnh của riêng mình:

nhập mô tả hình ảnh ở đây

Chúc may mắn!

lá cờ in
Có một câu hỏi. Tôi đã tạo plugin ViewsField bên trong mô-đun của mình tại đường dẫn này - mymodule\src]plugin\views\field\custom_comment_bulk_form.php. Nhưng đường dẫn này không được tham chiếu, không có trong hook_views_data() cũng như trong tệp cấu hình. Vậy tệp plugin tùy chỉnh của tôi sẽ được đọc như thế nào?
lá cờ in
tôi cũng thấy lỗi "Lỗi: Không tìm thấy lớp 'Drupal\views\Plugin\views\field\BulkForm\CommentBulkForm' trong bao gồm ()" từ plugin. :(
lá cờ in
nm, điều này hoạt động như một cơ duyên!! cảm ơn rất nhiều!
lá cờ in
Nếu tôi muốn cập nhật thông báo của các hành động khác như "xóa bình luận" hoặc "không đăng bình luận", tôi có thể sử dụng giải pháp được đề cập ở trên không?
Stefanos Petrakis avatar
lá cờ in
Thông báo này được sử dụng (và chia sẻ) bởi các hành động khác nhau có sẵn thông qua plugin CommentBulkForm ViewsField.
lá cờ in
bạn có thể thêm một mẫu để cập nhật thông báo "Xóa nhận xét" không? Tôi muốn cập nhật nó chủ yếu từ góc độ Xem mô-đun hoạt động hàng loạt
Stefanos Petrakis avatar
lá cờ in
Tôi tin rằng điều đó sẽ cần một câu hỏi riêng.
lá cờ in
https://drupal.stackexchange.com/questions/308652/alter-action-processing-results-message-for-a-specific-action - Tôi có cái này gần như hoạt động trừ khi tôi gặp phải một điều kiện. bạn có phiền khi kiểm tra câu hỏi này không? cảm ơn

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