Điểm:1

Ẩn Thanh công cụ quản trị trong iFrame

lá cờ cn

Có thể bằng cách nào đó trong Drupal 8 để ẩn Thanh công cụ quản trị khi trang web được tải trong iFrame không? Giống như ví dụ thông qua một đối số? :-)

Tôi đã nghĩ đến việc sử dụng một số loại tiền xử lý trên trang đang được hiển thị trong iFrame, nhưng điều này sẽ không hoạt động vì html được Drupal lưu vào bộ đệm. Ngoài ra, tôi đã nghĩ đến việc thực hiện nó trong Javascript, nhưng tôi không muốn đưa tệp javascript vào mọi trang trừ mặc định.

Có lẽ ai đó biết hook_() sẽ cho phép tôi thao tác với css nhưng không được lưu vào bộ đệm?

lá cờ za
bạn có thể sử dụng một chủ đề khác cho quản trị viên/người dùng không? https://www.drupal.org/project/toolbar_visibility
lá cờ cn
Không, vì đây là một triển khai cho mô-đun đóng góp, tôi không muốn buộc người dùng cài đặt một chủ đề khác.
Điểm:3
lá cờ cg

Tôi sẽ sử dụng cách tiếp cận tương tự như @Hudri và truy cập trang web dưới dạng https://www.mysite.com?is_iframe=true.

Sau đó, thêm một lớp vào thẻ body nếu có tùy chọn yêu cầu:

/**
 * Triển khai hook_pre process_HOOK().
 */
hàm MYMODULE_pre process_html(&$variables) {
  $is_iframe = \Drupal::request()->query->get('is_iframe');
  nếu ($is_iframe === 'true') {
    $variables['attributes']['class'][] = 'hide-admin-toolbar';
  }
}

Nếu tôi nhớ không nhầm thì Drupal sẽ tạo lại HTML khi bạn truy cập https://www.mysite.com?is_iframe=true so với https://www.mysite.com.


Người giới thiệu:

lá cờ bw
Giải pháp tuyệt vời! Tôi cho rằng bạn đang sử dụng CSS để ẩn thanh công cụ.Điều đó có thể hơi khó chịu nếu bạn cũng đang sử dụng admin_toolbar. Một tùy chọn khác là ngăn không cho nó hiển thị, ví dụ: `if ($is_iframe === 'true') { if (isset($variables['page_top']['toolbar'])) { unset($variables['page_top']['toolbar']); }}`
Điểm:2
lá cờ ru

Điều này có thể thực hiện được với một bối cảnh bộ đệm:

Lõi Drupal đã cung cấp bối cảnh bộ đệm
url.query_args
có thể được sử dụng cho tham số truy vấn của bạn, ví dụ: một URL
https://www.mysite.com?is_iframe=true
sẽ là một bối cảnh bộ đệm
\Drupal::service('cache_context.url.query_args')->getContext('is_iframe');

AFAIK cache_context url.query_args đã được bật theo mặc định trong lõi Drupal, vì vậy bạn chỉ cần thêm ngữ cảnh bộ đệm này vào mảng kết xuất trong một hàm tiền xử lý thích hợp.

Lưu ý rằng ngữ cảnh bộ đệm thường không hoạt động với mô-đun Bộ đệm trang nội bộ!

Đối với sản xuất, bạn nên hoàn thiện điều này với ngữ cảnh bộ đệm tùy chỉnh, cụ thể hơn url.query_args:my_query_param để hạn chế các bối cảnh bộ đệm không cần thiết (các bot ngu ngốc có thể kích hoạt tính toán bối cảnh bộ đệm đáng kinh ngạc nếu không)

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