web-dev-qa-db-ja.com

テーマのロゴを設定するにはどうすればよいですか?

Drupal 8)のカスタムテーマにロゴを設定するにはどうすればよいですか?

Drupalはlogo.svgファイルを探します。Drupal 7で使用したPNG logo.pngファイルがあります。 Drupal 7.のように、ロゴをテーマ設定として設定できません。

ロゴを設定するために、テーマのUIまたはカスタムコードを使用する方法はありますか?

16
batigolix

Drupal 8.6.x以降

THEME.info.ymllogo: logo.pngのような行を追加します。この変更を検出するには、Drupalのキャッシュをクリアする必要があります。

前Drupal 8.6.x

デフォルトのロゴファイルは、Drupal 8)でlogo.svgになりました。ただし、logo.pngなどを使用するには、テーマにカスタム設定定義を追加する必要があります。これには、テーマフォルダーのconfig/install/THEME.settings.ymlファイルに次の行を追加します(THEMEをテーマのマシン名に置き換えます)。

logo:
  path: 'themes/THEME/logo.png'
  use_default: false

これを行った後、すでにインストールされている場合は、テーマを再インストールする必要があります。ファイルはDrupalテーマのインストール時に特定の設定をインストールするように要求します。したがって、テーマをインストールすると、ロゴpathパラメータがデータベースとデフォルトのロゴに保存されますuse_defaultパラメータによって無効化されます。

16
Jigarius

通常のテーマの場合は、外観ページに移動し、設定タブに移動してUse the logo supplied by the theme。表示されるアップロードフォームでは、代わりに別の画像をアップロードできます。

steps

実際にテーマを構築していて、デフォルトの画像を提供したい場合は、他の回答のいずれかを参照してください。

6
Neograph734

Drupal 8.6以降、contribまたはカスタムテーマ(たとえば、mythemenameと呼ばれます)は、mythemename.info.ymlファイル:

logo: images/acme-logo-stacked.png

https://www.drupal.org/docs/8/theming-drupal-8/defining-a-theme-with-an-infoyml-file#logo を参照してください

ロゴを使用することに注意してくださいuse_default設定はtrueでなければなりません。

6
mlncn

テーマのMYTHEME.themeファイルに、次のコードを追加します。

/**
 * Implements hook_preprocess_HOOK() for block templates.
 */

function MYTHEME_preprocess_block(&$variables) {
  switch ($variables['base_plugin_id']) {
    case 'system_branding_block':
      $variables['site_logo'] = '';
      if ($variables['content']['site_logo']['#access'] && $variables['content']['site_logo']['#uri']) {
        $variables['site_logo'] = str_replace('.svg', '.png', $variables['content']['site_logo']['#uri']);
      }
      break;

  }
}

ロゴファイルをMYTHEMEディレクトリに配置します。 MYTHEMEをテーマのマシン名に置き換えます。

5
Wasim Khan

Drupal 8では、デフォルトのロゴはSVGファイルである必要があります。カスタムロゴ付きのPNGファイルを使用することも、テーマに 追加のカスタム設定 SVG以外のデフォルトのロゴをサポートするため。

これは テーマのデフォルトのロゴタイプはSVGです 、Drupal 8.0.0-beta5。

コメントで報告されているように、テーマ設定ファイルで以下を使用することもできます。

logo:
  path: 'themes/THEME_NAME/logo.png'
  use_default: false

これにより、UIから設定しなくても、カスタムロゴが自動的に使用されます。

4
kiamlaluno

/ your-drupal-folder/themes/THEME.themeファイルに以下を追加します:

function THEME_preprocess_page(&$variables) {
  global $base_url, $base_path;
  $variables['logo'] = $base_url . $base_path . drupal_get_path('theme','THEME') . '/logo.svg';

  ##Uncomment this if you want to use png instead of svg image
  #$variables['logo'] = str_replace('.svg', '.png', $variables['logo']);
}
3
Chetabahana

Drupal 8.6では、これは.info.ymlファイルで次のように設定できます:

logo: 'images/MY_THEME_LOGO.png'

テーマのパスはsrcパスに自動的に追加されます

1
Judder

簡単なオプションは、ロゴをカスタムブロックに配置することです。

/ admin/structure/block/block-content

これは柔軟性があり、サイトの他のセクションで異なるロゴを表示する場合に特に便利です。

0
Matoeil

コードを変更する必要はないと思います。ある場合には、 Global settingsは、それぞれのテーマのロゴを取得するのを妨げている可能性があります。したがって、LOGO IMAGE of Global Settingsおよびyour your logoはDrupal 8(Some Cases)で同じである必要があります。

0
TS Guhan