Рейтинг:1

Брендинг сайта отображается некорректно

флаг ru

Я работаю над новой темой для дистрибутива Rain (Drupal 9), но мне трудно правильно показать брендинг сайта. Я впервые пытаюсь создать тему, так что извините, если глупо спрошу.

Site_logo, site_name и site_slogan отображаются друг над другом.

Вот выдержки из cloud_theme.theme:

/**
 * Реализует hook_preprocess_HOOK().
 */
функция cloud_theme_preprocess_block (массив и переменные $) {
  // Использовать встроенный svg в блоке брендинга.
  если ($variables['plugin_id'] == 'system_branding_block') {
    $variables['атрибуты']['класс'][] = 'clearfix';
    если (isset($variables['site_logo'])) {
      $logo_path = DRUPAL_ROOT. $переменные['site_logo'];
      // Если логотип представляет собой SVG, давайте загрузим его содержимое, чтобы мы могли его встроить.
      если (strlen($logo_path) - strpos($logo_path, '.svg') === 4) {
        $variables['site_logo_svg'] = file_get_contents($logo_path);
      }
    }
  }
}

Вот выдержки из cloud_theme.libraries:

брендинг сайта:
  CSS:
    составная часть:
      dist/css/site-branding.css: {}

Вот мой файл site-branding.css:

/**
 * @файл
 * Визуальные стили для блока брендинга сайта в теме Cloud.
 */

.сайт-логотип {
  отображение: встроенный блок;
  поле справа: 1em; /* LTR */
  нижняя граница: 0,286 em;
  нижняя граница: 0;
}
[каталог = "rtl"] .сайт-логотип {
  поле справа: 0;
  поле слева: 1em;
}
.сайт-текст {
  отображение: встроенный блок;
  вертикальное выравнивание: сверху;
}

@media все и (минимальная ширина: 461px) {
  .сайт-текст {
    нижняя граница: 1.857em;
  }
}

@media все и (минимальная ширина: 901px) {
  .сайт-текст {
    заполнение: 1.286em 0 0;
  }
}
.Название сайта {
  цвет: #686868;
  размер шрифта: 1.6em;
  высота строки: 1;
}

@media все и (минимальная ширина: 901px) {
  .Название сайта {
    размер шрифта: 1.821em;
  }
}
.сайт-слоган {
  поле сверху: 7px;
  интервал между словами: 0.1em;
  семейство шрифтов: "Helvetica Neue", Helvetica, Arial, без засечек;
  размер шрифта: 0,929 em;
  стиль шрифта: курсив;
}

Вот мой файл block--system-branding-block.html.twig:

{% расширяет "block.html.twig" %}
{#
/**
 * @файл
 * Реализация облачной темы для блока брендинга.
 *
 * Каждая переменная элемента брендинга (логотип, название, слоган) доступна только при
 * включено в конфигурации блока.
 *
 * Доступные переменные:
 * - site_logo: логотип для сайта, как указано в настройках внешнего вида или темы.
 * - site_name: имя для сайта, как указано в настройках информации о сайте.
 * - site_slogan: Слоган для сайта, как указано в настройках информации о сайте.
 */
#}
{% набор атрибутов = атрибуты.addClass('сайт-брендинг') %}
{% заблокировать содержимое %}
  {% если логотип сайта %}
    <a href="{{ path('<front>') }}" rel="home" class="site-logo">
      <img src="{{ site_logo }}" alt="{{ 'Главная'|t }}" />
    </a>
  {% конец%}
  {% если site_name или site_slogan %}
    <div class="сайт-текст">
      {% если имя_сайта %}
        <div class="имя-сайта">
          <a href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home">{{ site_name }}</a>
        </div>
      {% конец%}
      {% если site_slogan %}
        <div class="site-slogan">{{ site_slogan }}</div>
      {% конец%}
    </div>
  {% конец%}
{% конечный блок%}

Я не могу понять, чего мне не хватает.

Рейтинг:0
флаг mp

Если название вашей темы — «cloud_theme», то ваш хук должен называться «cloud_theme_theme_preprocess_block». Вы можете увидеть, как тема Бартика сделала это здесь: https://api.drupal.org/api/drupal/core%21themes%21bartik%21bartik.theme/function/bartik_preprocess_block/8.8.x

ОТРЕДАКТИРОВАНО: Предполагая, что вы назвали свою функцию предварительной обработки как cloud_theme_theme_preprocess_block (исходя из названия вашей темы), также убедитесь, что вы включили библиотеку в свой файл «cloud_theme.info.yml»:

библиотеки:
  - cloud_theme/сайт-брендинг
Søren Sjøstrøm avatar
флаг ru
Я уже рассмотрел функцию bartik_preprocess_block Бартика. Это также код отсюда, который я использовал в качестве основы для своей темы, так как я знаю, что брендинг сайта работает на теме Бартика.
petitepoisson avatar
флаг mp
отредактировал мой ответ
Søren Sjøstrøm avatar
флаг ru
Теперь я заставил это работать. Хуковая функция по-прежнему должна называться cloud_theme_preprocess_block, но отсутствовало добавление библиотеки в файл cloud_theme.info.yml. Спасибо за помощь.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.