¿Cómo configuro el logo del tema?


16

¿Cómo puedo configurar el logotipo en mi tema personalizado en Drupal 8?

Puedo ver que Drupal busca el archivo logo.svg. Tengo un archivo PNG logo.png que utilicé en Drupal 7 y me gustaría volver a usarlo. No puedo configurar el logotipo como una configuración de tema como en Drupal 7.

¿Hay alguna manera a través de la interfaz de usuario o código personalizado en el tema para configurar el logotipo?


Al mirar el código Drupal 8, puedo ver que todavía tiene la configuración de un logotipo personalizado, si el predeterminado no se ha habilitado.
kiamlaluno

Sí, de hecho, si deshabilita "Usar el logotipo predeterminado proporcionado por el tema", puede elegir un logotipo. Estaba pensando en dejar que Drupal elija mi logo.png como logotipo predeterminado
batigolix

Respuestas:


15

Después de Drupal 8.6.x

En su THEME.info.ymlagregar una línea como logo: logo.png. Debe borrar el caché para que Drupal detecte este cambio.

Antes de Drupal 8.6.x

El archivo de logotipo predeterminado ahora se ha convertido logo.svgen Drupal 8. Sin embargo, para usar logo.pngu otra cosa, debe agregar una definición de configuración personalizada en su tema. Para hacer esto, agregue las siguientes líneas al config/install/THEME.settings.ymlarchivo en su carpeta de temas (reemplace THEMEcon el nombre del equipo de su tema).

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

Después de hacer esto, debe reinstalar su tema si ya está instalado. El archivo le pide a Drupal que instale la configuración dada cuando se instala el tema. Por lo tanto, cuando instala el tema, el pathparámetro del logotipo se guarda en la base de datos y el use_defaultparámetro deshabilita el logotipo predeterminado .


1
Espero que hayas ejecutado las instrucciones como se mencionó. Además, no olvide volver a instalar el tema o importar la configuración como drush cim -y --partial --source=path/to/theme/config/install. Lo he usado varias veces y funciona.
Jigarius

También puede volver a importar la configuración utilizando el siguiente código (por ejemplo, desde un enlace de actualización). NOTA: esto borrará cualquier configuración agregada desde que se instaló el tema:\Drupal::service('config.installer')->installDefaultConfig('theme', 'theme_name');
leon.nk

Intenté configurar el tema en Bartik y luego volver a mi tema y la configuración no se ha actualizado. No tengo acceso a la línea de comando para drush. ¿Cómo reinstalo el tema?
Jeff

6

Para los temas normales, puede ir a la página de apariencia, ir a la pestaña de configuración y anular la selección Use the logo supplied by the theme. El formulario de carga que aparece permite cargar otra imagen en su lugar.

pasos

Si realmente está creando el tema y desea proporcionar una imagen predeterminada, consulte una de las otras respuestas.


5

En el archivo MYTHEME.theme de su tema, agregue el siguiente código.

/**
 * 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;

  }
}

Coloque el archivo del logotipo en el directorio MYTHEME. Reemplace MYTHEME con el nombre de la máquina de su tema.



4

En Drupal 8, el logotipo predeterminado debe ser un archivo SVG. Todavía puede usar un archivo PNG con un logotipo personalizado, o si el tema tiene configuraciones personalizadas adicionales para dar soporte a logotipos predeterminados que no sean SVG.

Esto es lo que se informa en El tipo de logotipo predeterminado para los temas es SVG , un registro de cambios para Drupal 8.0.0-beta5.

Como se informó en el comentario, también puede usar lo siguiente en el archivo de configuración del tema.

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

Esto usaría automáticamente un logotipo personalizado sin configurarlo desde la interfaz de usuario.


3

En el archivo /your-drupal-folder/themes/THEME.theme agregue esto:

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

En Drupal 8.6 esto se puede configurar en su archivo .info.yml de la siguiente manera:

logo: 'images/MY_THEME_LOGO.png'

la ruta del tema se agrega automáticamente a la ruta src


0

No creo que necesites cambiar el código. En algunos casos, Global settingspodría estar deteniéndote para tomar el logotipo del tema respectivo. Por lo tanto, asegúrese LOGO IMAGEde que la Configuración global y el logotipo de su tema sean los mismos en Drupal 8 (en algunos casos).


0

Una opción simple es colocar el logotipo en un bloque personalizado.

/ admin / structure / block / block-content

Esto es flexible y particularmente útil si desea que el logotipo aparezca diferente en otras secciones del sitio.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.