Điểm:1

Thương hiệu trang web không hiển thị chính xác

lá cờ ru

Tôi đang làm việc trên một chủ đề mới cho bản phân phối Rain (Drupal 9), nhưng tôi gặp khó khăn khi hiển thị thương hiệu trang web một cách chính xác. Đây là lần đầu tiên mình làm theme nên xin lỗi nếu hỏi ngu.

Site_logo, site_name và site_slogan được hiển thị chồng lên nhau.

Đây là đoạn trích từ cloud_theme.theme:

/**
 * Triển khai hook_pre process_HOOK().
 */
function cloud_theme_pre process_block(mảng &$variables) {
  // Sử dụng svg nội tuyến trong khối thương hiệu.
  if ($variables['plugin_id'] == 'system_branding_block') {
    $variables['attributes']['class'][] = 'clearfix';
    if (isset($variables['site_logo'])) {
      $logo_path = DRUPAL_ROOT . $variables['site_logo'];
      // Nếu logo là SVG, hãy tải nội dung của nó để chúng tôi có thể nội tuyến nó.
      if (strlen($logo_path) - strpos($logo_path, '.svg') === 4) {
        $variables['site_logo_svg'] = file_get_contents($logo_path);
      }
    }
  }
}

Đây là đoạn trích từ cloud_theme.libraries:

xây dựng thương hiệu trang web:
  css:
    thành phần:
      dist/css/site-branding.css: {}

Đây là tệp site-branding.css của tôi:

/**
 * @tập tin
 * Kiểu trực quan cho khối thương hiệu trang web trong chủ đề Đám mây.
 */

.site-logo {
  hiển thị: khối nội tuyến;
  lề-phải: 1em; /* LTR */
  lề-đáy: 0,286em;
  đường viền dưới cùng: 0;
}
[dir="rtl"] .site-logo {
  lề phải: 0;
  lề trái: 1em;
}
.site-text {
  hiển thị: khối nội tuyến;
  căn dọc: trên cùng;
}

@media all và (độ rộng tối thiểu: 461px) {
  .site-text {
    lề-đáy: 1.857em;
  }
}

@media all và (độ rộng tối thiểu: 901px) {
  .site-text {
    phần đệm: 1.286em 0 0;
  }
}
.Tên trang web {
  màu: #686868;
  cỡ chữ: 1.6em;
  chiều cao dòng: 1;
}

@media all và (độ rộng tối thiểu: 901px) {
  .Tên trang web {
    cỡ chữ: 1.821em;
  }
}
.site-khẩu hiệu {
  lề trên: 7px;
  khoảng cách giữa các từ: 0,1em;
  họ phông chữ: "Helvetica Neue", Helvetica, Arial, sans-serif;
  cỡ chữ: 0,929em;
  kiểu chữ: nghiêng;
}

Đây là tệp block--system-branding-block.html.twig của tôi:

{% mở rộng "block.html.twig" %}
{#
/**
 * @tập tin
 * Triển khai chủ đề của đám mây cho khối xây dựng thương hiệu.
 *
 * Mỗi biến thành phần thương hiệu (logo, tên, khẩu hiệu) chỉ khả dụng nếu
 * được kích hoạt trong cấu hình khối.
 *
 * Các biến có sẵn:
 * - site_logo: Biểu trưng cho trang web như được xác định trong cài đặt Giao diện hoặc chủ đề.
 * - site_name: Tên cho trang web như được xác định trong cài đặt thông tin trang web.
 * - site_slogan: Khẩu hiệu cho trang như được xác định trong cài đặt thông tin trang.
 */
#}
{% đặt thuộc tính = attribute.addClass('site-branding') %}
{% khối nội dung %}
  {% nếu site_logo %}
    <a href="{{ đường dẫn('<front>') }}" rel="home" class="site-logo">
      <img src="{{ site_logo }}" alt="{{ 'Trang chủ'|t }}" />
    </a>
  {% endif %}
  {% nếu site_name hoặc site_slogan %}
    <div class="site-text">
      {% nếu site_name %}
        <div class="site-name">
          <a href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home">{{ site_name }}</a>
        </div>
      {% endif %}
      {% nếu site_slogan %}
        <div class="site-slogan">{{ site_slogan }}</div>
      {% endif %}
    </div>
  {% endif %}
{% khối cuối %}

Tôi thực sự không thể tìm ra những gì tôi đang thiếu.

Điểm:0
lá cờ mp

Nếu tên chủ đề của bạn là 'cloud_theme' thì hook của bạn phải có tên là 'cloud_theme_theme_pre process_block'. Bạn có thể xem chủ đề Bartik đã làm như thế nào tại đây: https://api.drupal.org/api/drupal/core%21themes%21bartik%21bartik.theme/function/bartik_pre process_block/8.8.x

ĐÃ CHỈNH SỬA: Giả sử rằng bạn đã đặt tên cho chức năng tiền xử lý của mình là cloud_theme_theme_pre process_block (dựa trên tên chủ đề của bạn), đồng thời đảm bảo rằng bạn đưa thư viện vào tệp 'cloud_theme.info.yml' của mình:

thư viện:
  - cloud_theme/site-branding
Søren Sjøstrøm avatar
lá cờ ru
Tôi đã xem chức năng bartik_pre process_block của Bartik. Tôi cũng đã sử dụng mã từ đây làm cơ sở cho chủ đề của mình, vì tôi biết rằng việc xây dựng thương hiệu trang web hoạt động trên chủ đề của Bartik.
petitepoisson avatar
lá cờ mp
chỉnh sửa câu trả lời của tôi
Søren Sjøstrøm avatar
lá cờ ru
Bây giờ tôi đã làm cho nó hoạt động. Hàm hook vẫn nên được gọi là cloud_theme_pre process_block, nhưng đó là phần bổ sung của thư viện trong tệp cloud_theme.info.yml bị thiếu. Cảm ơn đã giúp đỡ.

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