Điểm:3

Ngăn hiển thị các vùng Trình tạo bố cục không có nội dung

lá cờ in

Sử dụng Trình tạo bố cục, khi bạn thêm một khối vào bố cục có kiểm soát truy cập và người dùng truy cập một trang mà không có quyền truy cập, thì bố cục trống.

Làm cách nào để ngăn bố cục hoàn toàn hiển thị nếu nội dung của nó trống? Trong khi {% if content.foo|render|striptags|trim %} thủ thuật hoạt động cho các mẫu khối, tôi không thể tìm ra cách để có được hiệu ứng tương tự với các mẫu bố cục.

Kết quả cuối cùng là tôi có thêm đánh dấu trong trang, đánh dấu này được phân loại và tạo thêm phần đệm và không gian dọc giữa các vùng bố cục được điền.

chỉnh sửa:

Hiện tôi đã cập nhật một sự kiện mà Trình tạo bố cục cần:

lớp MyModuleEventSubscriber triển khai EventSubscriberInterface {

  /**
   * Trình xử lý sự kiện phản hồi Trình tạo bố cục.
   *
   * @param SectionComponentBuildRenderArrayEvent $event
   * Xây dựng sự kiện kết xuất.
   */
  chức năng công khai onBuildRender(SectionComponentBuildRenderArrayEvent $event) {
    $id = $event->getPlugin()->getPluginDefinition()['id'];

    if ($id == 'inline_block' && !$event->inPreview()) {
      $build = $event->getBuild();
      $build['#create_placeholder'] = FALSE;
      $event->setBuild($build);
    }
  }

  /**
   * {@inheritdoc}
   */
  hàm tĩnh công khai getSubscribeEvents() : mảng {
    $events[LayoutBuilderEvents::SECTION_COMPONENT_BUILD_RENDER_ARRAY] = ['onBuildRender', 110];
    trả lại sự kiện $;
  }

}

xdebug

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

Điểm:1
lá cờ cn

Điều này có thể được gây ra bởi trình giữ chỗ. Drupal định dạng trình giữ chỗ dưới dạng thẻ HTML. Trong thử nghiệm kết xuất của bạn, người thoát y loại bỏ các trình giữ chỗ như vậy, ngay cả khi sau đó, khi quá trình hiển thị thực đang diễn ra, nó sẽ chứa đầy một khối được xây dựng lười biếng.

Bạn có thể tránh nó, với chi phí hiệu suất bộ đệm, bằng cách từ chối khối được giữ chỗ:

/**
 * Triển khai hook_block_build_BASE_BLOCK_ID_alter().
 */
function mymodule_block_build_example_block_alter(mảng &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
  // Vô hiệu hóa trình giữ chỗ của khối này.
  $build['#create_placeholder'] = FALSE;
}

Nhìn thấy BigPipe có thể loại trừ một số khối nhất định không? Điều này không phụ thuộc vào việc BigPipe có được bật hay không, nhưng tôi nghĩ giải pháp cho cả hai vấn đề là giống nhau.

lá cờ cn
Nhận xét không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được [chuyển sang trò chuyện](https://chat.stackexchange.com/rooms/129156/discussion-on-answer-by-4k4-prevent-rendering-of-layout-builder-regions-that-hav) .

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