테마 로고는 어떻게 설정합니까?


16

Drupal 8의 사용자 정의 테마에서 로고를 설정하려면 어떻게해야합니까?

Drupal이 logo.svg 파일을 찾는 것을 볼 수 있습니다. Drupal 7에서 사용한 PNG logo.png 파일이 있는데 다시 사용하고 싶습니다. Drupal 7에서와 같이 로고를 테마 설정으로 설정할 수 없습니다.

테마에서 UI 또는 사용자 정의 코드를 통해 로고를 설정하는 방법이 있습니까?


Drupal 8 코드를 살펴보면 기본 로고가 활성화되어 있지 않은 경우 여전히 사용자 정의 로고 설정이 있음을 알 수 있습니다.
kiamlaluno

예, 실제로 "테마에서 제공 한 기본 로고 사용"을 비활성화하면 로고를 선택할 수 있습니다. Drupal이 내 logo.png를 기본 로고로 선택하게 할 생각이었습니다
batigolix

답변:


15

드루팔 8.6.x 이후

THEME.info.yml같은 줄을 추가 하십시오 logo: logo.png. Drupal이이 변경을 감지하려면 캐시를 지워야합니다.

드루팔 8.6.x 이전

기본 로고 파일은 이제 logo.svgDrupal 8에 포함되었습니다. 그러나 사용 logo.png하거나 다른 것을 사용하려면 테마에 사용자 정의 설정 정의를 추가해야합니다. 이렇게하려면 config/install/THEME.settings.yml테마 폴더의 파일에 다음 줄을 추가 THEME하십시오 (테마의 컴퓨터 이름으로 바꿉니다).

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

이 작업을 수행 한 후 테마가 이미 설치되어 있으면 다시 설치해야합니다. 파일은 테마가 설치 될 때 Drupal에게 주어진 설정을 설치하도록 요청합니다. 따라서 테마를 설치하면 로고 path매개 변수가 데이터베이스에 저장되고 기본 로고는 use_default매개 변수에 의해 사용되지 않습니다 .


1
언급 한대로 지침을 실행하기를 바랍니다. 또한 테마를 다시 설치하거나 같은 구성을 가져 오는 것을 잊지 마십시오 drush cim -y --partial --source=path/to/theme/config/install. 나는 이것을 여러 번 사용했으며 작동합니다.
Jigarius

다음 코드를 사용하여 구성을 다시 가져올 수도 있습니다 (예 : 업데이트 후크). 참고 : 테마를 설치 한 후 추가 된 모든 구성이 지워집니다.\Drupal::service('config.installer')->installDefaultConfig('theme', 'theme_name');
leon.nk

테마를 Bartik으로 설정 한 다음 다시 테마로 설정하려고했지만 설정이 업데이트되지 않았습니다. drush에 대한 명령 줄에 액세스 할 수 없습니다. 테마를 다시 설치하려면 어떻게합니까?
Jeff

6

일반 테마의 경우 모양 페이지로 이동하여 설정 탭으로 이동하여 선택을 취소하면 Use the logo supplied by the theme됩니다. 표시되는 업로드 양식을 사용하면 다른 이미지를 대신 업로드 할 수 있습니다.

단계

실제로 테마를 작성하고 기본 이미지를 제공하려는 경우 다른 답변 중 하나를 참조하십시오.


5

테마의 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을 테마의 기계 이름으로 바꾸십시오.



4

Drupal 8에서 기본 로고는 SVG 파일이어야합니다. 사용자 정의 로고가있는 PNG 파일을 사용하거나 테마 에 SVG가 아닌 기본 로고를 지원하기위한 추가 사용자 정의 설정 이있는 경우에도 사용할 수 있습니다 .

이것은 무엇을보고있다 SVG입니다 주제를 기본 로고 타입 , 드루팔 8.0.0-beta5에 대한 변경 기록.

주석에보고 된대로 테마 설정 파일에서 다음을 사용할 수도 있습니다.

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

UI에서 설정하지 않고 사용자 정의 로고를 자동으로 사용합니다.


3

에서 /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']);
}

1

Drupal 8.6에서는 .info.yml 파일에서 다음과 같이 설정할 수 있습니다.

logo: 'images/MY_THEME_LOGO.png'

테마 경로가 자동으로 src 경로에 추가됩니다


0

코드를 변경해야한다고 생각하지 않습니다. 경우에 Global settings따라 해당 테마 로고를 가져 오지 못할 수도 있습니다. 따라서, 확인 LOGO IMAGE전역 설정테마 로고는 드루팔 8 (일부의 경우)에서 동일해야합니다.


0

간단한 옵션은 로고를 사용자 정의 블록에 배치하는 것입니다.

/ admin / structure / block / block-content

사이트의 다른 섹션에서 로고가 다르게 표시되도록하려는 경우에 유연하고 특히 유용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.