Как мне поместить логотип в блок?


Я попытался поместить этот код в пользовательский блок с вводом, сформированным в PHP-код:

$settings = theme_get_settings('my theme');
if (!$settings[toogle_logo] = 0) {
  print '<img src="' . base_path() . $settings['logo_path'] . '" alt="my logo" />'; 
}

Это не работает в Drupal 7.

Author: kiamlaluno, 2011-03-21

2 answers

theme_get_settings() был удален в Drupal 7. Вместо этого используйте theme_get_setting(). Это работает:

<?php

if (theme_get_setting('toggle_logo')) {
  $image = array(
    'path' => theme_get_setting('logo'),
    'alt' => 'my logo',
  );
  print theme('image', $image); 
}

?>

theme_get_setting() вы получите настройку текущей темы, но если вам нужна настройка произвольной темы, вы можете использовать необязательный второй параметр, как описано в документах API. Я использовал theme_image() чтобы сделать его менее хрупким.

Но если вы можете избежать использования фильтра PHP, вам действительно следует: рассмотреть возможность создания небольшого пользовательского модуля, который вместо этого создает блок с кодом.

 11
Author: , 2011-03-21 13:13:23

Одна из проблем с вашим кодом заключается в том, что вы используете =, а не == в своем операторе if.

Звучит как задание для Блокировать. И если вы не хотите использовать "целый модуль" только для этого, вы можете посмотреть, как это делается, и использовать правильный фрагмент.

 4
Author: tim.plunkett, 2011-03-27 04:54:49