Điểm:0

Lập trình thay đổi chế độ xem của trường phương tiện

lá cờ cn

Tôi đang cố gắng thay đổi chế độ xem của trường phương tiện theo chương trình. Tôi đã tạo một chế độ xem có tên là 'phương thức'. Tôi đã tạo một hook mytheme_pre process_media và cố gắng thay đổi chế độ xem theo nhiều cách khác nhau như

mytheme_pre process_media(&$variables) {
    $variables['view_mode'] = 'chế độ';
    $variables['elements']['#view_mode'] = 'modal';
    $variables['content']['field_media_oembed_video']['#view_mode'] = 'modal';
}

nhưng không có vẻ như làm việc. Sử dụng xdebug tôi biết chắc rằng hook này đang bị trúng nhưng vì lý do nào đó nó luôn sử dụng chế độ xem mặc định.

Làm cách nào tôi có thể thay đổi chế độ xem của trường phương tiện theo chương trình?

sonfd avatar
lá cờ in
Bạn đã thử [hook_entity_view_mode_alter()](https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21entity.api.php/function/hook_entity_view_mode_alter/9.3.x) chưa?
Matt avatar
lá cờ cn
@sonfd Tôi có nhưng hook đó không được kích hoạt bởi trường phương tiện của tôi.
4uk4 avatar
lá cờ cn
Các trường không có chế độ xem, các thực thể được kết xuất có. Các giá trị hiển thị trong câu hỏi chỉ là thông tin, bạn không thể thay đổi chúng. Tuy nhiên, nếu trường đang hiển thị các thực thể được tham chiếu, bạn có thể thử thay đổi chế độ xem của các thực thể đó, nếu bạn tìm thấy chúng trong trường deltas. Nhưng điều này phụ thuộc vào cách trường được định cấu hình và sau đó bạn cũng cần thay đổi các khóa bộ đệm.
4uk4 avatar
lá cờ cn
OK, vừa kiểm tra tên trường và phát hiện ra đó là trường cốt lõi được cài đặt sẵn và loại trường không phải là trường tham chiếu. Tôi nghĩ rằng bạn đã hoàn toàn lạc lối và cần bắt đầu lại một cấp độ trong nút (nếu phương tiện thuộc loại nội dung).
Matt avatar
lá cờ cn
@ 4uk4 điều khiến tôi bối rối là nếu trường không hỗ trợ chế độ xem, tại sao nó lại cho phép tôi thêm chế độ xem trong giao diện quản trị? Phương tiện truyền thông cũng không phải là một thực thể? Đó là thứ tôi có thể thêm các trường vào.
4uk4 avatar
lá cờ cn
Có, bạn có thể thêm các trường vào một thực thể phương tiện và trường trong ví dụ mã cũng là một trường như vậy, Điều gây nhầm lẫn trong câu hỏi là ý của bạn về trường phương tiện, một trường như thế này bạn có thể truy cập trong móc của mã ví dụ hoặc một trường trong một thực thể khác cần một hook khác?
Matt avatar
lá cờ cn
Trong wysiwyg của tôi, tôi đang nhúng các thực thể phương tiện. Khi tôi nhúng một thực thể phương tiện, tôi muốn có thể thay đổi chế độ xem được sử dụng.
Điểm:2
lá cờ cn

Trong wysiwyg của tôi, tôi đang nhúng các thực thể phương tiện. Khi tôi nhúng một thực thể phương tiện, tôi muốn có thể thay đổi chế độ xem được sử dụng.

Khi bạn nhúng một thực thể phương tiện vào WYSIWYG, bạn có thể chọn một chế độ xem.Nếu bạn muốn thay đổi điều này sau này theo chương trình, bạn phải thay đổi trong <drupal-media> gắn thẻ thuộc tính chế độ xem dữ liệu. Nếu bạn không chỉ định chế độ xem thì thuộc tính này bị thiếu và bạn phải thêm nó.

Nếu bạn muốn sử dụng hook tiền xử lý chủ đề thì hãy sử dụng hook của mẫu chứa trường WYSIWYG, không phải của mẫu phương tiện. Tìm trường WYSIWYG trong $variables['content'] và thay đổi nguồn HTML bạn tìm thấy trong '#chữ'.

sonfd avatar
lá cờ in
Trong cài đặt định dạng văn bản, ví dụ:/admin/config/content/formats/manage/full_html (Cấu hình > Tác giả nội dung > Định dạng văn bản và trình chỉnh sửa > [Định dạng]), bạn sẽ thấy một tab gần cuối có tiêu đề "Nhúng phương tiện" nơi bạn có thể định cấu hình gói phương tiện nào có thể được nhúng , chế độ xem nào được phép và chế độ xem nào là mặc đị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.